From: Casey Bodley Date: Tue, 27 Jan 2026 17:43:49 +0000 (-0500) Subject: qa/radosgw_admin: remove requestlog X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b677a496a0d50e6c9a8a18504f8b07d0bf53aa47;p=ceph.git qa/radosgw_admin: remove requestlog the requestlog queue is only used for debugging, and relied on boto2 hooks that aren't worth rewriting in boto3 Signed-off-by: Casey Bodley --- diff --git a/qa/tasks/radosgw_admin.py b/qa/tasks/radosgw_admin.py index e2adc7a7a28..99fd82e708f 100644 --- a/qa/tasks/radosgw_admin.py +++ b/qa/tasks/radosgw_admin.py @@ -14,12 +14,10 @@ Rgw admin testing against a running instance import json import logging import time -import datetime import sys import errno from io import StringIO -from queue import Queue import boto.exception import boto.s3.connection @@ -226,38 +224,6 @@ class usage_acc: usage_acc_validate_s3select_fields(r, x, x2, "summary: s3select totals for user" + s['user']) return r -def ignore_this_entry(cat, bucket, user, out, b_in, err): - pass -class requestlog_queue(): - def __init__(self, add): - self.q = Queue(1000) - self.adder = add - def handle_request_data(self, request, response, error=False): - now = datetime.datetime.now() - if error: - pass - elif response.status < 200 or response.status >= 400: - error = True - self.q.put({'t': now, 'o': request, 'i': response, 'e': error}) - def clear(self): - with self.q.mutex: - self.q.queue.clear() - def log_and_clear(self, cat, bucket, user, add_entry = None): - while not self.q.empty(): - j = self.q.get() - bytes_out = 0 - if 'Content-Length' in j['o'].headers: - bytes_out = int(j['o'].headers['Content-Length']) - bytes_in = 0 - msg = j['i'].msg - if 'content-length'in msg: - bytes_in = int(msg['content-length']) - log.info('RL: %s %s %s bytes_out=%d bytes_in=%d failed=%r' - % (cat, bucket, user, bytes_out, bytes_in, j['e'])) - if add_entry == None: - add_entry = self.adder - add_entry(cat, bucket, user, bytes_out, bytes_in, j['e']) - def create_presigned_url(conn, method, bucket_name, key_name, expiration): return conn.generate_url(expires_in=expiration, method=method, @@ -399,10 +365,6 @@ def task(ctx, config): connection3.auth_region_name='us-east-1' acc = usage_acc() - rl = requestlog_queue(acc.generate_make_entry()) - connection.set_request_hook(rl) - connection2.set_request_hook(rl) - connection3.set_request_hook(rl) # legend (test cases can be easily grep-ed out) # TESTCASE 'testname','object','method','operation','assertion' @@ -555,8 +517,6 @@ def task(ctx, config): # create a first bucket bucket = connection.create_bucket(bucket_name) - rl.log_and_clear("create_bucket", bucket_name, user1) - # TESTCASE 'bucket-list','bucket','list','one bucket','succeeds, expected list' (err, out) = rgwadmin(ctx, client, ['bucket', 'list', '--uid', user1], check_status=True) assert len(out) == 1 @@ -566,8 +526,6 @@ def task(ctx, config): assert len(bucket_list) == 1 assert bucket_list[0].name == bucket_name - rl.log_and_clear("list_buckets", '', user1) - # TESTCASE 'bucket-list-all','bucket','list','all buckets','succeeds, expected list' (err, out) = rgwadmin(ctx, client, ['bucket', 'list'], check_status=True) assert len(out) >= 1 @@ -575,11 +533,8 @@ def task(ctx, config): # TESTCASE 'max-bucket-limit,'bucket','create','4 buckets','5th bucket fails due to max buckets == 4' bucket2 = connection.create_bucket(bucket_name + '2') - rl.log_and_clear("create_bucket", bucket_name + '2', user1) bucket3 = connection.create_bucket(bucket_name + '3') - rl.log_and_clear("create_bucket", bucket_name + '3', user1) bucket4 = connection.create_bucket(bucket_name + '4') - rl.log_and_clear("create_bucket", bucket_name + '4', user1) # the 5th should fail. failed = False try: @@ -587,15 +542,11 @@ def task(ctx, config): except Exception: failed = True assert failed - rl.log_and_clear("create_bucket", bucket_name + '5', user1) # delete the buckets bucket2.delete() - rl.log_and_clear("delete_bucket", bucket_name + '2', user1) bucket3.delete() - rl.log_and_clear("delete_bucket", bucket_name + '3', user1) bucket4.delete() - rl.log_and_clear("delete_bucket", bucket_name + '4', user1) # TESTCASE 'bucket-stats3','bucket','stats','new empty bucket','succeeds, empty list' (err, out) = rgwadmin(ctx, client, [ @@ -611,7 +562,6 @@ def task(ctx, config): # use some space key = boto.s3.key.Key(bucket) key.set_contents_from_string('one') - rl.log_and_clear("put_obj", bucket_name, user1) # TESTCASE 'bucket-stats5','bucket','stats','after creating key','succeeds, lists one non-empty object' (err, out) = rgwadmin(ctx, client, [ @@ -628,7 +578,6 @@ def task(ctx, config): # reclaim it key.delete() - rl.log_and_clear("delete_obj", bucket_name, user1) # TESTCASE 'bucket unlink', 'bucket', 'unlink', 'unlink bucket from user', 'fails', 'access denied error' (err, out) = rgwadmin(ctx, client, @@ -656,11 +605,9 @@ def task(ctx, config): denied = True assert not denied - rl.log_and_clear("put_obj", bucket_name, user1) # delete the object key.delete() - rl.log_and_clear("delete_obj", bucket_name, user1) # link the bucket to another user (err, out) = rgwadmin(ctx, client, ['metadata', 'get', 'bucket:{n}'.format(n=bucket_name)], @@ -765,15 +712,12 @@ def task(ctx, config): object_name = 'four' key = boto.s3.key.Key(bucket, object_name) key.set_contents_from_string(object_name) - rl.log_and_clear("put_obj", bucket_name, user1) # fetch it too (for usage stats presently) s = key.get_contents_as_string(encoding='ascii') - rl.log_and_clear("get_obj", bucket_name, user1) assert s == object_name # list bucket too (for usage stats presently) keys = list(bucket.list()) - rl.log_and_clear("list_bucket", bucket_name, user1) assert len(keys) == 1 assert keys[0].name == object_name @@ -839,7 +783,6 @@ def task(ctx, config): assert e.status == 403 assert denied - rl.log_and_clear("put_obj", bucket_name, user1) # TESTCASE 'user-renable2','user','enable','suspended user','succeeds' (err, out) = rgwadmin(ctx, client, ['user', 'enable', '--uid', user1], @@ -848,7 +791,6 @@ def task(ctx, config): # TESTCASE 'user-renable3','user','enable','reenabled user','can write objects' key = boto.s3.key.Key(bucket) key.set_contents_from_string('six') - rl.log_and_clear("put_obj", bucket_name, user1) # TESTCASE 'gc-list', 'gc', 'list', 'get list of objects ready for garbage collection' @@ -857,11 +799,9 @@ def task(ctx, config): big_key = boto.s3.key.Key(bucket) big_key.set_contents_from_string(test_string) - rl.log_and_clear("put_obj", bucket_name, user1) # now delete the head big_key.delete() - rl.log_and_clear("delete_obj", bucket_name, user1) # wait a bit to give the garbage collector time to cycle time.sleep(15) @@ -889,21 +829,16 @@ def task(ctx, config): bucket.delete() except boto.exception.S3ResponseError as e: assert e.status == 409 - rl.log_and_clear("delete_bucket", bucket_name, user1) key.delete() - rl.log_and_clear("delete_obj", bucket_name, user1) bucket.delete() - rl.log_and_clear("delete_bucket", bucket_name, user1) # TESTCASE 'rm-bucket', 'bucket', 'rm', 'bucket with objects', 'succeeds' bucket = connection.create_bucket(bucket_name) - rl.log_and_clear("create_bucket", bucket_name, user1) key_name = ['eight', 'nine', 'ten', 'eleven'] for i in range(4): key = boto.s3.key.Key(bucket) key.set_contents_from_string(key_name[i]) - rl.log_and_clear("put_obj", bucket_name, user1) (err, out) = rgwadmin(ctx, client, ['bucket', 'rm', '--bucket', bucket_name, '--purge-objects'], @@ -922,7 +857,6 @@ def task(ctx, config): # TESTCASE 'rm-user','user','rm','existing user','fails, still has buckets' bucket = connection.create_bucket(bucket_name) - rl.log_and_clear("create_bucket", bucket_name, user1) key = boto.s3.key.Key(bucket) (err, out) = rgwadmin(ctx, client, ['user', 'rm', '--uid', user1]) @@ -930,10 +864,8 @@ def task(ctx, config): # TESTCASE 'rm-user2', 'user', 'rm', 'user with data', 'succeeds' bucket = connection.create_bucket(bucket_name) - rl.log_and_clear("create_bucket", bucket_name, user1) key = boto.s3.key.Key(bucket) key.set_contents_from_string('twelve') - rl.log_and_clear("put_obj", bucket_name, user1) time.sleep(35) @@ -1000,13 +932,10 @@ def task(ctx, config): # create a bucket bucket = connection3.create_bucket(bucket_name + '6') - rl.log_and_clear("create_bucket", bucket_name + '6', user3) - # create object object_name1 = 'thirteen' key1 = boto.s3.key.Key(bucket, object_name1) key1.set_contents_from_string(object_name1) - rl.log_and_clear("put_obj", bucket_name + '6', user3) # rename user3 (err, out) = rgwadmin(ctx, client, ['user', 'rename', '--uid', user3, '--new-uid', user4], check_status=True) @@ -1019,7 +948,6 @@ def task(ctx, config): # get bucket and object to test if user keys are preserved bucket = connection3.get_bucket(bucket_name + '6') s = key1.get_contents_as_string(encoding='ascii') - rl.log_and_clear("get_obj", bucket_name + '6', user4) assert s == object_name1 # TESTCASE 'user-rename', 'user', 'rename', 'existing user', 'another existing user', 'fails' @@ -1037,13 +965,10 @@ def task(ctx, config): # create a bucket bucket = connection2.create_bucket(bucket_name + '7') - rl.log_and_clear("create_bucket", bucket_name + '7', user2) - # create object object_name2 = 'fourteen' key2 = boto.s3.key.Key(bucket, object_name2) key2.set_contents_from_string(object_name2) - rl.log_and_clear("put_obj", bucket_name + '7', user2) (err, out) = rgwadmin(ctx, client, ['user', 'rename', '--uid', user4, '--new-uid', user2]) assert err @@ -1051,12 +976,10 @@ def task(ctx, config): # test if user 2 and user4 can still access their bucket and objects after rename fails bucket = connection3.get_bucket(bucket_name + '6') s = key1.get_contents_as_string(encoding='ascii') - rl.log_and_clear("get_obj", bucket_name + '6', user4) assert s == object_name1 bucket = connection2.get_bucket(bucket_name + '7') s = key2.get_contents_as_string(encoding='ascii') - rl.log_and_clear("get_obj", bucket_name + '7', user2) assert s == object_name2 (err, out) = rgwadmin(ctx, client, @@ -1071,7 +994,6 @@ def task(ctx, config): # should be all through with connection. (anything using connection # should be BEFORE the usage stuff above.) - rl.log_and_clear("(before-close)", '-', '-', ignore_this_entry) connection.close() connection = None