]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/rgw: add optional --tenant flag to test_multi.py
authorCasey Bodley <cbodley@redhat.com>
Fri, 1 Jul 2016 16:36:04 +0000 (12:36 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 24 Aug 2016 18:05:19 +0000 (14:05 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 6f65d192cd3917cdcf7d9deb5396750d2c641842)

src/test/rgw/test_multi.py

index d4efb5b49cf15ba1443a3cdc55bc09e9211bf7e1..91dd0d86f343f4fb14b97163aba2738f5de3735d 100644 (file)
@@ -302,10 +302,12 @@ class RGWRealm:
         if target_zone.zone_name == source_zone.zone_name:
             return None
 
+        cmd = '--rgw-realm=' + self.realm + ' bucket sync status --source-zone=' + source_zone.zone_name + ' --bucket=' + bucket_name
+        global user
+        if user.tenant is not None:
+            cmd += ' --tenant=' + user.tenant + ' --uid=' + user.uid
         while True:
-            (bucket_sync_status_json, retcode) = target_zone.cluster.rgw_admin_ro('--rgw-realm=' + self.realm +
-                                                                                ' bucket sync status --source-zone=' + source_zone.zone_name +
-                                                                                ' --bucket=' + bucket_name, check_retcode = False)
+            (bucket_sync_status_json, retcode) = target_zone.cluster.rgw_admin_ro(cmd, check_retcode = False)
             if retcode == 0:
                 break
 
@@ -338,8 +340,12 @@ class RGWRealm:
         return markers
 
     def bucket_source_log_status(self, source_zone, bucket_name):
+        cmd = '--rgw-realm=' + self.realm + ' bilog status --bucket=' + bucket_name
+        global user
+        if user.tenant is not None:
+            cmd += ' --tenant=' + user.tenant + ' --uid=' + user.uid
         source_cluster = source_zone.cluster
-        (bilog_status_json, retcode) = source_cluster.rgw_admin_ro('--rgw-realm=' + self.realm + ' bilog status --bucket=' + bucket_name)
+        (bilog_status_json, retcode) = source_cluster.rgw_admin_ro(cmd)
         bilog_status = json.loads(bilog_status_json)
 
         m={}
@@ -439,6 +445,8 @@ class RGWRealm:
         log(5, 'creating user uid=', user.uid)
         cmd = build_cmd('--uid', user.uid, '--display-name', user.display_name,
                         '--access-key', user.access_key, '--secret', user.secret)
+        if user.tenant is not None:
+            cmd += ' --tenant ' + user.tenant
         self.master_zone.cluster.rgw_admin('--rgw-realm=' + self.realm + ' user create ' + cmd)
 
         if wait_meta:
@@ -451,11 +459,12 @@ class RGWRealm:
 
 
 class RGWUser:
-    def __init__(self, uid, display_name, access_key, secret):
+    def __init__(self, uid, display_name, access_key, secret, tenant):
         self.uid = uid
         self.display_name = display_name
         self.access_key = access_key
         self.secret = secret
+        self.tenant = tenant
 
 def gen_access_key():
      return ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(16))
@@ -479,7 +488,7 @@ class RGWMulti:
         for i in xrange(num_clusters):
             self.clusters[i] = RGWCluster(i + 1, self.base_port + i)
 
-    def setup(self, bootstrap):
+    def setup(self, bootstrap, tenant):
         global realm
         global realm_credentials
         global user
@@ -501,7 +510,7 @@ class RGWMulti:
 
         realm.meta_checkpoint()
 
-        user = RGWUser('tester', '"Test User"', gen_access_key(), gen_secret())
+        user = RGWUser('tester', '"Test User"', gen_access_key(), gen_secret(), tenant)
         realm.create_user(user)
 
         realm.meta_checkpoint()
@@ -803,6 +812,7 @@ def init(parse_args):
                                          'num_zones': 3,
                                          'no_bootstrap': 'false',
                                          'log_level': 20,
+                                         'tenant': None,
                                          })
     try:
         path = os.environ['RGW_MULTI_TEST_CONF']
@@ -824,6 +834,7 @@ def init(parse_args):
     parser.add_argument('--num-zones', type=int, default=cfg.getint(section, 'num_zones'))
     parser.add_argument('--no-bootstrap', action='store_true', default=cfg.getboolean(section, 'no_bootstrap'))
     parser.add_argument('--log-level', type=int, default=cfg.getint(section, 'log_level'))
+    parser.add_argument('--tenant', type=str, default=cfg.get(section, 'tenant'))
 
     argv = []
 
@@ -839,7 +850,7 @@ def init(parse_args):
 
     rgw_multi = RGWMulti(int(args.num_zones))
 
-    rgw_multi.setup(not args.no_bootstrap)
+    rgw_multi.setup(not args.no_bootstrap, args.tenant)
 
 
 def setup_module():