SoftLayer如何从VirtualMachine REST

时间:2016-09-15 11:43:24

标签: rest ibm-cloud-infrastructure

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

这是我想要的:

首先,我获得了存储空间的ID

... /休息/ 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"
} ...

其次,我尝试将本地存储与VirtualMachine分离

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

休息/ 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"
}

任何想法都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用下一个REST请求来查找可以附加/分离的所有磁盘映像:

http://[$username]:[$apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Account/getPortableStorageVolumes.json

方法:GET

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

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