在特定位置连接外部磁盘

时间:2017-06-07 14:31:18

标签: ibm-cloud ibm-cloud-infrastructure

通过使用此代码,我可以按顺序连接磁盘 设备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"
                      })

1 个答案:

答案 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。

我希望这对你有所帮助。