After an OVF descriptor is uploaded, the server validates it and, if it is valid, updates the corresponding template with upload URLs for each of the files referenced in the descriptor. You must retrieve the template to see these URLs.

1

Retrieve the VAppTemplate to verify that the OVF descriptor is uploaded.

Use the URL returned in the response to your uploadVAppTemplate request. See the request portion of Example: Upload URLs in a vAppTemplate.

2

Verify that the value of the template's ovfDescriptorUploaded attribute is true.

3

Examine the template to find the upload URLs for the files referenced in the OVF descriptor.

These URLs are contained in Link elements where rel="upload:default".

This request uses the vApp template URL returned in Example: Initiating the Upload.

Request:

GET https://vcloud.example.com/api/vAppTemplate/vappTemplate-268

Response:

200 OK
Content-Type: application/vnd.vmware.vcloud.vAppTemplate+xml
...
<VAppTemplate
   xmlns="http://www.vmware.com/vcloud/v1.5"
   xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
   ovfDescriptorUploaded="true"
   goldMaster="false"
   status="0"
   name="Ubuntu Template"
   id="urn:vcloud:vapptemplate:268"
   href="https://vcloud.example.com/api/vAppTemplate/vappTemplate-268"
   type="application/vnd.vmware.vcloud.vAppTemplate+xml">
   ...
   <Description>Ubuntu vApp Template</Description>
   <Files>
      <File
         size="3940"
         bytesTransferred="3940"
         name="descriptor.ovf">
         <Link
            rel="upload:default"
            href="https://vcloud.example.com/transfer/.../descriptor.ovf"/>
      </File>
      <File
         size="1024"
         bytesTransferred="0"
         name="manifest.mf">
         <Link
            rel="upload:default"
            href="https://vcloud.example.com/transfer/.../manifest.mf"/>
      </File>
      <File
         size="1950489088"
         bytesTransferred="0"
         name="disk0.vmdk">
         <Link
            rel="upload:default"
            href="https://vcloud.example.com/transfer/.../disk0.vmdk"/>
      </File>
   </Files>
   ...
</VAppTemplate>

In this example, which omits most of the additional elements shown in Example: Initiating the Upload, the ovfDescriptorUploaded attribute has a value of true and the status attribute has a value of 0. If the descriptor fails validation, status is set to -1, and the template contains a Task element whose Error element indicates the reason for the failure.

Each of the File elements includes an upload link where rel="upload:default" and several attributes.

size

The file size, taken from the size attribute of the File element in the OVF descriptor.

bytesTransferred

For all file references other than the descriptor, this attribute is initially set to a value of 0, indicating that the upload has not begun. In the File element that references the OVF descriptor, the value of the bytesTransferred attribute is equal to the value of the size attribute, indicating that all the bytes in the descriptor were transferred.

name

The file name, taken from the href attribute of the File element in the OVF descriptor.

Note

Upload URLs remain valid while a transfer session is in progress, and for a maximum of 60 minutes of transfer session idle time. A system administrator can change this default value. See Retrieve or Update System Settings.