2017-06-07 50 views
0

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

您可以通过属性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。

我希望这对你有所帮助。

+0

谢谢@Albert :) –