]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: show devices with GPT headers as not available 40315/head
authorAndrew Schoen <aschoen@redhat.com>
Wed, 17 Mar 2021 20:19:08 +0000 (15:19 -0500)
committerGuillaume Abrioux <gabrioux@redhat.com>
Mon, 22 Mar 2021 16:18:02 +0000 (17:18 +0100)
This patch ensures that if a device has GPT headers it will
not show up in `ceph-volume inventory` as available.

Fixes: https://tracker.ceph.com/issues/48697
Resolves: rhbz#1908065

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
(cherry picked from commit 1347243242fc55c904c4d94fb43bdf0bcfc23ab0)

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

index ac8bc28afcbd7d250a78c9a8e201725be4081ecb..0df5ac61e9ea319f79f27bc3e6cf8ce69d0691cb 100644 (file)
@@ -203,6 +203,18 @@ class TestDevice(object):
         disk = device.Device("/dev/sdb")
         assert not disk.available
 
+    def test_reject_device_with_gpt_headers(self, device_info):
+        data = {"/dev/sdb": {"removable": 0, "size": 5368709120}}
+        lsblk = {"TYPE": "disk"}
+        blkid= {"PTTYPE": "gpt"}
+        device_info(
+            devices=data,
+            blkid=blkid,
+            lsblk=lsblk,
+        )
+        disk = device.Device("/dev/sdb")
+        assert not disk.available
+
     def test_accept_non_removable_device(self, device_info):
         data = {"/dev/sdb": {"removable": 0, "size": 5368709120}}
         lsblk = {"TYPE": "disk"}
index 461775202a72e8e6440d1da7bf3568348de51230..deed06436d8ed1b85ba753563d99917807bdb24e 100644 (file)
@@ -478,6 +478,8 @@ class Device(object):
             rejected.append("Used by ceph-disk")
         if self.has_bluestore_label:
             rejected.append('Has BlueStore device label')
+        if self.has_gpt_headers:
+            rejected.append('Has GPT headers')
         return rejected
 
     def _check_lvm_reject_reasons(self):