Description of problem:
Using a SAN that has encoded chars in the LUN serial is not possible, because the char is not parseable.
[root@RHEV01 ~]# vdsClient 0 getDeviceList
Traceback (most recent call last):
File "/usr/share/vdsm/vdsClient.py", line 1960, in ?
File "/usr/share/vdsm/vdsClient.py", line 461, in getDeviceList
File "/usr/lib64/python2.4/xmlrpclib.py", line 1096, in __call__
File "/usr/lib64/python2.4/xmlrpclib.py", line 1383, in __request
File "/usr/lib64/python2.4/xmlrpclib.py", line 1147, in request
File "/usr/lib64/python2.4/xmlrpclib.py", line 1281, in _parse_response
File "/usr/lib64/python2.4/xmlrpclib.py", line 527, in feed
ExpatError: not well-formed (invalid token): line 73, column 48
[root@RHEV01 ~]# python
Python 2.4.3 (#1, Dec 10 2010, 17:24:35)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.append('/usr/share/vdsm/')
>>> from storage import multipath
>>> multipathStatus = multipath.getStatus()
No handlers could be found for logger "irs"
>>> multipathStatus
{'32020001004006083': {'paths': [{'physdev': 'sdd', 'state': 'active', 'lun': '32'}], 'product': 'Coraid EtherDriv', 'vendor': 'CORAID', 'connections': [], 'devtype': 'FCP', 'serial': 'SCORAID_Coraid_EtherDriRHEV0101E_\x81', 'size': '1000000000000'}, '3600508e000000000fd4e33b8f9c90b01': {'paths': [{'physdev': 'sdc', 'state': 'active', 'lun': '0'}], 'product': 'Virtual Disk', 'vendor': 'Dell', 'connections': [], 'devtype': 'FCP', 'serial': '', 'size': '146163105792'}, '32020001004005f83': {'paths': [{'physdev': 'sde', 'state': 'active', 'lun': '32'}], 'product': 'Coraid EtherDriv', 'vendor': 'CORAID', 'connections': [], 'devtype': 'FCP', 'serial': 'SCORAID_Coraid_EtherDriRHEV0101A_\x81', 'size': '1000000000000'}}
>>>
note the 'serial': 'SCORAID_Coraid_EtherDriRHEV0101A_\x81' - the \x81 is an encoded char, which fails the parsing.
Version-Release number of selected component (if applicable):
vdsm22-4.5-63.25.el5_6
How reproducible:
always
Steps to Reproduce:
1.set up storage with a non-ascii char in the serial
2.try to use LUN with rhev
3.
Actual results:
[root@RHEV01 ~]# vdsClient 0 getDeviceList
Traceback (most recent call last):
File "/usr/share/vdsm/vdsClient.py", line 1960, in ?
File "/usr/share/vdsm/vdsClient.py", line 461, in getDeviceList
File "/usr/lib64/python2.4/xmlrpclib.py", line 1096, in __call__
File "/usr/lib64/python2.4/xmlrpclib.py", line 1383, in __request
File "/usr/lib64/python2.4/xmlrpclib.py", line 1147, in request
File "/usr/lib64/python2.4/xmlrpclib.py", line 1281, in _parse_response
File "/usr/lib64/python2.4/xmlrpclib.py", line 527, in feed
ExpatError: not well-formed (invalid token): line 73, column 48
Expected results:
drop or convert the non-ascii chars
Additional info: