]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-disk: unlock all partitions when activate 17363/head
authorKefu Chai <kchai@redhat.com>
Wed, 30 Aug 2017 10:46:49 +0000 (18:46 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 30 Aug 2017 10:46:53 +0000 (18:46 +0800)
should unlock all dmcrypted partitions when activating a device.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/ceph-disk/ceph_disk/main.py

index 5a0a2b61ecf5dcee88446f49f850286d3ac9ec08..bb538d0e4d452eea23f353d0e136d29db0a64f24 100644 (file)
@@ -3761,23 +3761,18 @@ def main_activate(args):
             osd_data = get_mount_point(cluster, osd_id)
 
             args.cluster = cluster
-
-            # Check if encrypted block device in journal
-
-            block_dmcrypt_path = os.path.join(osd_data, 'block_dmcrypt')
-
-            if args.dmcrypt and os.path.exists(block_dmcrypt_path):
-                partition = DevicePartition.factory(
-                    path=None,
-                    dev=os.path.join(osd_data, 'block_dmcrypt'),
-                    args=args)
-
-                partition.osd_dm_key = get_dmcrypt_key(
-                    get_partition_uuid(args.path),
-                    args.dmcrypt_key_dir,
-                    CryptHelpers.get_dmcrypt_type(args) == "luks")
-
-                partition.map()
+            if args.dmcrypt:
+                for name in Space.NAMES:
+                    # Check if encrypted device in journal
+                    dev_path = os.path.join(osd_data, name + '_dmcrypt')
+                    if not os.path.exists(dev_path):
+                        continue
+                    partition = DevicePartition.factory(
+                        path=None,
+                        dev=dev_path,
+                        args=args)
+                    partition.rawdev = args.path
+                    partition.map()
 
         elif stat.S_ISDIR(mode):
             (cluster, osd_id) = activate_dir(