在特定位置附加外部磁盘

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,你只需要应用同样的想法。将新磁盘的类别代码设置为与当前磁盘的类别代码值相同。

希望对你有所帮助。