From: Loic Dachary Date: Sat, 22 Apr 2017 08:14:45 +0000 (+0200) Subject: ceph-disk: implement prepare --no-locking X-Git-Tag: v12.0.3~239^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F14728%2Fhead;p=ceph.git ceph-disk: implement prepare --no-locking Signed-off-by: Dan van der Ster Signed-off-by: Loic Dachary --- diff --git a/src/ceph-disk/ceph_disk/main.py b/src/ceph-disk/ceph_disk/main.py index 69fe9f3eaa5c..a9d21351506e 100755 --- a/src/ceph-disk/ceph_disk/main.py +++ b/src/ceph-disk/ceph_disk/main.py @@ -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 = []