]> git-server-git.apps.pok.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)
committerJan Fajerski <jfajerski@suse.com>
Fri, 28 Feb 2020 09:34:30 +0000 (10:34 +0100)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 4b81bc8b358390f37eb5bcc3e2764ee6ede0ceda)

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

index 029c69ef7625390db71c50a8dcce6f38daac2281..a5bc388f157ba0d2d697ff9a06180b7cc3552fd8 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
@@ -312,6 +312,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-'))
@@ -389,6 +398,8 @@ class Device(object):
             rejected.append('Insufficient space (<5GB)')
         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