emc-openstack / storops

Python storage management library for VNX and Unity.
Apache License 2.0
53 stars 29 forks source link

Issues with Unity 5.3.0 #377

Open janakawicks opened 1 year ago

janakawicks commented 1 year ago

Most of the commands fails when Visibility is set to 'Engineering' https://github.com/emc-openstack/storops/blob/ccfccba0bceda34c0d5dc8105c95731036f4e955/storops/connection/connector.py#L51

For example with visibility = 'Engineering' the lun object (/apidocs/classes/lun.html) has the attributes of auSize i.e.

{"name":"auSize","type":"AUSizeEnum","description":"Size of the Allocation Unit.","displayValue":"auSize"}

however, when query with providing auSize in the fields i.e. /api/types/lun/instances?compact=True&fields=auSize

the server fails with following error

urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

when Visibility is set to 'Engineering' is commented out it works

However, when creating lun i.e. pool.create_lun(lun_name="test-lun001",size_gb=1) it creates the lun but fails at /api/instances/storageResource/sv_xx request with requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

I notice that DEBUG:storops.connection.client:REQ URL: [POST] https://XXXXX:443/api/types/storageResource/action/createLun?compact=True

is executed twice and in the 1st time it fails with 401 error

DEBUG:urllib3.connectionpool:https://XXXXX:443 "POST /api/types/storageResource/action/createLun?compact=True HTTP/1.1" 401 381
DEBUG:storops.connection.client:REQ URL: [POST] https://XXXX:443/api/types/storageResource/action/createLun?compact=True, TIME: 0.15096187591552734, RESP CODE: 401
DEBUG:storops.connection.client:RESP BODY:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>

but the 2nd time it succeeds with 200 DEBUG:urllib3.connectionpool:https://XXXX:443 "POST /api/types/storageResource/action/createLun?compact=True HTTP/1.1" 200 None DEBUG:storops.connection.client:REQ URL: [POST] https://XXXXX:443/api/types/storageResource/action/createLun?compact=True, TIME: 3.2231104373931885, RESP CODE: 200 DEBUG:storops.connection.client:RESP BODY: {"content":{"storageResource":{"id":"sv_XX"}}}

However, fails connection timeouts at api/instances/storageResource/sv_xx request

More Info

pip list
Package            Version
------------------ ---------
bitmath            1.3.3.1
cachez             0.1.2
certifi            2023.7.22
charset-normalizer 3.2.0
idna               3.4
persist-queue      0.8.1
pip                23.1.2
python-dateutil    2.8.2
PyYAML             6.0.1
requests           2.31.0
retryz             0.1.9
setuptools         65.5.1
six                1.16.0
storops            1.2.11
urllib3            2.0.4
wheel              0.41.1
python --version
Python 3.11.4

I've also tried with python 2.7, 3.10 as well and same result