Skip to content

Commit 8551731

Browse files
committed
check dir before trying to read uuid file
Signed-off-by: Zen <[email protected]>
1 parent 1ae306d commit 8551731

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

src/ugrd/fs/mounts.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__author__ = 'desultory'
2-
__version__ = '4.15.5'
2+
__version__ = '4.15.6'
33

44
from pathlib import Path
55
from zenlib.util import contains, pretty_print
@@ -274,25 +274,25 @@ def get_virtual_block_info(self) -> dict:
274274
self.logger.warning("No virtual block devices found, disabling device mapper autodetection.")
275275
return
276276

277-
for dm_device in (Path('/sys/devices/virtual/block').iterdir()):
278-
if dm_device.name.startswith('dm-') or dm_device.name.startswith('md'):
279-
maj, minor = (dm_device / 'dev').read_text().strip().split(':')
280-
self['_dm_info'][dm_device.name] = {'major': maj,
281-
'minor': minor,
282-
'holders': [holder.name for holder in (dm_device / 'holders').iterdir()],
283-
'slaves': [slave.name for slave in (dm_device / 'slaves').iterdir()],
284-
'uuid': (dm_device / 'dm/uuid').read_text().strip()}
285-
if uuid := (dm_device / 'dm/uuid').read_text().strip():
286-
self['_dm_info'][dm_device.name]['uuid'] = uuid
287-
elif uuid := (dm_device / 'md/uuid').read_text().strip():
288-
self['_dm_info'][dm_device.name]['uuid'] = uuid
277+
for virt_device in (Path('/sys/devices/virtual/block').iterdir()):
278+
if virt_device.name.startswith('dm-') or virt_device.name.startswith('md'):
279+
maj, minor = (virt_device / 'dev').read_text().strip().split(':')
280+
self['_dm_info'][virt_device.name] = {'major': maj,
281+
'minor': minor,
282+
'holders': [holder.name for holder in (virt_device / 'holders').iterdir()],
283+
'slaves': [slave.name for slave in (virt_device / 'slaves').iterdir()],
284+
'uuid': (virt_device / 'dm/uuid').read_text().strip()}
285+
if (virt_device / 'dm').exists():
286+
self['_dm_info'][virt_device.name]['name'] = (virt_device / 'dm/name').read_text().strip()
287+
elif (virt_device / 'md').exists():
288+
self['_dm_info'][virt_device.name]['name'] = (virt_device / 'md/name').read_text().strip()
289289
else:
290-
raise ValueError("Failed to get virtual device uuid: %s" % dm_device.name)
290+
raise ValueError("Failed to get virtual device name: %s" % virt_device.name)
291291

292292
try:
293-
self['_dm_info'][dm_device.name]['name'] = (dm_device / 'dm/name').read_text().strip()
293+
self['_dm_info'][virt_device.name]['name'] = (virt_device / 'dm/name').read_text().strip()
294294
except FileNotFoundError:
295-
self.logger.warning("No device mapper name found for: %s" % dm_device.name)
295+
self.logger.warning("No device mapper name found for: %s" % virt_device.name)
296296

297297
if self['_dm_info']:
298298
self.logger.info("Found virtual block devices: %s" % ', '.join(self['_dm_info'].keys()))

0 commit comments

Comments
 (0)