]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/qa: fix for teuthology failure related to role metadata sync 46887/head
authorPritha Srivastava <prsrivas@redhat.com>
Thu, 23 Jun 2022 10:51:19 +0000 (16:21 +0530)
committerPritha Srivastava <prsrivas@redhat.com>
Wed, 29 Jun 2022 05:48:11 +0000 (11:18 +0530)
in case of pub sub zone.

fixes: https://tracker.ceph.com/issues/56175

Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
src/test/rgw/rgw_multi/multisite.py
src/test/rgw/rgw_multi/tests.py
src/test/rgw/rgw_multi/zone_az.py
src/test/rgw/rgw_multi/zone_cloud.py
src/test/rgw/rgw_multi/zone_es.py
src/test/rgw/rgw_multi/zone_ps.py

index ba6b13ee17f3a597b75fe774396d8609c719b46c..5d4dcd1aa7ae1480c038f2d33088b027ede9aa93 100644 (file)
@@ -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
 
index a8532e6562b6e5f87936094e5b510bc8214ad88c..c82e50d151556208ce7e905506e29f5733b24162 100644 (file)
@@ -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()
index aaab3ef74cf579db104f853f3983b95e2cee23f2..f9cd435743e4d84274cdd0da15ad1b1fb11da0eb 100644 (file)
@@ -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 """
index ea1b49e1e563c9f7ee42d10be029ec138c005209..dd5640cf271617ad5ec932b2ea2709b5910360eb 100644 (file)
@@ -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)
index 5ec20871ad5c3e51a5ab2e19c19eb7997e1e74b1..e98b3fdd8fa65fd8b8db5831cdb9f378dd7be8f6 100644 (file)
@@ -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)
index daee7a25b4ca880bff9a99576572b15bebb5630f..302892b99a1b601f7207013a048d7358076811c0 100644 (file)
@@ -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 = ''