Change in vdsm[master]: hostdev: report relevant information in 'scsi' device
mpolednik at redhat.com
mpolednik at redhat.com
Tue Apr 12 14:03:50 UTC 2016
Martin Polednik has uploaded a new change for review.
Change subject: hostdev: report relevant information in 'scsi' device
......................................................................
hostdev: report relevant information in 'scsi' device
Change-Id: I789f49c9abca2dff1487acf3e8a04ae1407956f4
Bug-Url: https://bugzilla.redhat.com/??????
Signed-off-by: Martin Polednik <mpolednik at redhat.com>
---
M lib/vdsm/hostdev.py
A tests/devices/data/scsi_generic_sg0.xml
2 files changed, 31 insertions(+), 0 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/38/56038/1
diff --git a/lib/vdsm/hostdev.py b/lib/vdsm/hostdev.py
index 7624142..b4fff0e 100644
--- a/lib/vdsm/hostdev.py
+++ b/lib/vdsm/hostdev.py
@@ -123,6 +123,27 @@
return _parse_address(caps, ('bus', 'device'))
+def _parse_scsi_device_params(device_xml):
+ def find_device_by_parent(device_classes, parent_name):
+ return {key: value for key, value in
+ list_by_caps(device_classes).items() if
+ value['params']['parent'] == parent_name}.items()[0]
+
+ params = {}
+
+ scsi_name = device_xml.find('name').text
+ storage_dev_name, storage_dev_params = find_device_by_parent(
+ ['storage'], scsi_name)
+ _, scsi_generic_dev_params = find_device_by_parent(
+ ['scsi_generic'], scsi_name)
+
+ params['vendor'] = storage_dev_params['params']['vendor']
+ params['product'] = storage_dev_name
+ params['udev_path'] = scsi_generic_dev_params['params']['udev_path']
+
+ return params
+
+
def _parse_device_params(device_xml):
"""
Process device_xml and return dict of found known parameters,
@@ -189,6 +210,8 @@
# dealing with device that is not yet supported
pass
+ if params['capability'] == 'scsi':
+ params.update(_parse_scsi_device_params(devXML))
return params
diff --git a/tests/devices/data/scsi_generic_sg0.xml b/tests/devices/data/scsi_generic_sg0.xml
new file mode 100644
index 0000000..779191a
--- /dev/null
+++ b/tests/devices/data/scsi_generic_sg0.xml
@@ -0,0 +1,8 @@
+<device>
+ <name>scsi_generic_sg0</name>
+ <path>/sys/devices/pci0000:00/0000:00:11.4/ata1/host0/target0:0:0/0:0:0:0/scsi_generic/sg0</path>
+ <parent>scsi_0_0_0_0</parent>
+ <capability type='scsi_generic'>
+ <char>/dev/sg0</char>
+ </capability>
+</device>
--
To view, visit https://gerrit.ovirt.org/56038
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I789f49c9abca2dff1487acf3e8a04ae1407956f4
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Martin Polednik <mpolednik at redhat.com>
More information about the vdsm-patches
mailing list