Как получить все идентификаторы хранилища для авторизации с идентификатором VM..?
Я хочу авторизовать хранилище с виртуальными машинами. Для этого мне нужно иметь все идентификаторы VM для хранилища и те, которые я получаю с помощью следующего вызова:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Network_Storage_Iscsi/9653497/getAllowableVirtualGuests?objectMask=mask[id,fullyQualifiedDomainName]
Это дает мне все идентификаторы VM, соответствующие 9653497 (идентификатор хранилища / заказа). Однако мне нужно иметь все те идентификаторы хранилища (например, 9653497), которые не назначены ни одному из идентификаторов виртуальной машины. Я использую приведенный ниже вызов, чтобы получить весь идентификатор хранилища:
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 ответа
Фильтр по вашему запросу, получает 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
мы можем удалить этот фильтр тоже.
Но при попытке добавить некоторые свойства, используя objectMasks
в http://sldn.softlayer.com/reference/services/SoftLayer_Account/getNetworkStorage как allowableVirtualGuests
, этого свойства нет в SoftLayer_Network_Storage
,
По этой причине единственный способ получить "getAllowableVirtualGest" - использовать http://sldn.softlayer.com/reference/services/SoftLayer_Network_Storage/getAllowableVirtualGuests
Данные, которые вы используете для фильтра, вероятно, неверны, попробуйте вызвать метод get object GET /SoftLayer_Network_Storage/9653497/getObject?objectMask=mask[nasType,billingItem[description]]
и посмотрите, совпадают ли значения запроса с вашим objectFilter