Skip to content

Commit 0358bd5

Browse files
authored
Merge pull request ceph#49954 from caffeinism/fix-bug-in-ceph-volume-device
ceph-volume: fix a bug in _check_generic_reject_reasons
2 parents f080406 + bd5e1a8 commit 0358bd5

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -241,15 +241,15 @@ def test_is_ceph_disk_member_not_available_blkid(self, fake_call, monkeypatch, p
241241

242242
@patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
243243
def test_reject_removable_device(self, fake_call, device_info):
244-
data = {"/dev/sdb": {"removable": 1}}
244+
data = {"/dev/sdb": {"removable": "1"}}
245245
lsblk = {"TYPE": "disk", "NAME": "sdb"}
246246
device_info(devices=data,lsblk=lsblk)
247247
disk = device.Device("/dev/sdb")
248248
assert not disk.available
249249

250250
@patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
251251
def test_reject_device_with_gpt_headers(self, fake_call, device_info):
252-
data = {"/dev/sdb": {"removable": 0, "size": 5368709120}}
252+
data = {"/dev/sdb": {"removable": "0", "size": 5368709120}}
253253
lsblk = {"TYPE": "disk", "NAME": "sdb"}
254254
blkid= {"PTTYPE": "gpt"}
255255
device_info(
@@ -262,7 +262,7 @@ def test_reject_device_with_gpt_headers(self, fake_call, device_info):
262262

263263
@patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
264264
def test_accept_non_removable_device(self, fake_call, device_info):
265-
data = {"/dev/sdb": {"removable": 0, "size": 5368709120}}
265+
data = {"/dev/sdb": {"removable": "0", "size": 5368709120}}
266266
lsblk = {"TYPE": "disk", "NAME": "sdb"}
267267
device_info(devices=data,lsblk=lsblk)
268268
disk = device.Device("/dev/sdb")
@@ -286,7 +286,7 @@ def test_accept_symlink_to_device(self,
286286
fake_call):
287287
m_os_path_islink.return_value = True
288288
m_os_path_realpath.return_value = '/dev/sdb'
289-
data = {"/dev/sdb": {"ro": 0, "size": 5368709120}}
289+
data = {"/dev/sdb": {"ro": "0", "size": 5368709120}}
290290
lsblk = {"TYPE": "disk"}
291291
device_info(devices=data,lsblk=lsblk)
292292
disk = device.Device("/dev/test_symlink")
@@ -304,15 +304,15 @@ def test_reject_symlink_to_device_mapper(self,
304304
fake_call):
305305
m_os_path_islink.return_value = True
306306
m_os_readlink.return_value = '/dev/dm-0'
307-
data = {"/dev/mapper/mpatha": {"ro": 0, "size": 5368709120}}
307+
data = {"/dev/mapper/mpatha": {"ro": "0", "size": 5368709120}}
308308
lsblk = {"TYPE": "disk"}
309309
device_info(devices=data,lsblk=lsblk)
310310
disk = device.Device("/dev/mapper/mpatha")
311311
assert disk.available
312312

313313
@patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
314314
def test_reject_readonly_device(self, fake_call, device_info):
315-
data = {"/dev/cdrom": {"ro": 1}}
315+
data = {"/dev/cdrom": {"ro": "1"}}
316316
lsblk = {"TYPE": "disk", "NAME": "cdrom"}
317317
device_info(devices=data,lsblk=lsblk)
318318
disk = device.Device("/dev/cdrom")
@@ -328,7 +328,7 @@ def test_reject_smaller_than_5gb(self, fake_call, device_info):
328328

329329
@patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)
330330
def test_accept_non_readonly_device(self, fake_call, device_info):
331-
data = {"/dev/sda": {"ro": 0, "size": 5368709120}}
331+
data = {"/dev/sda": {"ro": "0", "size": 5368709120}}
332332
lsblk = {"TYPE": "disk", "NAME": "sda"}
333333
device_info(devices=data,lsblk=lsblk)
334334
disk = device.Device("/dev/sda")
@@ -594,10 +594,10 @@ class TestDeviceOrdering(object):
594594

595595
def setup_method(self):
596596
self.data = {
597-
"/dev/sda": {"removable": 0},
598-
"/dev/sdb": {"removable": 1}, # invalid
599-
"/dev/sdc": {"removable": 0},
600-
"/dev/sdd": {"removable": 1}, # invalid
597+
"/dev/sda": {"removable": "0"},
598+
"/dev/sdb": {"removable": "1"}, # invalid
599+
"/dev/sdc": {"removable": "0"},
600+
"/dev/sdd": {"removable": "1"}, # invalid
601601
}
602602

603603
@patch("ceph_volume.util.disk.has_bluestore_label", lambda x: False)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -594,8 +594,8 @@ def has_partitions(self):
594594

595595
def _check_generic_reject_reasons(self):
596596
reasons = [
597-
('removable', 1, 'removable'),
598-
('ro', 1, 'read-only'),
597+
('id_bus', 'usb', 'id_bus'),
598+
('ro', '1', 'read-only'),
599599
]
600600
rejected = [reason for (k, v, reason) in reasons if
601601
self.sys_api.get(k, '') == v]

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -783,8 +783,6 @@ def holder_inner_loop():
783783
continue
784784
type_ = 'disk'
785785
holders = os.listdir(os.path.join(_sys_block_path, dev, 'holders'))
786-
if get_file_contents(os.path.join(_sys_block_path, dev, 'removable')) == "1":
787-
continue
788786
if holder_inner_loop():
789787
continue
790788
dm_dir_path = os.path.join(_sys_block_path, dev, 'dm')
@@ -923,6 +921,10 @@ def get_devices(_sys_block_path='/sys/block', device=''):
923921
metadata['path'] = diskname
924922
metadata['type'] = block[2]
925923

924+
# some facts from udevadm
925+
p = udevadm_property(sysdir)
926+
metadata['id_bus'] = p.get('ID_BUS', '')
927+
926928
device_facts[diskname] = metadata
927929
return device_facts
928930

0 commit comments

Comments
 (0)