]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tasks/cephfs: tweak use of mon for admin commands
authorJohn Spray <jspray@redhat.com>
Tue, 7 Apr 2015 13:14:15 +0000 (14:14 +0100)
committerJohn Spray <jcspray@gmail.com>
Tue, 21 Apr 2015 13:20:44 +0000 (14:20 +0100)
... s/mon_remote/admin_remote/ and allow caller to pass
in which remote they want to use for that.  Enables use
with ceph_deploy task which does not give admin keys
to mons.

Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit 8b61310ce3eedeb8ac60446933cd5db548de6434)

tasks/cephfs/filesystem.py
tasks/mds_journal_repair.py

index cf7f6041cf97cb53fc5971b108a535577c68a59d..bc3a0d6f262b11adb497ba5db27761dc96140435 100644 (file)
@@ -38,7 +38,7 @@ class Filesystem(object):
      * Assume a single filesystem+cluster
      * Assume a single MDS
     """
-    def __init__(self, ctx):
+    def __init__(self, ctx, admin_remote=None):
         self._ctx = ctx
 
         self.mds_ids = list(misc.all_roles_of_type(ctx.cluster, 'mds'))
@@ -46,8 +46,11 @@ class Filesystem(object):
             raise RuntimeError("This task requires at least one MDS")
 
         first_mon = misc.get_first_mon(ctx, None)
-        (self.mon_remote,) = ctx.cluster.only(first_mon).remotes.iterkeys()
-        self.mon_manager = ceph_manager.CephManager(self.mon_remote, ctx=ctx, logger=log.getChild('ceph_manager'))
+        if admin_remote is None:
+            (self.admin_remote,) = ctx.cluster.only(first_mon).remotes.iterkeys()
+        else:
+            self.admin_remote = admin_remote
+        self.mon_manager = ceph_manager.CephManager(self.admin_remote, ctx=ctx, logger=log.getChild('ceph_manager'))
         self.mds_daemons = dict([(mds_id, self._ctx.daemons.get_daemon('mds', mds_id)) for mds_id in self.mds_ids])
 
         client_list = list(misc.all_roles_of_type(self._ctx.cluster, 'client'))
@@ -59,15 +62,15 @@ class Filesystem(object):
         osd_count = len(list(misc.all_roles_of_type(self._ctx.cluster, 'osd')))
         pgs_per_fs_pool = pg_warn_min_per_osd * osd_count
 
-        self.mon_remote.run(args=['sudo', 'ceph', 'osd', 'pool', 'create', 'metadata', pgs_per_fs_pool.__str__()])
-        self.mon_remote.run(args=['sudo', 'ceph', 'osd', 'pool', 'create', 'data', pgs_per_fs_pool.__str__()])
-        self.mon_remote.run(args=['sudo', 'ceph', 'fs', 'new', 'default', 'metadata', 'data'])
+        self.admin_remote.run(args=['sudo', 'ceph', 'osd', 'pool', 'create', 'metadata', pgs_per_fs_pool.__str__()])
+        self.admin_remote.run(args=['sudo', 'ceph', 'osd', 'pool', 'create', 'data', pgs_per_fs_pool.__str__()])
+        self.admin_remote.run(args=['sudo', 'ceph', 'fs', 'new', 'default', 'metadata', 'data'])
 
     def delete(self):
-        self.mon_remote.run(args=['sudo', 'ceph', 'fs', 'rm', 'default', '--yes-i-really-mean-it'])
-        self.mon_remote.run(args=['sudo', 'ceph', 'osd', 'pool', 'delete',
+        self.admin_remote.run(args=['sudo', 'ceph', 'fs', 'rm', 'default', '--yes-i-really-mean-it'])
+        self.admin_remote.run(args=['sudo', 'ceph', 'osd', 'pool', 'delete',
                                   'metadata', 'metadata', '--yes-i-really-really-mean-it'])
-        self.mon_remote.run(args=['sudo', 'ceph', 'osd', 'pool', 'delete',
+        self.admin_remote.run(args=['sudo', 'ceph', 'osd', 'pool', 'delete',
                                   'data', 'data', '--yes-i-really-really-mean-it'])
 
     def legacy_configured(self):
@@ -76,8 +79,8 @@ class Filesystem(object):
         the case, the caller should avoid using Filesystem.create
         """
         try:
-            proc = self.mon_remote.run(args=['sudo', 'ceph', '--format=json-pretty', 'osd', 'lspools'],
-                                  stdout=StringIO())
+            proc = self.admin_remote.run(args=['sudo', 'ceph', '--format=json-pretty', 'osd', 'lspools'],
+                                       stdout=StringIO())
             pools = json.loads(proc.stdout.getvalue())
             metadata_pool_exists = 'metadata' in [p['poolname'] for p in pools]
         except CommandFailedError as e:
index 62ed0534d890cf869583dfca61b0739f7783edfa..1c261a746b0c40b38c13ee7a34813b88b777904b 100644 (file)
@@ -276,7 +276,7 @@ class TestJournalRepair(CephFSTestCase):
         self.fs.table_tool(["0", "reset", "session"])
         self.fs.journal_tool(["journal", "reset"], rank=0)
         self.fs.erase_mds_objects(1)
-        self.fs.mon_remote.run(args=['sudo', 'ceph', 'fs', 'reset', 'default', '--yes-i-really-mean-it'])
+        self.fs.admin_remote.run(args=['sudo', 'ceph', 'fs', 'reset', 'default', '--yes-i-really-mean-it'])
 
         # Bring an MDS back online, mount a client, and see that we can walk the full
         # filesystem tree again