The hard disk configuration of a virtual machine is represented by an Item element in its VirtualHardwareSection.

Verify that you are logged in to the vCloud API as an administrator, Catalog Author, or vApp Author.

1

Retrieve the hard disk configuration from the virtual machine.

Make a GET request to the virtual machine's virtualHardwareSection/disks link.

GET https://vcloud.example.com/api/vApp/vm-4/virtualHardwareSection/disks

The response to this kind of request is a RasdItemsList element that contains an Item element for each of the virtual machine's hard disks and hard disk controllers, as shown in Example: Retrieve the Hard Disks and Controllers in a Virtual Machine .

2

Modify the retrieved section.

Modified sections must contain all required elements, even if you are not changing their values. Because optional elements revert to default values if they are omitted or empty, it is a best practice to include optional elements in updates. Link elements and href attributes from responses do not need to be included in modified sections. Some elements and attributes might be read-only. See the schema reference for details.

You cannot modify the values of the busType and busSubType attributes after you create a new disk. When creating a new disk, be sure to set the values of busType and busSubType to a valid combination.

Valid Combinations of busType and busSubType

busType

busSubType

Controller

5

null

IDE controller

6

buslogic

BusLogic Parallel SCSI controller

6

lsilogic

LSI Logic Parallel SCSI controller

6

lsilogicsas

LSI Logic SAS SCSI controller

6

VirtualSCSI

Paravirtual SCSI controller

20

vmware.sata.ahci

SATA controller (hardware version 10 and later)

3

Update the section with your modifications.

a

In the retrieved section, find the Link element where rel="edit".

b

Make a PUT request to the URL in that link's href attribute value, and supply the modified section as the request body.

The response to this request is a Task element that tracks the update operation. When the task is complete, the section is updated.

The modified section replaces the contents of the original section. For some section types, modifications take effect immediately. For others, modifications take effect only after a power or deployment state change.

The following request increases the capacity of the hard disk from 1GB to 10GB by changing the vcloud:capacity value of the Item that defines the disk. The capacity is raised from 1024 to 10240. The request body includes the entire RasdItemsList returned by the request shown in Step 1, even though only one element is changed. Link elements from a response are ignored if you include them in a request, so they are omitted in this example.

Request:

PUT https://vcloud.example.com/api/vApp/vm-4/virtualHardwareSection/disks
Content-Type: application/vnd.vmware.vcloud.rasditemslist+xml
...
<?xml version="1.0" encoding="UTF-8"?>
<RasdItemsList
   xmlns="http://www.vmware.com/vcloud/v1.5"
   xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
   type="application/vnd.vmware.vcloud.rasdItemsList+xml" >
   <Item>
      <rasd:Address>0</rasd:Address>
      <rasd:Description>SCSI Controller</rasd:Description>
      <rasd:ElementName>SCSI Controller 0</rasd:ElementName>
      <rasd:InstanceID>2</rasd:InstanceID>
      <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
      <rasd:ResourceType>6</rasd:ResourceType>
   </Item>
   <Item>
      <rasd:AddressOnParent>0</rasd:AddressOnParent>
      <rasd:Description>Hard disk</rasd:Description>
      <rasd:ElementName>Hard disk 1</rasd:ElementName>
      <rasd:HostResource
         xmlns:vcloud="http://www.vmware.com/vcloud/v1.5"
         vcloud:capacity="10240"
         vcloud:busSubType="lsilogic"
         vcloud:busType="6"></rasd:HostResource>
      <rasd:InstanceID>2000</rasd:InstanceID>
      <rasd:Parent>2</rasd:Parent>
      <rasd:ResourceType>17</rasd:ResourceType>
   </Item>
   <Item>
      <rasd:AddressOnParent>1</rasd:AddressOnParent>
      <rasd:Description>Hard disk</rasd:Description>
      <rasd:ElementName>Hard disk 2</rasd:ElementName>
      <rasd:HostResource
         xmlns:vcloud="http://www.vmware.com/vcloud/v1.5"
         vcloud:capacity="2048"
         vcloud:busSubType="lsilogic"
         vcloud:busType="6"></rasd:HostResource>
      <rasd:InstanceID>2001</rasd:InstanceID>
      <rasd:Parent>2</rasd:Parent>
      <rasd:ResourceType>17</rasd:ResourceType>
   </Item>
   <Item>
      <rasd:Address>0</rasd:Address>
      <rasd:Description>IDE Controller</rasd:Description>
      <rasd:ElementName>IDE Controller 0</rasd:ElementName>
      <rasd:InstanceID>3</rasd:InstanceID>
      <rasd:ResourceType>5</rasd:ResourceType>
   </Item>
</RasdItemsList>

The response is a task.

Response:

202 Accepted
Content-Type: application/vnd.vmware.vcloud.task+xml
...
<Task ... operation="Updating Virtual Application Linux FTP server (7)" ...>
...
</Task>