Softlayer API验证订单失败

时间:2015-10-08 19:04:19

标签: python ibm-cloud-infrastructure

我正在尝试使用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位置无效。我已经尝试了所有其他位置,但我一直在相同的错误消息。你知道我可以解决这个问题吗?

1 个答案:

答案 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,以查看所需订单是否正常(费用可能会有所不同)。

此外,以下请求可以帮助您根据特定的位置/数据中心获取有效的商品价格(只需在上一个请求中添加一些过滤器):

其中:" 814994"是"阿姆斯特丹3"

方法: GET