summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Abrioux <gabrioux@redhat.com>2022-01-21 13:37:25 +0100
committerGitHub <noreply@github.com>2022-01-21 13:37:25 +0100
commitf23e1ba25fbea4594287a77f56433b4a8aefa56c (patch)
tree9aaa602b26cd44c5d4f34d0892b403c8d6d6beb3
parentf3006873dcede81aed7b2a0307b61f7599f18927 (diff)
parent47325ec3ec5ce1d53c5eae2952f631e95b7135fe (diff)
downloadceph-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.py9
-rw-r--r--src/ceph-volume/ceph_volume/util/disk.py11
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):