在特定位置附加外部磁盘
Attach external disks at particular position
通过使用此代码,我可以按顺序附加磁盘。
设备 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"
})
可以通过属性categoryCode直接附加到特定位置,顺序如下:
guest_disk1 for Second Disk
guest_disk2 for Third Disk
guest_disk3 for Fourth Disk
guest_disk4 for Fifth Disk
确保商品价格有您需要的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 之间才能将磁盘直接附加到第三和第四位置。
注:
如果你想用另一个more/less space磁盘change/replace,你只需要应用同样的想法。将新磁盘的类别代码设置为与当前磁盘的类别代码值相同。
希望对你有所帮助。
通过使用此代码,我可以按顺序附加磁盘。
设备 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"
})
可以通过属性categoryCode直接附加到特定位置,顺序如下:
guest_disk1 for Second Disk
guest_disk2 for Third Disk
guest_disk3 for Fourth Disk
guest_disk4 for Fifth Disk
确保商品价格有您需要的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 之间才能将磁盘直接附加到第三和第四位置。
注: 如果你想用另一个more/less space磁盘change/replace,你只需要应用同样的想法。将新磁盘的类别代码设置为与当前磁盘的类别代码值相同。
希望对你有所帮助。