mirror of
https://github.com/ceph/ceph
synced 2025-02-24 03:27:10 +00:00
ceph_volume: Rejecting Read-only devices
If a devices is said to be read-only, there is no chance we can actually use it. So let's report it as unusable. Signed-off-by: Erwan Velu <erwan@redhat.com>
This commit is contained in:
parent
d8fdf0b753
commit
f1a9435006
@ -162,6 +162,18 @@ class TestCephDiskDevice(object):
|
||||
disk = device.Device("/dev/sdb")
|
||||
assert disk.is_valid
|
||||
|
||||
def test_reject_readonly_device(self, device_info):
|
||||
data = {"/dev/cdrom": {"ro": 1}}
|
||||
device_info(devices=data)
|
||||
disk = device.Device("/dev/cdrom")
|
||||
assert not disk.is_valid
|
||||
|
||||
def test_accept_non_readonly_device(self, device_info):
|
||||
data = {"/dev/sda": {"ro": 0}}
|
||||
device_info(devices=data)
|
||||
disk = device.Device("/dev/sda")
|
||||
assert disk.is_valid
|
||||
|
||||
@pytest.mark.parametrize("label", ceph_partlabels)
|
||||
def test_is_member_lsblk(self, device_info, label):
|
||||
lsblk = {"PARTLABEL": label}
|
||||
|
@ -141,6 +141,7 @@ class Device(object):
|
||||
except KeyError:
|
||||
pass
|
||||
reject_device('removable', 1, 'removable')
|
||||
reject_device('ro', 1, 'read-only')
|
||||
|
||||
self._valid = len(self._rejected_reasons) == 0
|
||||
return self._valid
|
||||
|
@ -695,6 +695,9 @@ def get_devices(_sys_block_path='/sys/block', _dev_path='/dev', _mapper_path='/d
|
||||
continue
|
||||
|
||||
metadata['removable'] = get_file_contents(os.path.join(sysdir, 'removable'))
|
||||
# Is the device read-only ?
|
||||
metadata['ro'] = get_file_contents(os.path.join(sysdir, 'ro'))
|
||||
|
||||
|
||||
for key in ['vendor', 'model', 'sas_address', 'sas_device_handle']:
|
||||
metadata[key] = get_file_contents(sysdir + "/device/" + key)
|
||||
|
Loading…
Reference in New Issue
Block a user