From 0dd339bc915aa558246370d112b55ed47e2b51de Mon Sep 17 00:00:00 2001 From: Pritha Srivastava Date: Thu, 23 Jun 2022 16:21:19 +0530 Subject: [PATCH] rgw/qa: fix for teuthology failure related to role metadata sync in case of pub sub zone. fixes: https://tracker.ceph.com/issues/56175 Signed-off-by: Pritha Srivastava --- src/test/rgw/rgw_multi/multisite.py | 3 +++ src/test/rgw/rgw_multi/tests.py | 4 +++- src/test/rgw/rgw_multi/zone_az.py | 2 ++ src/test/rgw/rgw_multi/zone_cloud.py | 3 +++ src/test/rgw/rgw_multi/zone_es.py | 3 +++ src/test/rgw/rgw_multi/zone_ps.py | 2 ++ 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/test/rgw/rgw_multi/multisite.py b/src/test/rgw/rgw_multi/multisite.py index ba6b13ee17f3a..5d4dcd1aa7ae1 100644 --- a/src/test/rgw/rgw_multi/multisite.py +++ b/src/test/rgw/rgw_multi/multisite.py @@ -169,6 +169,9 @@ class Zone(SystemObject, SystemObject.CreateDelete, SystemObject.GetSet, SystemO def has_buckets(self): return True + def has_roles(self): + return True + def get_conn(self, credentials): return ZoneConn(self, credentials) # not implemented, but can be used diff --git a/src/test/rgw/rgw_multi/tests.py b/src/test/rgw/rgw_multi/tests.py index a8532e6562b6e..c82e50d151556 100644 --- a/src/test/rgw/rgw_multi/tests.py +++ b/src/test/rgw/rgw_multi/tests.py @@ -505,6 +505,7 @@ def create_role_per_zone(zonegroup_conns, roles_per_zone = 1): for zone in zonegroup_conns.rw_zones: for i in range(roles_per_zone): role_name = gen_role_name() + log.info('create role zone=%s name=%s', zone.name, role_name) policy_document = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam:::user/testuser\"]},\"Action\":[\"sts:AssumeRole\"]}]}" role = zone.create_role("", role_name, policy_document, "") roles.append(role_name) @@ -600,7 +601,8 @@ def check_bucket_eq(zone_conn1, zone_conn2, bucket): zone_conn2.check_bucket_eq(zone_conn1, bucket.name) def check_role_eq(zone_conn1, zone_conn2, role): - zone_conn2.check_role_eq(zone_conn1, role['create_role_response']['create_role_result']['role']['role_name']) + if zone_conn2.zone.has_roles(): + zone_conn2.check_role_eq(zone_conn1, role['create_role_response']['create_role_result']['role']['role_name']) def test_object_sync(): zonegroup = realm.master_zonegroup() diff --git a/src/test/rgw/rgw_multi/zone_az.py b/src/test/rgw/rgw_multi/zone_az.py index aaab3ef74cf57..f9cd435743e4d 100644 --- a/src/test/rgw/rgw_multi/zone_az.py +++ b/src/test/rgw/rgw_multi/zone_az.py @@ -26,6 +26,8 @@ class AZone(Zone): # pylint: disable=too-many-ancestors def has_buckets(self): return False + def has_roles(self): + return True class AZoneConfig: """ archive zone configuration """ diff --git a/src/test/rgw/rgw_multi/zone_cloud.py b/src/test/rgw/rgw_multi/zone_cloud.py index ea1b49e1e563c..dd5640cf27161 100644 --- a/src/test/rgw/rgw_multi/zone_cloud.py +++ b/src/test/rgw/rgw_multi/zone_cloud.py @@ -257,6 +257,9 @@ class CloudZone(Zone): def has_buckets(self): return False + def has_roles(self): + return False + class Conn(ZoneConn): def __init__(self, zone, credentials): super(CloudZone.Conn, self).__init__(zone, credentials) diff --git a/src/test/rgw/rgw_multi/zone_es.py b/src/test/rgw/rgw_multi/zone_es.py index 5ec20871ad5c3..e98b3fdd8fa65 100644 --- a/src/test/rgw/rgw_multi/zone_es.py +++ b/src/test/rgw/rgw_multi/zone_es.py @@ -199,6 +199,9 @@ class ESZone(Zone): def has_buckets(self): return False + def has_roles(self): + return False + class Conn(ZoneConn): def __init__(self, zone, credentials): super(ESZone.Conn, self).__init__(zone, credentials) diff --git a/src/test/rgw/rgw_multi/zone_ps.py b/src/test/rgw/rgw_multi/zone_ps.py index daee7a25b4ca8..302892b99a1b6 100644 --- a/src/test/rgw/rgw_multi/zone_ps.py +++ b/src/test/rgw/rgw_multi/zone_ps.py @@ -54,6 +54,8 @@ class PSZone(Zone): # pylint: disable=too-many-ancestors def has_buckets(self): return False + def has_roles(self): + return False NO_HTTP_BODY = '' -- 2.39.5