1.0
Table Of Contents
- vCloud API Programming Guide
- Contents
- About This Book
- Introducing the VMware vCloud API
- Hello vCloud: A Structured REST Workflow Example
- Logging In and Getting an Organization List
- Browsing an Organization
- Finding a vApp Template
- Getting Information About a vDC
- Instantiating the Template in the vDC
- Deploying and Powering On the vApp
- Getting Information About the vApp
- Displaying the Console
- Deleting the vApp
- Logging Out
- Moving on to Additional Use Cases
- Browsing
- Provisioning
- Summary of Provisioning Requests
- Upload OVF to Create a vApp Template
- View the OVF Descriptor of a vApp Template
- Download a vApp Template as OVF
- Upload a Media Image
- Copying and Moving
- Changing a Name or Description
- Delete a vAppTemplate, vApp, or Media Image
- Cataloging vApp Templates and Media Images
- Controlling Access
- Datacenter Operations
- Summary of Datacenter Operations Requests
- vApp Lifecycle
- Instantiate a vApp Template
- Compose a vApp
- Recompose a vApp to Add or Remove Virtual Machines
- Capture a vApp to Create a vApp Template
- Reconfiguring vApps and Virtual Machines
- Deploying and Controlling vApps and Virtual Machines
- Deploy a vApp or Virtual Machine
- Undeploy a vApp or Virtual Machine
- Power On a vApp or Virtual Machine
- Power Off a vApp or Virtual Machine
- Reset a vApp or Virtual Machine
- Suspend a vApp or Virtual Machine
- Discard the Suspended State of a vApp or Virtual Machine
- Shut Down a vApp or Virtual Machine
- Reboot a vApp or Virtual Machine
- List Media Devices of a Virtual Machine
- Insert Media Into a Virtual Machine
- Eject Media from a Virtual Machine
- Get a Screen Thumbnail for a Virtual Machine
- Get a Screen Ticket for a Virtual Machine
- Provide User Input Requested by a Virtual Machine
- Control Access to vApps
- Retrieve a Task
- Administrative Operations
- VMware vSphere Platform Operations
- Summary of vSphere Platform Operations Requests
- List vSphere Platform Operations and Objects for a vCloud
- List Provider vDCs in a vCloud
- List External Networks in a vCloud
- List Network Pools in a vCloud
- List vCenter Servers Registered to a vCloud
- List ESX/ESXi Hosts in a vCloud
- Create a Provider vDC
- Create an External Network
- Create a Network Pool
- Import a Virtual Machine from vCenter
- XML Representations in the vCloud API
- User API Reference
- Request Parameters Reference
- Administrative API Reference
- vSphere Platform Extensions Reference
- OVF and the vCloud API
- An Introduction to REST for vCloud API Users
- Index
VMware, Inc. 205
Appendix A OVF and the vCloud API
Virtual Disk Files
VirtualdiskfileinformationextractedfromtheReferencessectionoftheOVFpackageisusedtopopulate
theFileselementoftheVAppTemplate.AnOVFpackagecanincludeexactlyoneReferencessection.Itlists
allthefilesrequiredbyalltheVirtualSystemsdefinedinthepackage,includingvirtualdisksand
locale‐specificresourcefiles.VirtualdiskfilesareenumeratedagainintheDiskSectionelementofthe
package,onefileperDiskelement.Diskelementsincludeadditionalinformationaboutthecapacityand
formatofeachdisk.(Diskelementscanalsospecifyemptyvirtualdisk,inwhichcasetheyarenotassociated
withavirtualdiskfile.)
Example A‐1showshowavirtualdiskreferenceappearsinanEnvelope.(Inthisexample,attributesand
otherelementsintheEnvelopehavebeenomittedforclarity.)ThehrefvalueoftheFileelementinthe
Referencessectionspecifiesthefilepathnamerelativetothe
locationoftheOVFdescriptorfileinwhichthe
Envelopeappears.(Inthiscase,thediskfile,SimpleVM-disk1.vmdk,isinthesamefolderastheOVF
descriptor.)TheDiskelementisthenassociatedwithavirtualmachine,asaHostResourceofa
VirtualSystem,referencedbyitsovf:diskIdattributevalue.
Example A-1. Virtual Disks in an OVF Envelope
<Envelope ...
...
<References>
<File ovf:href="SimpleVM-disk1.vmdk" ovf:id="file1" ovf:size="68096"/>
</References>
...
<DiskSection>
<Info>Virtual disk information</Info>
<Disk ovf:capacity="8589934593" ovf:capacityAllocationUnits="byte * 2^20"
ovf:diskId="vmdisk1" ovf:fileRef="file1"
ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#str
eamOptimized"/>
</DiskSection>
...
<VirtualHardwareSection>
<VirtualSystem>
...
<Item>
...
<rasd:ElementName>Hard Disk 1</rasd:ElementName>
<rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
...
</Item>
...
</VirtualHardwareSection>
</VirtualSystem>
</Envelope>
Networks
TheNetworkSectionelementofanOVFEnvelopelistsallthelogicalnetworksrequiredbythepackage.Each
networkisdefinedinthissectionbyanameandcanhaveanoptionaldescription.Logicalnetworknamesare
usedwhenspecifyingconnectiondetailsforavirtualNIC.
TheOVFisextensible,andthe
vCloudAPIhasimplementedextensionsthatenableamorecomprehensive
specificationofnetworkfeatures,suchasfirewallandNATrules,thanwhatiscurrentlysupportedbytheOVF
standard.See“NetworkConfig”onpage 165.
Example A‐2illustratesasubsetofEnvelopeelementsthatspecifyvAppnetworkingconfiguration.
TheOVFNetworkSectionelementspecifiesthenameofthenetwork
ThevCloudAPINetworkConfigSectiondefinesvariousnetworkfeaturessuchasDHCPandfirewall
services.