swevm / scaleio-py Goto Github PK
View Code? Open in Web Editor NEWScaleIO API Bindings
License: Apache License 2.0
ScaleIO API Bindings
License: Apache License 2.0
in the function _do_post() at https://github.com/wallnerryan/scaleio-py/blob/master/scaleiopy/scaleio.py#L497
its hard to understand any error the happens in the stack.
For instance, if we see a runtime error like:
ERROR scaleio:_do_post | _do_post() - HTTP response error, data: {"message":"Only a single SDC may be mapped to this volume at a time","httpStatusCode":500,"errorCode":306}
It is impossible to know that by calling map_volume_to_sdc() because we don't get the response back. My suggestion here is to log the error, but return the response to let the client decipher the errors. Or to have a standard set of errors like CannotMapMultpleSdcsError
for the one above, and return the error rather than raise which ends the execution.
again happy to help, but ran into the above situation where all I can get back is _do_post() - Communication error with ScaleIO gateway
in a snippet like this:
>>> try:
... resp = (sio.map_volume_to_sdc(sio.get_volume_by_name('testvol001'), sio.get_sdc_by_ip('192.168.50.12')))
... except Exception as e:
... print e
Variable name misspelled in scaleio.py. Is inherited to JSON as well.
self.max_caapcity_in_gb = maxCapacityInGb
I've been testing this with requests==2.4.3 succesfully, is there a reason you specifically need 2.5.1?
If this is ok, would like to request to make the dep requests >= 2.4.3, <=2.5.1
?
Hi,
Ease for any just put out what you get, then any who will use you code can make decision with output format better: json, xml, or just re-parse to k:v plain text.
Example:
@property
def get_json_system(self):
self._check_login()
response = self._do_get("{}/{}".format(self._api_url, "types/System/instances")).json()
return response
def get_json_system_relationships_statistics(self, id):
self._check_login()
response = self._do_get("{}/{}".format(self._api_url, "instances/System::" + id + "/relationships/Statistics")).json()
return response
system_id = sio.get_json_system[0]['id']
totalwritebwc = sio.get_json_system_relationships_statistics(system_id)['totalWriteBwc']
print json.dumps(totalwritebwc)
Result:
python /root/scio.py | jq
{
"numOccured": 12612,
"numSeconds": 5,
"totalWeightInKb": 264807
}
have you succesfully used thi with 1.30? I i'm not sure there is a /api/login
with 1.30, i am getting errors like below.
>>> from scaleiopy import scaleio
>>> sio = scaleio.ScaleIO("https://10.13.217.59/api","admin","Scaleio123",False, "ERROR")
>>> sio._login()
2015-06-02 10:41:59,481: ERROR scaleio:_login | Login error code: Not Found
I can however just use basic auth against the URL
curl -k --basic --user admin:Scaleio123 https://10.13.217.59:443/api/instances/Volume::4866dc8500000006
{"volumeType":"ThickProvisioned","mappingToAllSdcsEnabled":false,"mappedSdcInfo":[{"limitIops":0,"limitBwInMbps":0,"sdcId":"f530cf3700000000","sdcIp":"10.13.217.60"}],"sizeInKb":58720256,"mappedScsiInitiatorInfo":null,"isObfuscated":false,"consistencyGroupId":"0000000000000000","storagePoolId":"64d62fb200000002","ancestorVolumeId":"0000000000000000","vtreeId":"943b92b300000006","creationTime":1428436720,"name":"vol07","id":"4866dc8500000006","links":[{"rel":"self","href":"/api/instances/Volume::4866dc8500000006"},{"rel":"/api/Volume/relationship/Statistics","href":"/api/instances/Volume::4866dc8500000006/relationships/Statistics"},{"rel":"/api/parent/relationship/ancestorVolumeId","href":"/api/instances/Volume::0000000000000000"},{"rel":"/api/parent/relationship/vtreeId","href":"/api/instances/VTree::943b92b300000006"},{"rel":"/api/parent/relationship/storagePoolId","href":"/api/instances/StoragePool::64d62fb200000002"}]}
but not /login or api/login
(venv)[root@sclr059]# curl -k --basic --user admin:Scaleio123 https://10.13.217.59:443/api/login
{
"message" : "Not Found",
"httpStatusCode" : 404,
"errorCode" : 0
}(venv)[root@sclr059]# curl -k --basic --user admin:Scaleio123 https://10.13.217.59:443/login
{
"message" : "Not Found",
"httpStatusCode" : 404,
"errorCode" : 0
}
Maybe we can bake in support?
@swevm any roadmap to make this installable by pip?
Using delete_volume() with with autoUnmap=True fail is there are no volumes mapped. It should simply skip unmapping of volume not mapped
Example code, create_map-volume.py do not work with ScaleIO 1.32. The error message say StoragePoolId is needed to create a Volume in 1.32. Worked fine in 1.31 with specifying only ProtectionDomainID.
I wonder if there´s a list of API call that have changed in 1.32?
Most likely adding StoragePoolId to API calls result in 1.31 and 1.32 working.
Error message:
earth:examples swevm$ python create_map-volume.py 192.168.102.12 admin Scaleio123 testvol01 default
2015-06-06 19:35:29,825: ERROR scaleio:_do_post | _do_post() - HTTP response error: 400
2015-06-06 19:35:29,825: ERROR scaleio:_do_post | _do_post() - HTTP response error, data: {"message":"Request message is not valid: The following parameter(s) must be part of the request body: storagePoolId.","httpStatusCode":400,"errorCode":0}
2015-06-06 19:35:29,826: ERROR scaleio:_do_post | _do_post() - Unhandled Error Occurred: cannot concatenate 'str' and 'int' objects
Traceback (most recent call last):
File "create_map-volume.py", line 13, in
sio.create_volume(sys.argv[4], 8192, sio.get_pd_by_name(sys.argv[5]), mapAll=True)
File "build/bdist.macosx-10.10-intel/egg/scaleiopy/scaleio.py", line 1132, in create_volume
File "build/bdist.macosx-10.10-intel/egg/scaleiopy/scaleio.py", line 605, in _do_post
RuntimeError: _do_post() - Communication error with ScaleIO gateway
any interest in cleaning up with pep8 standards? Be happy to help.
[51] → pep8 scaleiopy/scaleio.py
scaleiopy/scaleio.py:15:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:19:80: E501 line too long (82 > 79 characters)
scaleiopy/scaleio.py:28:80: E501 line too long (82 > 79 characters)
scaleiopy/scaleio.py:29:80: E501 line too long (101 > 79 characters)
scaleiopy/scaleio.py:34:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:35:80: E501 line too long (133 > 79 characters)
scaleiopy/scaleio.py:36:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:38:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:39:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:40:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:41:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:41:30: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:41:32: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:41:38: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:41:39: E262 inline comment should start with '# '
scaleiopy/scaleio.py:42:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:42:28: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:42:30: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:43:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:43:32: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:43:34: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:43:40: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:43:41: E262 inline comment should start with '# '
scaleiopy/scaleio.py:44:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:44:30: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:44:32: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:44:38: W291 trailing whitespace
scaleiopy/scaleio.py:45:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:45:28: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:45:30: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:45:38: E262 inline comment should start with '# '
scaleiopy/scaleio.py:46:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:46:26: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:46:28: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:46:34: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:46:80: E501 line too long (107 > 79 characters)
scaleiopy/scaleio.py:47:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:47:31: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:47:33: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:48:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:48:16: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:48:18: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:48:24: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:48:25: E262 inline comment should start with '# '
scaleiopy/scaleio.py:49:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:49:24: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:49:26: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:49:32: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:49:80: E501 line too long (148 > 79 characters)
scaleiopy/scaleio.py:50:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:50:28: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:50:30: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:50:36: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:51:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:51:26: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:51:28: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:51:34: W291 trailing whitespace
scaleiopy/scaleio.py:52:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:52:42: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:52:44: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:53:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:53:46: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:53:48: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:54:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:54:18: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:54:20: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:54:26: W291 trailing whitespace
scaleiopy/scaleio.py:55:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:55:13: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:55:15: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:55:21: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:55:80: E501 line too long (101 > 79 characters)
scaleiopy/scaleio.py:56:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:56:22: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:56:24: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:56:30: W291 trailing whitespace
scaleiopy/scaleio.py:57:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:57:24: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:57:26: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:58:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:58:31: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:58:33: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:58:39: W291 trailing whitespace
scaleiopy/scaleio.py:59:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:59:34: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:59:36: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:59:42: W291 trailing whitespace
scaleiopy/scaleio.py:60:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:60:34: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:60:36: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:61:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:61:25: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:61:27: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:61:33: W291 trailing whitespace
scaleiopy/scaleio.py:62:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:62:33: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:62:35: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:63:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:63:33: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:63:35: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:64:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:64:14: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:64:16: E251 unexpected spaces around keyword / parameter equals
scaleiopy/scaleio.py:65:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:66:5: E124 closing bracket does not match visual indentation
scaleiopy/scaleio.py:67:16: E225 missing whitespace around operator
scaleiopy/scaleio.py:68:18: E225 missing whitespace around operator
scaleiopy/scaleio.py:75:62: W291 trailing whitespace
scaleiopy/scaleio.py:82:53: W291 trailing whitespace
scaleiopy/scaleio.py:83:80: E501 line too long (86 > 79 characters)
scaleiopy/scaleio.py:84:80: E501 line too long (94 > 79 characters)
scaleiopy/scaleio.py:86:25: W291 trailing whitespace
scaleiopy/scaleio.py:87:44: W291 trailing whitespace
scaleiopy/scaleio.py:89:65: W291 trailing whitespace
scaleiopy/scaleio.py:97:48: E231 missing whitespace after ','
scaleiopy/scaleio.py:97:62: W291 trailing whitespace
scaleiopy/scaleio.py:98:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:100:5: E303 too many blank lines (2)
scaleiopy/scaleio.py:103:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:107:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:108:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:110:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:112:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:113:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:114:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:115:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:116:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:117:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:118:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:118:38: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:118:39: E262 inline comment should start with '# '
scaleiopy/scaleio.py:118:80: E501 line too long (113 > 79 characters)
scaleiopy/scaleio.py:119:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:119:40: W291 trailing whitespace
scaleiopy/scaleio.py:120:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:120:59: W291 trailing whitespace
scaleiopy/scaleio.py:121:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:121:61: W291 trailing whitespace
scaleiopy/scaleio.py:122:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:122:54: W291 trailing whitespace
scaleiopy/scaleio.py:123:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:124:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:124:57: W291 trailing whitespace
scaleiopy/scaleio.py:125:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:126:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:126:61: W291 trailing whitespace
scaleiopy/scaleio.py:127:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:128:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:129:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:130:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:131:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:131:33: W291 trailing whitespace
scaleiopy/scaleio.py:132:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:133:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:133:25: W291 trailing whitespace
scaleiopy/scaleio.py:134:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:134:38: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:134:39: E262 inline comment should start with '# '
scaleiopy/scaleio.py:135:5: E124 closing bracket does not match visual indentation
scaleiopy/scaleio.py:136:16: E225 missing whitespace around operator
scaleiopy/scaleio.py:137:18: E225 missing whitespace around operator
scaleiopy/scaleio.py:141:30: E225 missing whitespace around operator
scaleiopy/scaleio.py:142:29: E225 missing whitespace around operator
scaleiopy/scaleio.py:143:31: E225 missing whitespace around operator
scaleiopy/scaleio.py:144:40: E225 missing whitespace around operator
scaleiopy/scaleio.py:144:64: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:144:65: E262 inline comment should start with '# '
scaleiopy/scaleio.py:144:80: E501 line too long (139 > 79 characters)
scaleiopy/scaleio.py:145:40: E225 missing whitespace around operator
scaleiopy/scaleio.py:146:67: E225 missing whitespace around operator
scaleiopy/scaleio.py:146:80: E501 line too long (111 > 79 characters)
scaleiopy/scaleio.py:146:112: W291 trailing whitespace
scaleiopy/scaleio.py:147:68: E225 missing whitespace around operator
scaleiopy/scaleio.py:147:80: E501 line too long (114 > 79 characters)
scaleiopy/scaleio.py:147:115: W291 trailing whitespace
scaleiopy/scaleio.py:148:62: E225 missing whitespace around operator
scaleiopy/scaleio.py:148:80: E501 line too long (101 > 79 characters)
scaleiopy/scaleio.py:148:102: W291 trailing whitespace
scaleiopy/scaleio.py:149:63: E225 missing whitespace around operator
scaleiopy/scaleio.py:149:80: E501 line too long (104 > 79 characters)
scaleiopy/scaleio.py:150:63: E225 missing whitespace around operator
scaleiopy/scaleio.py:150:80: E501 line too long (105 > 79 characters)
scaleiopy/scaleio.py:150:106: W291 trailing whitespace
scaleiopy/scaleio.py:151:65: E225 missing whitespace around operator
scaleiopy/scaleio.py:151:80: E501 line too long (109 > 79 characters)
scaleiopy/scaleio.py:152:69: E225 missing whitespace around operator
scaleiopy/scaleio.py:152:80: E501 line too long (115 > 79 characters)
scaleiopy/scaleio.py:152:116: W291 trailing whitespace
scaleiopy/scaleio.py:153:69: E225 missing whitespace around operator
scaleiopy/scaleio.py:153:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:154:54: E225 missing whitespace around operator
scaleiopy/scaleio.py:154:80: E501 line too long (88 > 79 characters)
scaleiopy/scaleio.py:155:57: E225 missing whitespace around operator
scaleiopy/scaleio.py:155:80: E501 line too long (93 > 79 characters)
scaleiopy/scaleio.py:156:62: E225 missing whitespace around operator
scaleiopy/scaleio.py:156:80: E501 line too long (104 > 79 characters)
scaleiopy/scaleio.py:157:34: E225 missing whitespace around operator
scaleiopy/scaleio.py:157:53: W291 trailing whitespace
scaleiopy/scaleio.py:158:34: E225 missing whitespace around operator
scaleiopy/scaleio.py:159:26: E225 missing whitespace around operator
scaleiopy/scaleio.py:159:37: W291 trailing whitespace
scaleiopy/scaleio.py:160:41: E225 missing whitespace around operator
scaleiopy/scaleio.py:160:66: W291 trailing whitespace
scaleiopy/scaleio.py:161:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:165:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:170:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:172:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:174:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:175:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:176:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:177:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:178:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:179:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:180:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:181:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:182:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:183:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:184:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:185:5: E124 closing bracket does not match visual indentation
scaleiopy/scaleio.py:186:16: E225 missing whitespace around operator
scaleiopy/scaleio.py:190:18: E225 missing whitespace around operator
scaleiopy/scaleio.py:191:46: E225 missing whitespace around operator
scaleiopy/scaleio.py:192:43: E225 missing whitespace around operator
scaleiopy/scaleio.py:193:37: E225 missing whitespace around operator
scaleiopy/scaleio.py:194:48: E225 missing whitespace around operator
scaleiopy/scaleio.py:194:80: E501 line too long (81 > 79 characters)
scaleiopy/scaleio.py:195:45: E225 missing whitespace around operator
scaleiopy/scaleio.py:196:46: E225 missing whitespace around operator
scaleiopy/scaleio.py:197:43: E225 missing whitespace around operator
scaleiopy/scaleio.py:198:23: E225 missing whitespace around operator
scaleiopy/scaleio.py:201:5: E303 too many blank lines (2)
scaleiopy/scaleio.py:204:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:209:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:211:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:228:5: E124 closing bracket does not match visual indentation
scaleiopy/scaleio.py:234:34: E225 missing whitespace around operator
scaleiopy/scaleio.py:235:27: E225 missing whitespace around operator
scaleiopy/scaleio.py:236:16: E225 missing whitespace around operator
scaleiopy/scaleio.py:249:5: E303 too many blank lines (2)
scaleiopy/scaleio.py:252:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:257:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:259:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:270:5: E124 closing bracket does not match visual indentation
scaleiopy/scaleio.py:282:5: E303 too many blank lines (3)
scaleiopy/scaleio.py:285:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:290:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:292:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:315:49: E231 missing whitespace after ','
scaleiopy/scaleio.py:320:48: E231 missing whitespace after ','
scaleiopy/scaleio.py:332:23: E225 missing whitespace around operator
scaleiopy/scaleio.py:337:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:341:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:342:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:344:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:346:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:347:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:348:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:349:9: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:351:5: E124 closing bracket does not match visual indentation
scaleiopy/scaleio.py:352:16: E225 missing whitespace around operator
scaleiopy/scaleio.py:353:18: E225 missing whitespace around operator
scaleiopy/scaleio.py:354:32: E225 missing whitespace around operator
scaleiopy/scaleio.py:357:48: E231 missing whitespace after ','
scaleiopy/scaleio.py:362:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:366:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:367:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:370:80: E501 line too long (169 > 79 characters)
scaleiopy/scaleio.py:371:80: E501 line too long (114 > 79 characters)
scaleiopy/scaleio.py:372:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:376:80: E501 line too long (84 > 79 characters)
scaleiopy/scaleio.py:380:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:382:80: E501 line too long (100 > 79 characters)
scaleiopy/scaleio.py:383:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:386:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:388:31: E203 whitespace before ':'
scaleiopy/scaleio.py:401:50: E231 missing whitespace after ','
scaleiopy/scaleio.py:401:58: E231 missing whitespace after ','
scaleiopy/scaleio.py:406:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:416:80: E501 line too long (85 > 79 characters)
scaleiopy/scaleio.py:421:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:423:80: E501 line too long (113 > 79 characters)
scaleiopy/scaleio.py:432:1: E302 expected 2 blank lines, found 1
scaleiopy/scaleio.py:434:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:436:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:444:80: E501 line too long (87 > 79 characters)
scaleiopy/scaleio.py:462:80: E501 line too long (105 > 79 characters)
scaleiopy/scaleio.py:462:87: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:466:53: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:466:80: E501 line too long (93 > 79 characters)
scaleiopy/scaleio.py:467:80: E501 line too long (102 > 79 characters)
scaleiopy/scaleio.py:468:13: E128 continuation line under-indented for visual indent
scaleiopy/scaleio.py:496:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:499:80: E501 line too long (83 > 79 characters)
scaleiopy/scaleio.py:500:80: E501 line too long (95 > 79 characters)
scaleiopy/scaleio.py:502:41: E231 missing whitespace after ','
scaleiopy/scaleio.py:510:80: E501 line too long (88 > 79 characters)
scaleiopy/scaleio.py:514:80: E501 line too long (84 > 79 characters)
scaleiopy/scaleio.py:515:50: E231 missing whitespace after ','
scaleiopy/scaleio.py:524:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:525:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:531:9: E265 block comment should start with '# '
scaleiopy/scaleio.py:532:80: E501 line too long (114 > 79 characters)
scaleiopy/scaleio.py:533:50: E231 missing whitespace after ':'
scaleiopy/scaleio.py:533:69: E231 missing whitespace after ','
scaleiopy/scaleio.py:533:79: E231 missing whitespace after ':'
scaleiopy/scaleio.py:533:80: E501 line too long (85 > 79 characters)
scaleiopy/scaleio.py:535:13: E265 block comment should start with '# '
scaleiopy/scaleio.py:535:80: E501 line too long (84 > 79 characters)
scaleiopy/scaleio.py:538:80: E501 line too long (90 > 79 characters)
scaleiopy/scaleio.py:538:91: W291 trailing whitespace
scaleiopy/scaleio.py:541:80: E501 line too long (94 > 79 characters)
scaleiopy/scaleio.py:542:80: E501 line too long (93 > 79 characters)
scaleiopy/scaleio.py:542:94: W291 trailing whitespace
scaleiopy/scaleio.py:543:80: E501 line too long (92 > 79 characters)
scaleiopy/scaleio.py:545:80: E501 line too long (86 > 79 characters)
scaleiopy/scaleio.py:553:9: E265 block comment should start with '# '
scaleiopy/scaleio.py:554:80: E501 line too long (114 > 79 characters)
scaleiopy/scaleio.py:555:50: E231 missing whitespace after ':'
scaleiopy/scaleio.py:555:69: E231 missing whitespace after ','
scaleiopy/scaleio.py:555:79: E231 missing whitespace after ':'
scaleiopy/scaleio.py:555:80: E501 line too long (85 > 79 characters)
scaleiopy/scaleio.py:557:80: E501 line too long (89 > 79 characters)
scaleiopy/scaleio.py:560:80: E501 line too long (91 > 79 characters)
scaleiopy/scaleio.py:560:92: W291 trailing whitespace
scaleiopy/scaleio.py:563:80: E501 line too long (95 > 79 characters)
scaleiopy/scaleio.py:564:80: E501 line too long (94 > 79 characters)
scaleiopy/scaleio.py:564:95: W291 trailing whitespace
scaleiopy/scaleio.py:565:80: E501 line too long (93 > 79 characters)
scaleiopy/scaleio.py:567:80: E501 line too long (87 > 79 characters)
scaleiopy/scaleio.py:573:80: E501 line too long (102 > 79 characters)
scaleiopy/scaleio.py:578:80: E501 line too long (95 > 79 characters)
scaleiopy/scaleio.py:587:80: E501 line too long (102 > 79 characters)
scaleiopy/scaleio.py:592:80: E501 line too long (100 > 79 characters)
scaleiopy/scaleio.py:592:101: W291 trailing whitespace
scaleiopy/scaleio.py:595:80: E501 line too long (89 > 79 characters)
scaleiopy/scaleio.py:597:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:601:80: E501 line too long (105 > 79 characters)
scaleiopy/scaleio.py:606:80: E501 line too long (92 > 79 characters)
scaleiopy/scaleio.py:606:93: W291 trailing whitespace
scaleiopy/scaleio.py:617:80: E501 line too long (105 > 79 characters)
scaleiopy/scaleio.py:622:61: E231 missing whitespace after ','
scaleiopy/scaleio.py:622:80: E501 line too long (91 > 79 characters)
scaleiopy/scaleio.py:633:80: E501 line too long (108 > 79 characters)
scaleiopy/scaleio.py:638:80: E501 line too long (95 > 79 characters)
scaleiopy/scaleio.py:647:5: E303 too many blank lines (2)
scaleiopy/scaleio.py:653:80: E501 line too long (105 > 79 characters)
scaleiopy/scaleio.py:665:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:666:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:667:80: E501 line too long (119 > 79 characters)
scaleiopy/scaleio.py:668:80: E501 line too long (116 > 79 characters)
scaleiopy/scaleio.py:672:80: E501 line too long (97 > 79 characters)
scaleiopy/scaleio.py:682:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:685:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:691:80: E501 line too long (131 > 79 characters)
scaleiopy/scaleio.py:697:23: W291 trailing whitespace
scaleiopy/scaleio.py:698:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:699:29: E231 missing whitespace after ','
scaleiopy/scaleio.py:717:27: E231 missing whitespace after ','
scaleiopy/scaleio.py:726:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:727:27: E231 missing whitespace after ','
scaleiopy/scaleio.py:753:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:773:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:785:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:787:43: E712 comparison to True should be 'if cond is True:' or 'if cond:'
scaleiopy/scaleio.py:790:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:797:34: E231 missing whitespace after ','
scaleiopy/scaleio.py:802:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:805:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:808:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:815:80: E501 line too long (88 > 79 characters)
scaleiopy/scaleio.py:816:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:817:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:820:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:823:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:827:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:831:28: W291 trailing whitespace
scaleiopy/scaleio.py:832:80: E501 line too long (117 > 79 characters)
scaleiopy/scaleio.py:834:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:838:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:845:80: E501 line too long (143 > 79 characters)
scaleiopy/scaleio.py:847:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:851:36: W291 trailing whitespace
scaleiopy/scaleio.py:856:9: E265 block comment should start with '# '
scaleiopy/scaleio.py:857:80: E501 line too long (174 > 79 characters)
scaleiopy/scaleio.py:858:9: E265 block comment should start with '# '
scaleiopy/scaleio.py:859:80: E501 line too long (108 > 79 characters)
scaleiopy/scaleio.py:861:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:866:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:867:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:873:80: E501 line too long (91 > 79 characters)
scaleiopy/scaleio.py:874:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:876:9: E265 block comment should start with '# '
scaleiopy/scaleio.py:877:48: E231 missing whitespace after ':'
scaleiopy/scaleio.py:879:80: E501 line too long (171 > 79 characters)
scaleiopy/scaleio.py:880:9: E265 block comment should start with '# '
scaleiopy/scaleio.py:881:80: E501 line too long (94 > 79 characters)
scaleiopy/scaleio.py:883:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:884:80: E501 line too long (98 > 79 characters)
scaleiopy/scaleio.py:886:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:887:28: W291 trailing whitespace
scaleiopy/scaleio.py:892:80: E501 line too long (137 > 79 characters)
scaleiopy/scaleio.py:893:80: E501 line too long (106 > 79 characters)
scaleiopy/scaleio.py:898:30: E712 comparison to True should be 'if cond is True:' or 'if cond:'
scaleiopy/scaleio.py:899:80: E501 line too long (93 > 79 characters)
scaleiopy/scaleio.py:904:51: E712 comparison to True should be 'if cond is True:' or 'if cond:'
scaleiopy/scaleio.py:905:80: E501 line too long (108 > 79 characters)
scaleiopy/scaleio.py:907:80: E501 line too long (103 > 79 characters)
scaleiopy/scaleio.py:911:80: E501 line too long (142 > 79 characters)
scaleiopy/scaleio.py:913:80: E501 line too long (87 > 79 characters)
scaleiopy/scaleio.py:915:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:916:28: W291 trailing whitespace
scaleiopy/scaleio.py:921:80: E501 line too long (137 > 79 characters)
scaleiopy/scaleio.py:922:80: E501 line too long (106 > 79 characters)
scaleiopy/scaleio.py:927:30: E712 comparison to True should be 'if cond is True:' or 'if cond:'
scaleiopy/scaleio.py:928:80: E501 line too long (93 > 79 characters)
scaleiopy/scaleio.py:933:51: E712 comparison to True should be 'if cond is True:' or 'if cond:'
scaleiopy/scaleio.py:934:80: E501 line too long (108 > 79 characters)
scaleiopy/scaleio.py:936:80: E501 line too long (103 > 79 characters)
scaleiopy/scaleio.py:946:80: E501 line too long (99 > 79 characters)
scaleiopy/scaleio.py:947:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:948:23: E201 whitespace after '{'
scaleiopy/scaleio.py:948:34: E203 whitespace before ':'
scaleiopy/scaleio.py:948:50: E202 whitespace before '}'
scaleiopy/scaleio.py:950:80: E501 line too long (104 > 79 characters)
scaleiopy/scaleio.py:953:80: E501 line too long (95 > 79 characters)
scaleiopy/scaleio.py:955:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:960:30: E712 comparison to True should be 'if cond is True:' or 'if cond:'
scaleiopy/scaleio.py:963:80: E501 line too long (114 > 79 characters)
scaleiopy/scaleio.py:964:80: E501 line too long (152 > 79 characters)
scaleiopy/scaleio.py:966:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:969:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:976:30: E712 comparison to True should be 'if cond is True:' or 'if cond:'
scaleiopy/scaleio.py:982:80: E501 line too long (160 > 79 characters)
scaleiopy/scaleio.py:984:80: E501 line too long (100 > 79 characters)
scaleiopy/scaleio.py:989:80: E501 line too long (93 > 79 characters)
scaleiopy/scaleio.py:990:80: E501 line too long (114 > 79 characters)
scaleiopy/scaleio.py:994:26: E225 missing whitespace around operator
scaleiopy/scaleio.py:999:80: E501 line too long (86 > 79 characters)
scaleiopy/scaleio.py:1001:80: E501 line too long (108 > 79 characters)
scaleiopy/scaleio.py:1005:80: E501 line too long (93 > 79 characters)
scaleiopy/scaleio.py:1007:80: E501 line too long (100 > 79 characters)
scaleiopy/scaleio.py:1009:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:1013:80: E501 line too long (151 > 79 characters)
scaleiopy/scaleio.py:1015:80: E501 line too long (92 > 79 characters)
scaleiopy/scaleio.py:1017:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:1019:47: W291 trailing whitespace
scaleiopy/scaleio.py:1021:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:1022:28: W291 trailing whitespace
scaleiopy/scaleio.py:1023:80: E501 line too long (118 > 79 characters)
scaleiopy/scaleio.py:1023:119: W291 trailing whitespace
scaleiopy/scaleio.py:1024:24: W291 trailing whitespace
scaleiopy/scaleio.py:1026:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:1029:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:1033:80: E501 line too long (137 > 79 characters)
scaleiopy/scaleio.py:1033:138: W291 trailing whitespace
scaleiopy/scaleio.py:1038:80: E501 line too long (80 > 79 characters)
scaleiopy/scaleio.py:1041:80: E501 line too long (137 > 79 characters)
scaleiopy/scaleio.py:1041:138: W291 trailing whitespace
scaleiopy/scaleio.py:1049:80: E501 line too long (160 > 79 characters)
scaleiopy/scaleio.py:1049:161: W291 trailing whitespace
scaleiopy/scaleio.py:1052:9: E265 block comment should start with '# '
scaleiopy/scaleio.py:1052:80: E501 line too long (161 > 79 characters)
scaleiopy/scaleio.py:1052:162: W291 trailing whitespace
scaleiopy/scaleio.py:1053:24: W291 trailing whitespace
scaleiopy/scaleio.py:1054:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:1057:80: E501 line too long (118 > 79 characters)
scaleiopy/scaleio.py:1057:119: W291 trailing whitespace
scaleiopy/scaleio.py:1061:80: E501 line too long (103 > 79 characters)
scaleiopy/scaleio.py:1062:10: W291 trailing whitespace
scaleiopy/scaleio.py:1063:28: W291 trailing whitespace
scaleiopy/scaleio.py:1065:80: E501 line too long (113 > 79 characters)
scaleiopy/scaleio.py:1070:80: E501 line too long (118 > 79 characters)
scaleiopy/scaleio.py:1070:119: W291 trailing whitespace
scaleiopy/scaleio.py:1071:24: W291 trailing whitespace
scaleiopy/scaleio.py:1072:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:1075:80: E501 line too long (103 > 79 characters)
scaleiopy/scaleio.py:1076:10: W291 trailing whitespace
scaleiopy/scaleio.py:1077:28: W291 trailing whitespace
scaleiopy/scaleio.py:1079:80: E501 line too long (113 > 79 characters)
scaleiopy/scaleio.py:1081:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:1082:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:1083:5: E303 too many blank lines (2)
scaleiopy/scaleio.py:1099:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:1100:30: E231 missing whitespace after ','
scaleiopy/scaleio.py:1102:80: E501 line too long (89 > 79 characters)
scaleiopy/scaleio.py:1104:80: E501 line too long (104 > 79 characters)
scaleiopy/scaleio.py:1106:1: W293 blank line contains whitespace
scaleiopy/scaleio.py:1109:33: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:1110:54: E261 at least two spaces before inline comment
scaleiopy/scaleio.py:1110:80: E501 line too long (90 > 79 characters)
scaleiopy/scaleio.py:1115:80: E501 line too long (121 > 79 characters)
scaleiopy/scaleio.py:1119:56: E231 missing whitespace after ','
scaleiopy/scaleio.py:1119:68: E231 missing whitespace after ','
scaleiopy/scaleio.py:1119:80: E231 missing whitespace after ','
scaleiopy/scaleio.py:1119:80: E501 line too long (194 > 79 characters)
scaleiopy/scaleio.py:1119:98: E261 at least two spaces before inline comment
Hi,
I try to use you code to make monitoring for ScaleIO API version 2.0 cluster and find big problems in code constructions and implementation. You miss flexibility and make very hard implementation for switching between API versions.
Example:
def __init__(self,
id=None,
name=None,
systemVersionName=None,
primaryMdmActorIpList = None, #List
primaryMdmActorPort = None,
secondaryMdmActorIpList = None, #List
secondaryMdmActorPort = None,.
tiebreakerMdmIpList = None, #List
tiebreakerMdmPort = None, # This one is defined in ScaleIO 1.30 API, but seem not present in 1.31??
tiebreakerMdmActorPort = None,
mdmMode = None, #Single or Cluster
mdmClusterState = None, # NotClustered or ClusteredNormal or ClusteredDegraded or ClusteredTiebreakerDown or ClusteredDegradedTiebreakerDown
mdmManagementIpList = None, # List
mdmManagementPort = None,.
capacityAlertHighThresholdPercent = None,
capacityAlertCriticalThresholdPercent = None,
installId = None,.
swid = None, # This one seem not to return anything. Its define din 1.30. What about 1.31????
daysInstalled = None,.
maxCapacityInGb = None,
capacityTimeLeftInDays = None,.
enterpriseFeaturesEnabled = None,.
defaultIsVolumeObfuscated = None,
isInitialLicense = None,.
restrictedSdcModeEnabled = None,
remoteReadOnlyLimitState = None,
links = None,
You define all, nice, but we got more variables in new API version
sdcSocketAllocationFailuresCounterParameters = None,
cliPasswordAllowed = None,
authenticationMethod = None,
performanceParameters = None,
sdcLongOperationsCounterParameters = None,
sdcMdmNetworkDisconnectionsCounterParameters = None,
managementClientSecureCommunicationEnabled = None,
mdmToSdsPolicy = None,
tlsVersion = None,
currentProfilePerformanceParameters = None,
mdmCluster = None,
sdcMemoryAllocationFailuresCounterParameters = None,
upgradeState = None,
showGuid = None,
sdcSdsNetworkDisconnectionsCounterParameters = None
In version 2.1 we can get on top +1, then +1.... and you always must add new..., better to implement exclusions and dynamically and recursive read all what you get from API. In this way you will need just create functions wrappers who adopt calls to oldest api version if some value are deprecated or renamed...
left a comment on an addition. Seems to me no SDC's mapped to a volume is still a valid volume, instead of having to err, an empty list should be expected.
@swevm thoughts?
In line https://github.com/swevm/scaleio-py/blob/master/scaleiopy/scaleio.py#L442 the logger is initialized to DEBUG.
A suggestion would be to make this configurable during creation of the ScaleIO object, via an attribute like debug=True
or verbose=True
Configuring logging consistently will help.
Also even if we grab the the logger with getLogger and set the log level, various print statements as like print "*** DEBUG Login() ***"
exist like on line https://github.com/wallnerryan/scaleio-py/blob/master/scaleiopy/scaleio.py#L447. These should be set to logger statements to help with consistency.
Thoughts? I can create a pull request for this if you'd like.
For every login
self._api_version = None
is populated with current SIO API version number. There are differences between SIO 1.31 and 1.31 in terms of how some API methods are called. Additional parameters are attached to some returned JSON data as well which need to be handle correctly. Since 1.1 is returned for both .31 and .32 it makes it much harder to implement code that handle differences.
Values returned by /api/version:
1.0 for SIO 1.30
1.1 for SIO 1.31
1.1 for SIO 1.32
Is not possible to remove a single mapping for a Volume if it have been mapped to all SDCs.
Not sure if this should be considered a bug or by design in SIO.
workaround:
Not sure if this fixes the problem. Might cause a glitch for IO during unmap/remap. Need to test before implement
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.