]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-disk: simplify trigger
authorLoic Dachary <ldachary@redhat.com>
Thu, 25 Feb 2016 05:53:10 +0000 (12:53 +0700)
committerLoic Dachary <ldachary@redhat.com>
Fri, 4 Mar 2016 02:13:35 +0000 (09:13 +0700)
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 <loic@dachary.org>
src/ceph-disk/ceph_disk/main.py

index 133e404162501d016d603b884f7385082fb00c17..47bdc55c2a725c272cda5ad488df9b6d70a76344 100755 (executable)
@@ -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,