When using the command below, we get back a response with 145MB json payload:
curl -uuser:api-key https://api.softlayer.com/rest/v3/SoftLayer_Account/VirtualGuests?objectMask=powerState%3BoperatingSystem.passwords%3Bdatacenter%3BbillingItem%3BblockDevices.diskImage%3BtagReferences
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
12 145M 12 18.0M 0 0 321k 0 0:07:44 0:00:57 0:06:47 401k
Looking at our logs from a couple of weeks ago, the same call gave us a response of approximately ~300KB. We therefore believe this is a recent bug in the Softlayer API implementation.
Looking at the json response, there is a huge amount of repetition. The details of each VM is repeated 394 times.
We have experimented with different API calls, and have identified a workaround: to use tagReferences.tag.name
instead of tagReferences
:
curl -uuser:api-key https://api.softlayer.com/rest/v3/SoftLayer_Account/VirtualGuests?objectMask=powerState%3BoperatingSystem.passwords%3Bdatacenter%3BbillingItem%3BblockDevices.diskImage%3BtagReferences.tag.name
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 277k 100 277k 0 0 77421 0 0:00:03 0:00:03 --:--:-- 77426
We hit this problem in Apache Brooklyn, using jclouds (see the Brooklyn issue, and the workaround added to jclouds in https://github.com/jclouds/jclouds/pull/1020). Those using existing jclouds GA releases will continue to be impacted by this.
Can SoftLayer confirm whether this is a bug on their side, if and when it will be fixed, and whether there is a better workaround?