xcli initialization failing with TypeError

Bug #1874290 reported by prashkre
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
New
Undecided
Unassigned

Bug Description

With python3, while initializing xcli for xiv storage, it is failing at pyxcli/client.py because pyxcli is expecting a string instead of bytes returned from cinder.volume.drivers.ibm.ibm_storage .cryptish.decrypt.

>>> from cinder.volume.drivers.ibm.ibm_storage import cryptish
>>>
>>> type(cryptish.decrypt(cryptish.encrypt('cinder')))
<class 'bytes'>

Here is the stack trace of error:

2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager Traceback (most recent call last):
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/cinder/volume/drivers/ibm/ibm_storage/xiv_proxy.py", line 3495, in _init_xcli
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager ca_certs=path)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/pyxcli/client.py", line 237, in connect_multiendpoint_ssl
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager validate)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/pyxcli/client.py", line 255, in _initiate_client_for_multi_endpoint
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager client = cls(transport, usr, pwd)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/pyxcli/client.py", line 186, in __init__
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager self._populate_commands()
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/pyxcli/client.py", line 89, in _populate_commands
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager for info in self.execute("help"):
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/pyxcli/client.py", line 103, in execute
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager return self.execute_remote(None, cmd, **kwargs)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/pyxcli/client.py", line 321, in execute_remote
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager remote_target)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/pyxcli/client.py", line 284, in _build_command
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager data.replace(options["password"], "XXX")
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager TypeError: replace() argument 1 must be str, not bytes
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager During handling of the above exception, another exception occurred:
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager Traceback (most recent call last):
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/cinder/volume/manager.py", line 474, in _init_host
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager self.driver.do_setup(ctxt)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/cinder/volume/drivers/ibm/ibm_storage/ibm_storage.py", line 125, in do_setup
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager self.proxy.setup(context)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/cinder/volume/drivers/ibm/ibm_storage/proxy.py", line 68, in wrapper
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager result = fnc(self, *args, **kwargs)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/cinder/volume/drivers/ibm/ibm_storage/xiv_proxy.py", line 180, in setup
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager self.ibm_storage_cli = self._init_xcli(self.active_backend_id)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/cinder/volume/drivers/ibm/ibm_storage/proxy.py", line 68, in wrapper
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager result = fnc(self, *args, **kwargs)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager File "/usr/lib/python3.6/site-packages/cinder/volume/drivers/ibm/ibm_storage/xiv_proxy.py", line 3509, in _init_xcli
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager raise self._get_exception()(err_msg)
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager cinder.exception.CinderException: Unable to connect to IBM Storage: replace() argument 1 must be str, not bytes
2020-04-06 08:48:11.539 11484 ERROR cinder.volume.manager
2020-04-06 08:48:11.541 11484 ERROR powervc_cinder.volume.m

prashkre (prashkre)
summary: - xcli initialization failing with encoding issue
+ xcli initialization failing with encoding/decoding issue
prashkre (prashkre)
summary: - xcli initialization failing with encoding/decoding issue
+ xcli initialization failing with TypeError
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.