Start a Conversation

Unsolved

This post is more than 5 years old

1952

April 25th, 2016 13:00

Unable to set unlimited iops on SIO volume

Hi,

I'm using ScaleIO 2.0 REST API and can't remove iops limit from mapped volume: got request validation error "iopsLimit (0) must be a number larger than 10." with status code 400.

Steps to reproduce:

1. Create volume and map to any SDC

2. Change iops limit on mapped volume (send request with '{"iopsLimit":"10000"}':

ScaleIO request 45bc65c9-61dc-499d-a73b-2ef785ad876e:

     method=post,

     url=http:// /api/instances/Volume::ca29f20b00000046/action/setMappedSdcLimits,

     data={"iopsLimit": "10000", "sdcId": "cb2bbd680000000d"}

3. Check, that limit appeared in volume:

[{u'limitBwInMbps': 0,

  u'limitIops': 10000,

  u'sdcId': u'cb2bbd680000000d',

  u'sdcIp': u' '}]

4. Try to remove iops limit from volume (send request with '{"iopsLimit": "0"}'):

ScaleIO request a22de697-b6e5-46f7-b285-06585c946e90:

     method=post,

     url=http:// /api/instances/Volume::ca29f20b00000046/action/setMappedSdcLimits,

     data={"iopsLimit": "0", "sdcId": "cb2bbd680000000d"}

Expected result: iops limit is 0 (unlimited)

Real result: got an error in response:

ScaleIO response:

     {"message":"iopsLimit (0) must be a number larger than 10.","httpStatusCode":400,"errorCode":0}

Bps limits change works correctly, without errors.

Also, what about sending integer values in API requests as integer, not as string? I think it is not convenient and clear way.

306 Posts

April 25th, 2016 23:00

Hi,

We had a similar issues in previous versions of ScaleIO - can you please try to use SDC GUID instead of SDC ID and let me know if that worked?

I didn't really understand the last sentence - do you mean that the limit was changed back to 'unlimited' even if the GW posted HTTP/400 error?

Thanks,

Pawel

4 Posts

April 26th, 2016 03:00

Hi,

I've got the same error when use SDC GUID:

ScaleIO request 7ebb889b-5f93-4bcb-82f0-a6c9761106f4:

     method=post,

     url=http:// /api/instances/Volume::ca29f26500000047/action/setMappedSdcLimits,

     params=None, data={"iopsLimit": "0", "guid": "C9AAC6B9-F429-41C6-90F1-9BA830A526E5"}

ScaleIO response:

     {"message":"iopsLimit (0) must be a number larger than 10.","httpStatusCode":400,"errorCode":0}

Maybe the problem in incorrect validation of "iopsLimit" field?

My last sentence was about the data sent in the request. When I'm trying to send the request with integer data in field, for instance, "iopsLimit", the GW responds with error:

ScaleIO request 79abe15f-878a-4d61-8616-41f44e03faa9:

     method=post,

     url=http:// /api/instances/Volume::ca29f20b00000046/action/setMappedSdcLimits,

     params=None, data={"iopsLimit": 1000, "sdcId": "cb2bbd680000000d"}

ScaleIO response: {"message":"iopsLimit (1000) must be a number between -2147483648, 2147483647.","httpStatusCode":400,"errorCode":0}


But, if I'm trying to send integer data represented as a string, the GW responds without error:

ScaleIO request fbf51dae-dd99-4fec-a61c-d06ad5b9c518:

     method=post,

     url=http:// /api/instances/Volume::ca29f20b00000046/action/setMappedSdcLimits ,

     params=None, data={"iopsLimit": "1000", "sdcId": "cb2bbd680000000d"}

ScaleIO response: {}

I think it's not a good practice to send integer data as a string in the request. This may get confusing.

306 Posts

April 26th, 2016 06:00

Thank you, let me check it here internally and I will get back to you on this.

306 Posts

April 27th, 2016 23:00

Hi,

We were able to reproduce the issue - a bug ticket was opened with ScaleIO Developers - I will update you as soon as we hear back from them.

306 Posts

May 17th, 2016 02:00

Hi,

This bug is going to be fixed in ScaleIO 2.0.0.2 - unfortunately, there is no ETA date as of now.

I hope that helps - let me know if you have any other questions.

Thanks,

Pawel

No Events found!

Top