]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: show devices with bluestore labels and unavailable
authorSage Weil <sage@redhat.com>
Mon, 9 Dec 2019 13:38:13 +0000 (07:38 -0600)
committerSébastien Han <seb@redhat.com>
Mon, 20 Jan 2020 12:53:33 +0000 (13:53 +0100)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 4b81bc8b358390f37eb5bcc3e2764ee6ede0ceda)

src/ceph-volume/ceph_volume/util/device.py

index ea478f3877d7891f3ed88189a4e061a2a8da9b34..7c5d448a8f22873c529bcd5a11e35added78aef1 100644 (file)
@@ -2,7 +2,7 @@
 
 import os
 from functools import total_ordering
-from ceph_volume import sys_info
+from ceph_volume import sys_info, process
 from ceph_volume.api import lvm
 from ceph_volume.util import disk
 from ceph_volume.util.constants import ceph_disk_guids
@@ -317,6 +317,15 @@ class Device(object):
                     break
         return is_member
 
+    @property
+    def has_bluestore_label(self):
+        out, err, ret = process.call([
+            'ceph-bluestore-tool', 'show-label',
+            '--dev', self.path])
+        if ret:
+            return False
+        return True
+
     @property
     def is_mapper(self):
         return self.path.startswith(('/dev/mapper', '/dev/dm-'))
@@ -391,6 +400,8 @@ class Device(object):
                     self.sys_api.get(k, '') == v]
         if self.is_ceph_disk_member:
             rejected.append("Used by ceph-disk")
+        if self.has_bluestore_label:
+            rejected.append('Has BlueStore device label')
 
         return len(rejected) == 0, rejected