通过 API 将虚拟访客从 SAN 迁移到本地

Migrating a Virtual Guest from SAN to Local via the API

我正在尝试使用 SoftLayer API 将 VSI 从 SAN 迁移到本地磁盘。我最初尝试将 editObject 方法与 SoftLayer_Virtual_Guest 服务一起使用,尽管命令返回 true,但没有启动任何事务,VSI 仍在使用 SAN 存储。 REST 或 Python 示例将不胜感激。

使用 Chrome 开发工具并通过门户迁移 VSI 显示正在调用 placeOrder(请求 URL:https://control.softlayer.com/sales/productorder/placeorder),但 placeOrder 似乎不会接受 VSI ID。

没错,你应该使用placeOrder方法,你需要在“virtualGuests”属性中指定VSI,下面是一个例子

https://$user:$apiKey@api.softlayer.com/rest/v3/SoftLayer_Product_Order/verifyOrder

Method: Post


{  
   "parameters":[  
      {  
         "complexType":"SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade",
         "packageId":46,
         "prices":[  
            {  
               "id":13899,
               "categories":[  
                  {  
                     "categoryCode":"guest_disk0",
                     "id":81,
                     "name":"First Disk"
                  }
               ]
            }
         ],
         "properties":[  
            {  
               "name":"MAINTENANCE_WINDOW",
               "value":"2016-11-04T18:51:37.165Z"
            }
         ],
         "virtualGuests":[  
            {  
               "id":25011999
            }
         ]
      }
   ]
}

替换:$user, $apiKey, 25011999 (vsiId) and 13899(新盘的priceId,这里是要迁移的本地盘价格)加上自己的信息。


要从您的 vsi 获取升级项目价格,请尝试以下请求:

https://$user:$apiKey@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/25011999/getUpgradeItemPrices

Method: Get

将:$user$apiKey25011999替换为自己的信息

参考文献: