The hard disk configuration of a virtual machine is represented by one or more Item elements in its VirtualHardwareSection.
This operation requires the rights included in the predefined vApp Author role or an equivalent set of rights.
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 . Important
If an independent disk is attached to the virtual machine, it is included in this list, but cannot be modified by this operation. Attached independent disks are distinguished by the appearance of a vcloud:disk attribute in the containing Item, as shown here: <rasd:HostResource ... vcloud:disk="https://vcloud.example.com/api/disk/128" /> If you need to modify an independent disk while it is attached to a virtual machine, you must use the reconfigureVm operation. See Update Multiple Sections of a Virtual Machine. | ||||
2 |
Request bodies must contain all required elements and attributes, even if you are not changing their values. Because optional elements and attributes typically revert to default values if they are omitted or empty, it is a best practice to include optional elements in request bodies that modify existing objects. Link elements and href attributes from responses do not need to be included in modified sections. Some elements and attributes are read-only and cannot be modified. 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. | ||||
3 | Update the section with your modifications.
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.
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>
202 Accepted Content-Type: application/vnd.vmware.vcloud.task+xml ... <Task ... operation="Updating Virtual Application Linux FTP server (7)" ...> ... </Task>