2. VMware vCloud Director Server Resource Kit : 2.2 vCloud Provisioner
   
2.2 vCloud Provisioner
vCloud Provisioner acts as a middle layer that conveys data to and from its business objects model and to and from a vCloud Director instance. An abstraction layer enables a choice between implementations of the communication protocol between the vCloud Provisioner and vCloud Director.
vCloud Provisioner provides a solution for the following problems and tasks:
*Data-driven vCloud provisioning.
*Externalization of the vCloud object specifications in provision files.
*Abstraction between object specifications and the framework used for communicating with the vCloud.
*Loading of object specifications from an active vCloud Director setup.
*Comparison of two states of object specifications.
vCloud Provisioner includes the following features:
*Provides an interface for vCloud operations so that test cases do not have to be modified when the communication layer is replaced or modified.
*Provides a container for vCloud entities (CloudProvisionData).
*Provides functionality for loading the CloudProvisionData container, whether from an XML file or directly from a running vCloud.
*Provides functionality for flushing a CloudProvisionData container to a vCloud or to an XML format.
*Can compare two instances of CloudProvisionData.
*Can clean all entities that were flushed to the vCloud.
*Can append one instance of CloudProvisionData to another one.
*Can modify existing vCloud entities.
The following figure shows a workflow that uses vCloud Provisioner to flush an XML object specification to a vCloud. A similar workflow is used to load objects from a vCloud Director instance into a container.
Figure 1. Workflow for Flushing an XML Object Specification to the vCloud