Sahara/PluggableProvisioning/IRAndVMManagerAPI

Image Registry API
Here is a list of all functions provided by IR.

set_description(image_id, os_description, hadoop_version, extra)
 * Sets human-readable information for image, for example, “Ubuntu 13.04 x86_64, Apache Hadoop 1.1.1, Java 1.7u21”
 * Returns: None

tag_image(image_id, tags)
 * Adds tags to image
 * Returns: None

untag_image(image_id, tags)
 * Removes tags from image
 * Returns: None

get_image_tags(image_id)
 * Queries all tags for the given image
 * Returns: list of strings - image tags

get_image_by_tags(tags)
 * Queries images having all of the specified tags
 * Returns: list of strings - images’ ids

VM Manager's API
VM manager provides the following API.

execute(command)
 * Executes command in shell on VM via ssh (non-interactive)
 * Returns: Status code returned by command execution

copy_to_vm(filename)
 * Copies file to VM via ssh
 * Returns: If operation is successful then True, otherwise False

copy_from_vm(filename)
 * Copies file from vm via ssh
 * Returns: If operation is successful then True, otherwise False

Additionally we are thinking about adding some helpers for some high-level actions, for example: install package (using apt-get/yum ?)