我看到有SoftLayer_Account :: getEvaultNetworkStorage()来获取我的EVault存储列表。但是,使用我拥有的信息,我无法弄清楚特定EVault的位置。 以下是我从getEvaultNetworkStorage()获得的信息类型:
{
"accountId" : 7xxx,
"capacityGb" : 30,
"createDate" : "2016-xxx",
"guestId" : 14xxx,
"hardwareId" : null,
"hostId" : 14xxx,
"id" : 83xxx,
"nasType" : "EVAULT",
"password" : "Bxxx",
"serviceProviderId" : 1,
"serviceResourceBackendIpAddress" : "ev-xxx.service.softlayer.com",
"serviceResourceName" : "ev-xxx.service.softlayer.com",
"storageTypeId" : "19",
"upgradableFlag" : true,
"username" : "IBMxxx"
},
我没有看到任何其他有用的对象过滤器来设置。
使用SoftLayer_Network_Storage_Backup_Evault :: getObject()提供相同类型的信息,并且没有API提供位置信息。 我需要位置ID才能以编程方式订购EVault插件。
有什么想法吗?
答案 0 :(得分:1)
尝试以下操作以使用蒙版获取Evault位置:
Option 1:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getEvaultNetworkStorage?objectMask=mask[id, serviceResourceName,guestId,billingItem[id,location]]
Method: GET
Option 2:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Network_Storage_Backup_Evault/[Evault_id]/getObject?objectMask=mask[billingItem[id,location]]
Method: GET
另外,要获取Evault订单的有效位置,我建议您使用以下请求:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Product_Package/0/getItemPrices?objectMask=mask[id,locationGroupId,item[id,keyName,description],pricingLocationGroup[locations[id, name, longName]]]&objectFilter={ "itemPrices": { "item": { "keyName": { "operation": "*=EVAULT" } } } }
Method: GET
注意:具有locationGroupId = null的price id被视为“标准价格”,API将在内部切换客户的价格。但我们建议首先执行verifyOrder,以查看所需订单是否正常(费用可能会有所不同)。
要获取有关价格和位置的更多信息,请查看:
http://sldn.softlayer.com/blog/cmporter/Location-based-Pricing-and-You
参考文献:
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemPrices
我希望这些信息可以帮到你。