mirror of
https://github.com/ceph/ceph
synced 2025-03-11 02:39:05 +00:00
Merge pull request #375 from dachary/wip-rgw-regional-summary
ensure summary is looked for the user we need (part 2) Reviewed-by: Loic Dachary <ldachary@redhat.com>
This commit is contained in:
commit
cfc0d0784b
@ -23,20 +23,10 @@ import httplib2
|
||||
import util.rgw as rgw_utils
|
||||
|
||||
from teuthology import misc as teuthology
|
||||
from util.rgw import rgwadmin
|
||||
from util.rgw import rgwadmin, get_user_summary, get_user_successful_ops
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def successful_ops(out):
|
||||
"""Extract total from the first summary entry (presumed to be only one)"""
|
||||
summary = out['summary']
|
||||
if len(summary) == 0:
|
||||
return 0
|
||||
entry = summary[0]
|
||||
return entry['total']['successful_ops']
|
||||
|
||||
|
||||
def create_presigned_url(conn, method, bucket_name, key_name, expiration):
|
||||
return conn.generate_url(expires_in=expiration,
|
||||
method=method,
|
||||
@ -820,7 +810,7 @@ def task(ctx, config):
|
||||
timestamp = time.time()
|
||||
while time.time() - timestamp <= (20 * 60): # wait up to 20 minutes
|
||||
(err, out) = rgwadmin(ctx, client, ['usage', 'show', '--categories', 'delete_obj']) # last operation we did is delete obj, wait for it to flush
|
||||
if successful_ops(out) > 0:
|
||||
if get_user_successful_ops(out, user1) > 0:
|
||||
break
|
||||
time.sleep(1)
|
||||
|
||||
@ -831,14 +821,7 @@ def task(ctx, config):
|
||||
assert len(out['entries']) > 0
|
||||
assert len(out['summary']) > 0
|
||||
|
||||
# find summary for user1
|
||||
user_summary = None
|
||||
for summary in out['summary']:
|
||||
if summary.get('user') == user1:
|
||||
user_summary = summary
|
||||
|
||||
if not user_summary:
|
||||
raise AssertionError('No summary info found for user: %s' % user1)
|
||||
user_summary = get_user_summary(out, user1)
|
||||
|
||||
total = user_summary['total']
|
||||
assert total['successful_ops'] > 0
|
||||
|
@ -20,20 +20,10 @@ import time
|
||||
|
||||
from boto.connection import AWSAuthConnection
|
||||
from teuthology import misc as teuthology
|
||||
from util.rgw import get_user_summary, get_user_successful_ops
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
def successful_ops(out):
|
||||
"""
|
||||
Extract successful operations
|
||||
:param out: list
|
||||
"""
|
||||
summary = out['summary']
|
||||
if len(summary) == 0:
|
||||
return 0
|
||||
entry = summary[0]
|
||||
return entry['total']['successful_ops']
|
||||
|
||||
def rgwadmin(ctx, client, cmd):
|
||||
"""
|
||||
Perform rgw admin command
|
||||
@ -522,7 +512,7 @@ def task(ctx, config):
|
||||
while time.time() - timestamp <= (20 * 60): # wait up to 20 minutes
|
||||
(ret, out) = rgwadmin_rest(admin_conn, ['usage', 'show'], {'categories' : 'delete_obj'}) # last operation we did is delete obj, wait for it to flush
|
||||
|
||||
if successful_ops(out) > 0:
|
||||
if get_user_successful_ops(out, user1) > 0:
|
||||
break
|
||||
time.sleep(1)
|
||||
|
||||
@ -533,7 +523,7 @@ def task(ctx, config):
|
||||
assert ret == 200
|
||||
assert len(out['entries']) > 0
|
||||
assert len(out['summary']) > 0
|
||||
user_summary = out['summary'][0]
|
||||
user_summary = get_user_summary(out, user1)
|
||||
total = user_summary['total']
|
||||
assert total['successful_ops'] > 0
|
||||
|
||||
|
@ -49,6 +49,24 @@ def rgwadmin(ctx, client, cmd, stdin=StringIO(), check_status=False):
|
||||
log.info(' raw result: %s' % j)
|
||||
return (r, j)
|
||||
|
||||
def get_user_summary(out, user):
|
||||
"""Extract the summary for a given user"""
|
||||
user_summary = None
|
||||
for summary in out['summary']:
|
||||
if summary.get('user') == user:
|
||||
user_summary = summary
|
||||
|
||||
if not user_summary:
|
||||
raise AssertionError('No summary info found for user: %s' % user)
|
||||
|
||||
return user_summary
|
||||
|
||||
def get_user_successful_ops(out, user):
|
||||
summary = out['summary']
|
||||
if len(summary) == 0:
|
||||
return 0
|
||||
return get_user_summary(out, user)['total']['successful_ops']
|
||||
|
||||
def get_zone_host_and_port(ctx, client, zone):
|
||||
_, region_map = rgwadmin(ctx, client, check_status=True,
|
||||
cmd=['-n', client, 'region-map', 'get'])
|
||||
|
Loading…
Reference in New Issue
Block a user