]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-disk: implement prepare --no-locking 14728/head
authorLoic Dachary <ldachary@redhat.com>
Sat, 22 Apr 2017 08:14:45 +0000 (10:14 +0200)
committerLoic Dachary <ldachary@redhat.com>
Sat, 22 Apr 2017 08:20:18 +0000 (10:20 +0200)
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
Signed-off-by: Loic Dachary <loic@dachary.org>
src/ceph-disk/ceph_disk/main.py

index 69fe9f3eaa5cdb74aacea3d740a4a8b326b2140a..a9d21351506eff895a10572f12e406c93ba8ca71 100755 (executable)
@@ -1957,6 +1957,11 @@ class Prepare(object):
             default='{statedir}/bootstrap-osd/{cluster}.keyring',
             dest='prepare_key_template',
         )
+        parser.add_argument(
+            '--no-locking',
+            action='store_true', default=None,
+            help='let many prepare\'s run in parallel',
+        )
         return parser
 
     @staticmethod
@@ -2017,8 +2022,11 @@ class Prepare(object):
         return parser
 
     def prepare(self):
-        with prepare_lock:
-            self.prepare_locked()
+        if self.args.no_locking:
+            self._prepare()
+        else:
+            with prepare_lock:
+                self._prepare()
 
     @staticmethod
     def factory(args):
@@ -2047,7 +2055,7 @@ class PrepareFilestore(Prepare):
             PrepareJournal.parser(),
         ]
 
-    def prepare_locked(self):
+    def _prepare(self):
         if self.data.args.dmcrypt:
             self.lockbox.prepare()
         self.data.prepare(self.journal)
@@ -2083,7 +2091,7 @@ class PrepareBluestore(Prepare):
             PrepareBluestoreBlockWAL.parser(),
         ]
 
-    def prepare_locked(self):
+    def _prepare(self):
         if self.data.args.dmcrypt:
             self.lockbox.prepare()
         to_prepare_list = []