我已经创建了一个软层虚拟机使用自定义图像模板。我可以使用curl将SAN磁盘添加到我的vm中,但是我尝试使用Python软层库来实现这一点是不成功的。我收到以下错误:
SoftLayer.exceptions.SoftLayerAPIError: SoftLayerAPIError(SoftLayer_Exception_Order_InvalidContainer): Invalid container specified: SoftLayer_Container_Product_Order. Ordering a server or service requires a specific container type, not the generic base order container.
这是我的密码:
self.client = SoftLayer.Client(username='myusername@email.com', api_key='key')
console_id = 11111111
order = {
"parameters": [{
"virtualGuests": [{"id": console_id}],
"prices": [{
"id": 113031,
"categories": [{
"categoryCode": "guest_disk1",
"complexType": "SoftLayer_Product_Item_Category"
}],
"complexType": "SoftLayer_Product_Item_Price"
},
{
"id": 112707,
"categories": [{
"categoryCode": "guest_disk2",
"complexType": "SoftLayer_Product_Item_Category"
}],
"complexType": "SoftLayer_Product_Item_Price"
}
],
"properties": [
{"name": "NOTE_GENERAL", "value": "adding disks"},
{"name": "MAINTENANCE_WINDOW", "value": "now"}
],
"complexType": "SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade"
}]
}
# response = self.client['Product_Order'].placeOrder(order, False)
response = self.client.call('Product_Order', 'placeOrder', order)
print response
但是,如果我运行以下curl命令,我的虚拟机更新成功:
curl -X POST --data @updatefile https://myusername%40email%2Ecom:apikey@api.softlayer.com/rest/v3.1/SoftLayer_Product_Order/placeOrder
updatefile的内容:
{
"parameters": [{
"virtualGuests":[{"id":11111111}],
"prices": [{
"id": 113031,
"categories": [{
"categoryCode": "guest_disk1",
"complexType": "SoftLayer_Product_Item_Category"
}],
"complexType": "SoftLayer_Product_Item_Price"
},
{
"id": 112707,
"categories": [{
"categoryCode": "guest_disk2",
"complexType": "SoftLayer_Product_Item_Category"
}],
"complexType": "SoftLayer_Product_Item_Price"
}
],
"properties": [
{"name": "NOTE_GENERAL","value": "adding disks"},
{"name": "MAINTENANCE_WINDOW","value": "now"}
],
"complexType": "SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade"
}]
}
知道我做错了什么吗?你知道吗
是的,因为当您使用Softlayer的python客户机时,您不必按照您的顺序指定“parameters”属性,该属性仅用于RESTful请求,请删除它,它应该可以工作。你知道吗
试试这个:
敬礼
相关问题 更多 >
编程相关推荐