SoftLayer 如何从 VirtualMachine REST 中分离本地存储

SoftLayer how can detach a Local Storage from VirtualMachine REST

我正在尝试从虚拟机分离本地存储,但我从 API 中收到错误。

这是我想要做的:

首先,我得到存储的 Id

.../rest/v3.1/SoftLayer_Account/getVirtualDiskImages.json

0:  {
"capacity": 25
"createDate": "2016-09-15T05:28:16-05:00"
"description": "Disk 2"
"id": 21757115
"modifyDate": null
"name": "Disk 2"
"parentId": null
"storageRepositoryId": 2257588
"typeId": 241
"units": "GB"
"uuid": "0c7f6050-b8ff-431f-a500-f1e896e02c92"
} ...

其次,我尝试将本地存储与虚拟机分离

方法:[DELETE] / [POST] / [PUT]

rest/v3.1/SoftLayer_Virtual_Guest/[vm-id]/detachDiskImage.json

我尝试了以下请求参数:

1 -

   {
        "parameters": [
            {
                "imageId": "21757115"
            }
    }

2 -

   {
        "parameters": [
            {
                "id": "21757115"
            }
    }

3 -

   {
      21757115
   }

但我总是得到

{
"error": "You must provide a valid portable storage volume id."
"code": "SoftLayer_Exception_Public"
}

任何想法将不胜感激。

您可以使用下一个 REST 请求来查找所有可以 attached/detached:

的磁盘映像
http://[$username]:[$apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Account/getPortableStorageVolumes.json

方法:获取

然后你可以使用下一个分离它:

http://[$username]:[$apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Virtual_Guest/[$virtualGuestId]/detachDiskImage.json

方法:POST

正文:

{
    "parameters": [
        1234567                
    ]
}

virtualGuestId 是要从中分离磁盘映像的虚拟来宾 ID

1234567是使用getPortableStorageVolumes方法检索到的图片id

注意:getVirtualDiskImages 检索所有磁盘映像,即使是那些无法分离的磁盘映像,因此,在这种情况下最好使用 getPortableStorageVolumes