OVF Package Instance Resource

Cloud Admin Enterprise Admin User

Contents:

OVF Packages Instance are the materialization of an OVF Package on an Enterprise Repository.

OVF Packages Instances stores the OVF Envelop metadata document (.ovf) and all the required disk files on the Repository fileSystem.

(same restriction as OVF Package single VirtualSytem based on one VirtualDiskDescription)

OVF Package Instance Data Model

Identified by 'ovfUrl' OVF envelope source and 'idEnterprise'.

Contains Disk information, resource allocation requirements and optionally metadata present on the OVF Package.

Field Name Type Occurs Required Description
ovfUrl Link 1 true Link to the source url of the .ovf file
idEnterprise Integer 1 true The Enterprise Repository identifier (match idEnterprise)
ovfPackageDiskFormatType Enum 1 true The virtual disk file format see ''Compatibilty Table''
diskFilePath String 1 true (false on 'upload' and 'bundle') The path on the Repository file system (relative to the Repository Location ) containing the Disk File of the installed OVF Package
masterDiskFilePath String 1 optional If the OVF Package Instance is a bundle this path locate the 'diskFilePath' of its base OVF Package Instance
diskFileSize Long 1 true (false on 'upload' and 'bundle') Size of the file on 'diskFilePath' using Bytes
cpu Integer 1 required The required CPU resources by the target VirtualMachine (in terms of VirtualCore)
ram Long 1 required The required RAM resources by the target VirtualMachine
hd Long 1 required The required HardDrive resources by the target VirtualMachine
ramSizeUnit Enum 1 optional (default 'byte') The required RAM memory units
hdSizeUnit Enum 1 optional (default 'byte') The required HardDrive memory units
name String 1 optional The name of the product defined on the OVF Package
description String 1 optional The description for the OVF Package
iconPath String 1 optional The source icon url
categoryName String 1 optional The category tag for the OVF Package
edit Link 1 true Link to the url for edit the resource

Media-Type of this representation is considered the standard.

"application/ovfpackageenvelope-xml" is used to require the complete OVF Envelope document format.
The document is modified from its original source (located on 'ovfUrl') to set the References FileType elements pointing to files relatives to the Repository Location .

OVF Package Instance Status Data Model

"application/ovfpackagestatus-xml" is the Media-Type provided to represent the OVF Package Instance status.

During the create operation all the files referenced on the package are downloaded from Internet (HTTP source) into the Repository file system, as disk files are usually very large the OVF Package installation can take some time.

Field Name Type Occurs Required Description
ovUrl Link 1 true Link to the source url of the .ovf file
ovfPackageInstanceStatusType Enum 1 true The current life cycle state
progress Double 1 true if DOWNLOAD The average progress of the creation
errorCause String 1 true if ERROR The error description during the OVF Package Instance creation
OVF Package Instance Status Type Data Model
Enumeration Description
DOWNLOAD The OVF Package Instance is present on the Repository
DOWNLOADING During the obtention of disk file from the source
NOT_DOWNLOAD If the OVF Package Instance has been deleted
ERROR Report any problem during the OVF Package Instance creation

Methods related to OVF Package Instance Resource

Retrieve the list OVF Package Instances Status

List only accepted with Content-Type=application/ovfpackagestatus-xml.

Synopsis: GET http://example.com/api/datacenters/{$datacenterId}/remoteServices/{$type}/er/{$idEnterprise}/ovfpackageinstances
Request Headers: Accept, Content-Type=application/ovfpackagestatus-xml.
Request Message Body: N/A
Example Request: Retrieve the list with the status of all the OVF Package Instances on the repository of datacenter 1 available on enterprise 1

Retrieve OVF Packag Instance list Request

Response Headers: Content-Length, Content-Type, Location.
Response Message Body: N/A.
Response Status: 201, 400, 401, 403, 404
Example Response: 1 OVF Package Instance available, 1 on error and 1 currently being instantiated.

Retrieve OVF Packag Instance list Response
Retrieve an OVF Package Instance.
Retrieve an OVF Package Instance status.

Synopsis: GET http://example.com/api/admin/datacenters/{$datacenterId}/remoteServices/{$type}/ovfpackageinstances/{$ovfUrl}
Request Headers: Accept="application/ovfpackagestatus-xml", Content-Type.
Request Parameters: N/A.
Request Message Body: N/A.
Example Request: Retrieve the status of an OVF Package Instance

GET Retrieve the status of an OVFPackageInstance Request

Response Headers: Content-Length, Content-Type="application/ovfpackagestatus-xml".
Response Message Body: OVF Package Instance Status
Response Status: 200, 401, 403.
Example Response: A being instantiated OVF Package Instance

GET Retrieve the status of an OVFPackageInstance Response
Retrieve an OVF Package Instance information

An OVFPackagInstance can be represented as its OVF Envelope document or by its simplified OVF Package Instance Data Model with the information extracted form the OVF envelope actually used on the Abiquo platform.

Using the Content-Type header can specify the desired representation:

Both description representations Response Status is 201 for DOWNLOAD OVF Package Instance, otherwise 404 is returned.

Synopsis: GET http://example.com/api/datacenters/{$datacenterId}/remoteServices/{$type}/er/{$idEnterprise}/ovfpackageinstances/{$ovfUrl}
Request Headers: Accept, Content-Type=application/xml, application/ovfpackageenvelope-xml.
Request Message Body: N/A
Example Request: Retrieve the list with the status of all the OVF Package Instances on the repository of datacenter 1 available on enterprise 1

Retrieve OVF Packag Instance list Request

Response Headers: Content-Length, Content-Type, Location.
Response Message Body: N/A.
Response Status: 201, 400, 401, 403, 404
Example Response: single OVF Package Instance description.

Check the status of a target host Response

XXX example OVF Envelope

Get the disk file of an OVF Package Instance

Single disk support for OVF Package templates means every OVF Package Instance have a single disk file that can be downloaded using "application/ovfpackage-octet-stream" as the Content-Type of the request.

As this file can be very large (usually more than 1Gb) this operation response with a 301 Moved Permanently Response Status including the download URL.

The current resource is a proxy to the Datacenter Remote Service, the download URL is specific to the Appliance Manager of the specific datacenter, so direct communication with this remote service is required.

Synopsis: GET http://example.com/api/datacenters/{$datacenterId}/remoteServices/{$type}/er/{$idEnterprise}/ovfpackageinstances/{$ovfUrl}
Request Headers: Accept, Content-Type=application/ovfpackage-octet-stream.
Request Message Body: N/A
Example Request: Retrieve the disk file being used on the 'abiquo-repository.abiquo.com/s3direct/ubuntu/description.ovf' OVF Package Instance

Get the disk file of an OVF Package Instance Request

Response Headers: Content-Length, Content-Type, Location.
Response Message Body: N/A.
Response Status: 301, 400, 401, 403, 404
Example Response: Location to download the disk file.

Get the disk file of an OVF Package Instance Response
Create a new OVF Package Instance
Download an OVF Package Instance from an OVF URL source.

"url/ovf" Media-Type indicate the OVF Package is available from an external repositories of virtual appliances templates accessible using HTTP.

OVF Packages are located by the URL of its OVF Envelop file ''.ovf'' .

OVF Package Resource are organized on an Apps Library.

Requires to download all the referenced files of the OVF envelope on the enterprise repository

Synopsis: POST http://example.com/api/datacenters/{$datacenterId}/remoteServices/{$type}/er/{$enterpriseID}/ovfpackageinstances
Request Headers: Accept, Content-Type=url/ovf.
Request Parameters: N/A
Request Message Body: The OVF package source URL
Example Request: Require the instantiation of the OVF Package located at http://abiquo-repository.abiquo.com/s3direct/debian-5-lenny/description.ovf

Create a new OVF Package Instance Request

Response Headers: Content-Length, Content-Type, Location.
Response Message Body: N/A.
Response Status: 201, 400, 401, 403, 404
Example Response: Response of the OVF Package Instance creation

Create a new OVF Package Instance Response
Upload an OVF Package Instance from the client file system.

Creates a new OVF Package Instance from a disk file on the client file system.

As # Get the disk file of an OVF Package Instance operation requires direct communication with the Appliance Manager on the datacenter.

The Multipart request contains two attachments:

  • OVF Package Instance with the required information:
    • ovfUrl if OVF Package compatibility is desired you should use the appliance manager target host address to publish the OVF description file.
      • http://{$amAddress}/er/{$idEnterprise}/ovfpackages/upload/packageName.ovf
    • diskFilePath is not specified, it is generated from the ovfUrl.
    • diskFileSize is not specified, is is the size of the file being upload.
  • Virtual disk binary file.

Note: the created OVF Package Instance do not have any associated OVF Package so it is not visible from the Apps Library Resource

TODO curl example

Bundle an existing OVF Package Instance.

Creates a new OVF Package Instance based on an already existing OVF Package on the repository.
A bundle OVF Package Instances are snapshots of OVF Package Instances.

This operations should be called before the bundle is complet (the new snapshot disk file is present on the Repository file system) otherwise return 404.

Request body message:
OVF Package Instance with the required information:

TODO curl example

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.