Also make sure _model and _vendor attrs are never set to None in the StorageDevice constructor.
(cherry picked from commit 067183942c97f432e739c979c4b1d7a9816eef06)
Related: rhbz#1069597 --- blivet/devices/disk.py | 2 +- blivet/devices/storage.py | 4 ++-- blivet/devicetree.py | 9 +++------ 3 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/blivet/devices/disk.py b/blivet/devices/disk.py index d17e975..3638f50 100644 --- a/blivet/devices/disk.py +++ b/blivet/devices/disk.py @@ -105,7 +105,7 @@ class DiskDevice(StorageDevice):
@property def description(self): - return self.model + return " ".join(s for s in (self.vendor, self.model) if s)
def _preDestroy(self): """ Destroy the device. """ diff --git a/blivet/devices/storage.py b/blivet/devices/storage.py index b6ee4dc..348eb65 100644 --- a/blivet/devices/storage.py +++ b/blivet/devices/storage.py @@ -112,8 +112,8 @@ class StorageDevice(Device): self.major = util.numeric_type(major) self.minor = util.numeric_type(minor) self._serial = serial - self._vendor = vendor - self._model = model + self._vendor = vendor or "" + self._model = model or "" self.bus = bus
self.protected = False diff --git a/blivet/devicetree.py b/blivet/devicetree.py index a70d7b9..915b94e 100644 --- a/blivet/devicetree.py +++ b/blivet/devicetree.py @@ -1000,12 +1000,10 @@ class DeviceTree(object): serial = udev.device_get_serial(info) bus = udev.device_get_bus(info)
- # udev doesn't always provide a vendor. - vendor = udev.device_get_vendor(info) - if not vendor: - vendor = "" + vendor = util.get_sysfs_attr(sysfs_path, "device/vendor") + model = util.get_sysfs_attr(sysfs_path, "device/model")
- kwargs = { "serial": serial, "vendor": vendor, "bus": bus } + kwargs = { "serial": serial, "vendor": vendor, "model": model, "bus": bus } if udev.device_is_iscsi(info): diskType = iScsiDiskDevice initiator = udev.device_get_iscsi_initiator(info) @@ -1085,7 +1083,6 @@ class DeviceTree(object): device = diskType(name, major=udev.device_get_major(info), minor=udev.device_get_minor(info), - model=udev.device_get_model(info), sysfsPath=sysfs_path, **kwargs)
if diskType == DASDDevice: