通过使用此代码,我可以按顺序连接磁盘 设备2,设备3,设备4
但我想为特定位置附加磁盘。 我想直接连接第3个磁盘或第4个磁盘。 不升级以前的磁盘
for disk in external_disks:
obj = {}
obj['id'] = getDiskPriceId(client, disk)
#obj['id'] = 2277
#logger.info("disk %s size: %s --\n" ,(str(disk_num)), (str(disk)))
if obj['id'] == "":
print("Invalid external disk size")
exit(1)
categories = {}
categories['categoryCode'] = "guest_disk"+str(disk_num)
categories['complexType'] = "SoftLayer_Product_Item_Category"
obj['categories'] =[categories]
obj["complexType"] = "SoftLayer_Product_Item_Price"
prices.append(obj)
disk_num = disk_num + 1
response = client.call('SoftLayer_Product_Order','placeOrder', {
"virtualGuests": [{
"id": id
}],
"prices": prices,
"properties": [{
"name": "NOTE_GENERAL",
"value": "adding disks"
},{
"name": "MAINTENANCE_WINDOW",
"value": "now"
}],
"complexType": "SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade"
})
答案 0 :(得分:0)
您可以通过 categoryCode 属性直接附加到特定位置,以下是订单:
第二个磁盘的guest_disk1
第三盘的guest_disk2
第四盘的guest_disk3
第五盘的guest_disk4
确保商品价格具有您需要的categoryCode,您可以使用方法SoftLayer_Virtual_Guest::getUpgradeItemPrices进行验证,如下所示:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/[deviceId]/getUpgradeItemPrices
关于价格的以下结构允许将磁盘直接附加到第三和第四位置。
prices = [
{
'id': 2299,
'categories': [
{
'categoryCode': 'guest_disk2',
'complexType': 'SoftLayer_Product_Item_Category'
}
],
'complexType': 'SoftLayer_Product_Item_Price'
},
{
'id': 2288,
'categories': [
{
'categoryCode': 'guest_disk3',
'complexType': 'SoftLayer_Product_Item_Category'
}
],
'complexType': 'SoftLayer_Product_Item_Price'
}
]
在您的代码中, disk_num 值需要介于2和3之间才能将磁盘直接连接到第三和第四位置。
注意:强> 如果您想要用更多/更少空间的另一个更改/替换磁盘,您只需要应用相同的想法。使用当前磁盘的categoryCode值设置新磁盘的categoryCode。
我希望这对你有所帮助。