Hi, I am about to start work on the Terremark driver. D. Lutter asked me to share some notes on the Terremark vCloud API for future reference.
The Terremark vCloud Express API is based on VMWare's vCloud API but imho it is sufficiently different to warrant its own distinct driver (though in the future if we add another vCloud based driver there can certainly be some generalisation): 1. Summary and main entities of the vCloud Express API 2. Some differences between vCloud Express and 'vanilla' VMWare vCloud 3. Provisional mapping of vCloud Express entities to deltacloud concepts. 1. Summary and main entities in vCloud Express: =============================================== * vCloud express API is at: https://community.vcloudexpress.terremark.com/en-us/product_docs/w/wiki/DefaultWikiPage.aspx (the generic VMWare vCloud API is at: http://communities.vmware.com/community/developer/forums/vcloudapi) * 'Organization' - the top level element and entry point to the API. After HTTP authentication you get the Organization URL returned. Has children 'vDC', 'Catalog' , 'tasks' and any currently running instances ('vApps'). The Organization is less significant in the vCloud Express API than in the VMWare vCloud. * 'vDC' - virtual datacenter. An allocation of virtual resources. In tMark express, each Organization can only have exactly one vDC. Thus for all intents and purposes this is the top level element (i.e. organization is more/less redundant here). * 'Catalog' - contains 'vApp templates' from which vApps can be instantiated. * 'vAPP' - a virtual machine packaged in OVF format. These are instantiated from a 'vAPP template' * 'Network' - an assignment of private IP addresses given to each vdc (60 by default) * 'Internet Service' and 'Public IP' - these two entities provide 'outward facing' networking. Public IP is self explanatory (a publicly routeable address) and Internet Service is about configuring ports+protocols for specific services. So can configure a vAPP to host a web server by associating the vAPP with Internet Service port 80 HTTP. The Internet Service is then associated with exactly one public IP. * 'Compute options' - combinations of memory and number of cpus with which to configure vApps. Also 'customization options' define whether network and password can be configured for a vapp. 2. Some differences between vCloud Express and 'vanilla' VMWare vCloud ====================================================================== * 'Organization' entity is less important in vCloud Express. No distinction between hard/soft walled Organizations. Furthermore as there is only 1 vDC/Organization in vCloud Express the vDC is essentially the top level element. The 'Get Organization' call gives different results in vCloud Express than in vanilla. * In vcloud express the vDC has as child elements 'Catalog', 'Internet service' and 'public ip'. In vanilla vcloud, 'Internet Service' and 'Public IP' dont exist, 'Catalog' is child of 'Organization'. * 'Compute' and 'customization options' only exist in vCloud-Express... * In vanilla vCloud the catalog contains references to all entities of the organization, like vapp templates but also iso images and installable software. However in the vcloud-Xpress the catalog exclusively holds the vAPP templates and nothing else. * vCloud-Xpress does not have a network entity at the 'Organization' level... instead have 'Internet service' and 'Public IP' (ports, and IP address respectively) with which you configure all vApps (which get private addresses). The 'network' entity IS available in vCloud-X but as a child of the vDC (i.e. you get it when you GET vDC) 3. Provisional mapping of vCloud Express entities to d-cloud concepts ===================================================================== 'Instance' <==> 'vAPP' 'Image' <==> 'vAPP template' 'Flavor' <==> 'compute options' (and perhaps 'customization options') 'Realm' <==> 'Organization' OR 'Realm' <==> 'vDC' (probably the latter) --marios _______________________________________________ deltacloud-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/deltacloud-devel
