如何使用VM ID获取所有存储ID ...?

时间:2016-03-17 06:57:33

标签: api rest ibm-cloud-infrastructure

我想用VM授权存储。为此我需要拥有存储的所有VM ID以及使用以下调用获得的VM ID:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Network_Storage_Iscsi/9653497/getAllowableVirtualGuests?objectMask=mask[id,fullyQualifiedDomainName]

这为我提供了与9653497(存储/订单ID)对应的所有VM ID。但是,我需要拥有所有那些未分配给任何VM ID的存储ID(如9653497)。我正在使用以下调用来获取所有存储ID:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getNetworkStorage?objectMask=mask[id,username,nasType,storageType, billingItem[description,location[id,longName]]]&objectFilter={"networkStorage":{"nasType":{"operation":"ISCSI"},"billingItem":{"description":{"operation":"Endurance Storage"}}}}

2 个答案:

答案 0 :(得分:0)

请求中的过滤器获取Block Storage(“nasType”:{“operation”:“ISCSI”}),也许您需要File Storage。我们可以将其删除以获得更多"Endurance"项(块和文件)。

请尝试以下删除一些过滤器:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getNetworkStorage?objectMask=mask[id,username,nasType,storageType, billingItem[description,location[id,longName]]]&objectFilter={   "networkStorage": {     "billingItem": {       "description": {         "operation": "Endurance Storage"       }     }   } }

Method: GET

如果我们不想只获取Endurance,我们也可以删除该过滤器。

但是当尝试使用objectMasksallowableVirtualGuests SoftLayer_Network_Storage添加某些属性时,t中不存在该属性。

因此,获取“getAllowableVirtualGuests”的独特方式是使用SoftLayer_Account::getNetworkStorage

答案 1 :(得分:0)

您用于过滤器的数据可能是错误的,尝试调用get对象方法GET /SoftLayer_Network_Storage/9653497/getObject?objectMask=mask[nasType,billingItem[description]]并查看请求的值是否与objectFilter相同