我正在尝试使用Softlayer Python客户端在Softlayer中订购虚拟服务器。我的订单json看起来像这样:
order = {
'complexType': 'SoftLayer_Container_Product_Order_Virtual_Guest',
'quantity': 1,
'virtualGuests': [
{
'hostname': 'test',
'domain': 'example.com',
'primaryBackendNetworkComponent': {
'networkVlan': {
'id': 752950
}
}
}
],
'location': 142775,
'packageId': 46,
'useHourlyPricing': True,
'prices': [
{'id': 112863}, # 2 x 2.0 GHz Core
{'id': 153861}, # 1 GB RAM
{'id': 23070}, # Reboot / Remote Console
{'id': 155153}, # 1 Gbps Public & Private Networks
{'id': 164857}, # 1000 GB Bandwidth
{'id': 34807}, # 1 IP Address
{'id': 24013}, # 25 GB (SAN)
{'id': 23820}, # OS_WINDOWS_2012_FULL_STD_64_BIT
{'id': 27023}, # Host Ping Monitoring
{'id': 32500}, # Email and Ticket Notifications
{'id': 32627}, # Automated Notification Response
{'id': 33483}, # Unlimited SSL VPN Users & 1 PPTP VPN User per account
{'id': 36536} # VMWARE VCenter addon
]
}
我在实际放置之前验证了订单:
client['Product_Order'].verifyOrder(order)
但我不断收到此错误消息: 2 x 2.0 GHz核心(#112863)的价格对于hou02位置无效。我已经尝试了所有其他位置,但我一直在相同的错误消息。你知道我可以解决这个问题吗?
答案 0 :(得分:1)
您需要选择位于您正在使用的位置/数据中心的其他商品价格ID。
要根据地点获取有效的商品价格ID,您可以执行:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Product_Package/46/getItemPrices?objectMask=mask[id,locationGroupId,item[keyName,description],pricingLocationGroup[locations[id, name, longName]]]
方法: GET
注意:具有locationGroupId = null的价格ID被视为"标准价格" API将在内部切换客户的价格。但我们建议首先执行verifyOrder,以查看所需订单是否正常(费用可能会有所不同)。
此外,以下请求可以帮助您根据特定的位置/数据中心获取有效的商品价格(只需在上一个请求中添加一些过滤器):
根据特定包装提供可用位置的价格清单:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Product_Package/[package_id]/getItemPrices?objectMask=mask[id,item.description,hourlyRecurringFee,locationGroupId,pricingLocationGroup[locations[id,name,longName]]]& objectFilter = {" itemPrices":{" pricingLocationGroup":{" locations":{ " ID" {"操作":" 814994"}}}}}
其中:" 814994"是"阿姆斯特丹3"
方法: GET