SoftLayer_Exception_Public):为升级订单提供当前价格。请发送不同的价格来升级该项目

时间:2016-05-18 21:02:16

标签: api ibm-cloud-infrastructure

在尝试为现有虚拟机订购SAN磁盘时,我收到此错误。这种情况在过去几天一直很好,并且突然失败了。 有错误:

  

文件   " C:\ Python27 \ lib中\站点包\ SOFTLAYER-2.2.0-py2.7.egg \的SoftLayer \ API.py&#34 ;,   第446行,在call_handler中       return self.call(self._service_name,name,* args,** kwargs)File" C:\ Python27 \ lib \ site-packages \ softlayer-2.2.0-py2.7.egg \ SoftLayer \ API。 PY&#34 ;,   第344行,正在通话中       verbose = self.verbose)File" C:\ Python27 \ lib \ site-packages \ softlayer-2.2.0-py2.7.egg \ SoftLayer \ transport.py",   第65行,在make_xml_rpc_api_call中       e.faultCode,e.faultString)SoftLayer.exceptions.SoftLayerAPIError:   SoftLayerAPIError(SoftLayer_Exception_Public):当前价格是   提供升级订单。请发送不同的价格   升级项目。

这甚至意味着什么? 这是订单容器>>

    {'prices': [{'id': 112927}], 'virtualGuests': [{'id': 15825861}], 'properties': [{'name': 'MAINTENANCE_WINDOW', 'value': '2016-05-17 16:41:45.029000'}], 'categories': [{'categoryCode': 'disk4'}], 'complexType': 'SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade'}

    orderClient = SoftLayer.API.Client('SoftLayer_Product_Order', None, username=getUser(detailsFilePath), api_key=getKey(detailsFilePath))

    orderClient.placeOrder(orderContainer)

我如何获得价格ID:

    packageClient = SoftLayer.API.Client('SoftLayer_Virtual_Guest', virtualGuestid, username=getUser(detailsFilePath), api_key=getKey(detailsFilePath))
    items = packageClient.getUpgradeItemPrices()
    for item in items:        
           if  item.get('item')['keyName'] == keyname:                
            return item['id']

1 个答案:

答案 0 :(得分:1)

你得到的例外:

  

"为升级订单提供了当前价格。请寄一个   不同的价格升级项目"

表示您提供的价格与您在服务器上已有的价格相同,您可以使用以下请求验证服务器上已有的价格:

https://$user:$apiKey@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/$vsiId/getBillingItem?objectMask=mask[orderItem[order[items]]]

Method: Get

使用您自己的信息替换:$ user,$ apiKey和$ vsiId

  

更新

检查商品价格类别

https://$user:$apiKey@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/$vsiId/getUpgradeItemPrices?objectMask=mask[categories]

Method: Get
  

更新了2

有必要在每个价格中定义类别,看看示例:

{'prices': [{'id': 112927, 'categories': [{'categoryCode': "guest_disk4"}]}], 'virtualGuests': [{'id': 15825861}], 'properties': [{'name': 'MAINTENANCE_WINDOW', 'value': '2016-05-17 16:41:45.029000'}], 'complexType': 'SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade'}

参考文献: