diff options
author | Guillaume Abrioux <gabrioux@redhat.com> | 2022-01-21 13:37:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-21 13:37:25 +0100 |
commit | f23e1ba25fbea4594287a77f56433b4a8aefa56c (patch) | |
tree | 9aaa602b26cd44c5d4f34d0892b403c8d6d6beb3 | |
parent | f3006873dcede81aed7b2a0307b61f7599f18927 (diff) | |
parent | 47325ec3ec5ce1d53c5eae2952f631e95b7135fe (diff) | |
download | ceph-f23e1ba25fbea4594287a77f56433b4a8aefa56c.tar.gz |
Merge pull request #44604 from mgfritch/c-v-skip-rbd-devs
ceph-volume: show RBD devices as not available
-rw-r--r-- | src/ceph-volume/ceph_volume/tests/util/test_disk.py | 9 | ||||
-rw-r--r-- | src/ceph-volume/ceph_volume/util/disk.py | 11 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/ceph-volume/ceph_volume/tests/util/test_disk.py b/src/ceph-volume/ceph_volume/tests/util/test_disk.py index 44f19e036fa..6b178eabdbb 100644 --- a/src/ceph-volume/ceph_volume/tests/util/test_disk.py +++ b/src/ceph-volume/ceph_volume/tests/util/test_disk.py @@ -331,6 +331,15 @@ class TestGetDevices(object): result = disk.get_devices(_sys_block_path=block_path) assert result[sda_path]['rotational'] == '1' + def test_is_ceph_rbd(self, tmpfile, tmpdir, patched_get_block_devs_lsblk): + rbd_path = '/dev/rbd0' + patched_get_block_devs_lsblk.return_value = [[rbd_path, rbd_path, 'disk']] + block_path = self.setup_path(tmpdir) + block_rbd_path = os.path.join(block_path, 'rbd0') + os.makedirs(block_rbd_path) + result = disk.get_devices(_sys_block_path=block_path) + assert rbd_path not in result + class TestSizeCalculations(object): diff --git a/src/ceph-volume/ceph_volume/util/disk.py b/src/ceph-volume/ceph_volume/util/disk.py index 88db0513817..8a47061ef91 100644 --- a/src/ceph-volume/ceph_volume/util/disk.py +++ b/src/ceph-volume/ceph_volume/util/disk.py @@ -361,6 +361,13 @@ def is_partition(dev): return False +def is_ceph_rbd(dev): + """ + Boolean to determine if a given device is a ceph RBD device, like /dev/rbd0 + """ + return dev.startswith(('/dev/rbd')) + + class BaseFloatUnit(float): """ Base class to support float representations of size values. Suffix is @@ -764,6 +771,10 @@ def get_devices(_sys_block_path='/sys/block'): sysdir = os.path.join(_sys_block_path, devname) metadata = {} + # If the device is ceph rbd it gets excluded + if is_ceph_rbd(diskname): + continue + # If the mapper device is a logical volume it gets excluded if is_mapper_device(diskname): if lvm.get_device_lvs(diskname): |