From bd4bd5c65e10ab2168942a9dabac530d90bf351b Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Thu, 25 Feb 2016 12:53:10 +0700 Subject: [PATCH] ceph-disk: simplify trigger The ceph-disk trigger deals with dmcrypt mapping which is redundant with what ceph-disk activate-* does when the --dmcrypt flag is set. Remove the dmcrypt mapping code and add the --dmcrypt flag to ceph-disk activate-* where relevant. Signed-off-by: Loic Dachary --- src/ceph-disk/ceph_disk/main.py | 87 ++++++++++++--------------------- 1 file changed, 31 insertions(+), 56 deletions(-) diff --git a/src/ceph-disk/ceph_disk/main.py b/src/ceph-disk/ceph_disk/main.py index 133e404162501..47bdc55c2a725 100755 --- a/src/ceph-disk/ceph_disk/main.py +++ b/src/ceph-disk/ceph_disk/main.py @@ -3936,78 +3936,36 @@ def main_trigger(args): args.dev, ] ) - elif parttype in (PTYPE['regular']['journal']['ready'], - PTYPE['mpath']['journal']['ready']): - command( - [ - 'ceph-disk', - 'activate-journal', - args.dev, - ] - ) - # journals are easy: map, chown, activate-journal - elif parttype == PTYPE['plain']['journal']['ready']: + elif parttype in (PTYPE['plain']['osd']['ready'], + PTYPE['luks']['osd']['ready']): command( [ - '/sbin/cryptsetup', - '--key-file', - '/etc/ceph/dmcrypt-keys/{partid}'.format(partid=partid), - '--key-size', - '256', - 'create', - partid, + '/usr/sbin/ceph-disk', + 'activate', + '--dmcrypt', args.dev, ] ) - newdev = '/dev/mapper/' + partid - count = 0 - while not os.path.exists(newdev) and count <= 10: - time.sleep(1) - count += 1 - command( - [ - '/bin/chown', - 'ceph:ceph', - newdev, - ] - ) + + elif parttype in (PTYPE['regular']['journal']['ready'], + PTYPE['mpath']['journal']['ready']): command( [ - '/usr/sbin/ceph-disk', + 'ceph-disk', 'activate-journal', - newdev, - ] - ) - elif parttype == PTYPE['luks']['journal']['ready']: - command( - [ - '/sbin/cryptsetup', - '--key-file', - '/etc/ceph/dmcrypt-keys/{partid}.luks.key'.format( - partid=partid), - 'luksOpen', args.dev, - partid, - ] - ) - newdev = '/dev/mapper/' + partid - count = 0 - while not os.path.exists(newdev) and count <= 10: - time.sleep(1) - count += 1 - command( - [ - '/bin/chown', - 'ceph:ceph', - newdev, ] ) + + elif parttype in (PTYPE['plain']['journal']['ready'], + PTYPE['luks']['journal']['ready']): command( [ '/usr/sbin/ceph-disk', 'activate-journal', - newdev, + '--dmcrypt', + args.dev, ] ) @@ -4251,6 +4209,23 @@ def make_trigger_parser(subparsers): 'dev', help=('device'), ) + trigger_parser.add_argument( + '--cluster', + metavar='NAME', + default='ceph', + help='cluster name to assign this disk to', + ) + trigger_parser.add_argument( + '--dmcrypt', + action='store_true', default=None, + help='map DATA and/or JOURNAL devices with dm-crypt', + ) + trigger_parser.add_argument( + '--dmcrypt-key-dir', + metavar='KEYDIR', + default='/etc/ceph/dmcrypt-keys', + help='directory where dm-crypt keys are stored', + ) trigger_parser.add_argument( '--sync', action='store_true', default=None, -- 2.39.5