]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: create clients in all zones when regions are used
authorJosh Durgin <josh.durgin@inktank.com>
Mon, 10 Mar 2014 07:25:32 +0000 (00:25 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Mon, 10 Mar 2014 07:29:50 +0000 (00:29 -0700)
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
teuthology/task/rgw.py

index 9805c6a4eeaf9d81352f1fc958d69ad0fd426a63..f050baae6b39817d50c32d6c75d41170daee8f57 100644 (file)
@@ -419,7 +419,7 @@ def fill_in_endpoints(region_info, role_zones, role_endpoints):
         region_conf['zones'].append(zone_payload)
 
 @contextlib.contextmanager
-def configure_users(ctx, config):
+def configure_users(ctx, config, everywhere=False):
     """
     Create users by remotely running rgwadmin commands using extracted
     user information.
@@ -431,14 +431,21 @@ def configure_users(ctx, config):
         if not c_config:
             continue
         user_info = extract_user_info(c_config)
+        if not user_info:
+            continue
 
-        # if user_info was successfully parsed, use it to create a user
-        if user_info is not None:
+        # For data sync the master zones and regions must have the
+        # system users of the secondary zones. To keep this simple,
+        # just create the system users on every client if regions are
+        # configured.
+        clients_to_create_as = [client]
+        if everywhere:
+            clients_to_create_as = config.keys()
+        for client_name in clients_to_create_as:
             log.debug('Creating user {user} on {client}'.format(
                       user=user_info['system_key']['user'],client=client))
-            rgwadmin(ctx, client,
+            rgwadmin(ctx, client_name,
                     cmd=[
-                        '-n', client,
                         'user', 'create',
                         '--uid', user_info['system_key']['user'],
                         '--access-key', user_info['system_key']['access_key'],
@@ -665,6 +672,7 @@ def task(ctx, config):
         lambda: configure_users(
             ctx=ctx,
             config=config,
+            everywhere=bool(regions),
             ),
         lambda: ship_config(ctx=ctx, config=config,
                             role_endpoints=role_endpoints),