]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume simple.scan better detection for ceph-disk data devices 24330/head
authorAlfredo Deza <adeza@redhat.com>
Thu, 27 Sep 2018 20:17:29 +0000 (16:17 -0400)
committerAlfredo Deza <adeza@redhat.com>
Thu, 27 Sep 2018 20:17:29 +0000 (16:17 -0400)
Uses the new ``CephDiskDevice`` to look into PARTLABEL from both lsblk
(the default) falling back to blkid, which in some cases has the right
value when lsblk fails.

Signed-off-by: Alfredo Deza <adeza@redhat.com>
src/ceph-volume/ceph_volume/devices/simple/scan.py

index 9dabbe9ba77d77cf4482fb635585e917384e3114..55d26ef78ba6217478503ad42cda31823953fac8 100644 (file)
@@ -8,6 +8,7 @@ from textwrap import dedent
 from ceph_volume import decorators, terminal, conf
 from ceph_volume.api import lvm
 from ceph_volume.util import arg_validators, system, disk, encryption
+from ceph_volume.util.device import Device
 
 
 logger = logging.getLogger(__name__)
@@ -337,10 +338,12 @@ class Scan(object):
             return
 
         args = parser.parse_args(self.argv)
-        if disk.is_partition(args.osd_path):
-            label = disk.lsblk(args.osd_path)['PARTLABEL']
-            if 'data' not in label:
-                raise RuntimeError('Device must be the data partition, but got: %s' % label)
+        device = Device(args.osd_path)
+        if device.is_partition:
+            if device.ceph_disk.type != 'data':
+                label = device.ceph_disk.partlabel
+                msg = 'Device must be the ceph data partition, but PARTLABEL reported: "%s"' % label
+                raise RuntimeError(msg)
 
         # Capture some environment status, so that it can be reused all over
         self.device_mounts = system.get_mounts(devices=True)