VMware vCloud Driver Documentation


API Docs

class libcloud.compute.drivers.vcloud.VCloudNodeDriver(key, secret=None, secure=True, host=None, port=None, api_version=None, **kwargs)[source]

vCloud node driver

attach_volume(node, volume, device=None)

Attaches volume to node.

  • node (Node) – Node to attach volume to.
  • volume (StorageVolume) – Volume to attach.
  • device (str) – Where the device is exposed, e.g. ‘/dev/sdb’



alias of VCloudConnection


Create a new key pair object.

Parameters:name (str) – Key pair name.

Creates and returns node.

  • ex_network (str) – link to a “Network” e.g., https://services.vcloudexpress...
  • ex_vdc (str) – Name of organisation’s virtual data center where vApp VMs will be deployed.
  • ex_cpus (int) – number of virtual cpus (limit depends on provider)
create_volume(size, name, location=None, snapshot=None)

Create a new volume.

  • size (int) – Size of volume in gigabytes (required)
  • name (str) – Name of the volume to be created
  • location (NodeLocation) – Which data center to create a volume in. If empty, undefined behavoir will be selected. (optional)
  • snapshot (str) – Name of snapshot from which to create the new volume. (optional)

The newly created volume.

Return type:


create_volume_snapshot(volume, name)

Creates a snapshot of the storage volume.

Return type:VolumeSnapshot

Delete an existing key pair.

Parameters:key_pair (:class`.KeyPair`) – Key pair object.

Create a new node, and start deployment.

In order to be able to SSH into a created node access credentials are required.

A user can pass either a NodeAuthPassword or NodeAuthSSHKey to the auth argument. If the create_node implementation supports that kind if credential (as declared in self.features['create_node']) then it is passed on to create_node. Otherwise it is not passed on to create_node and it is only used for authentication.

If the auth parameter is not supplied but the driver declares it supports generates_password then the password returned by create_node will be used to SSH into the server.

Finally, if the ssh_key_file is supplied that key will be used to SSH into the server.

This function may raise a DeploymentException, if a create_node call was successful, but there is a later error (like SSH failing or timing out). This exception includes a Node object which you may want to destroy if incomplete deployments are not desirable.

>>> from libcloud.compute.drivers.dummy import DummyNodeDriver
>>> from libcloud.compute.deployment import ScriptDeployment
>>> from libcloud.compute.deployment import MultiStepDeployment
>>> from libcloud.compute.base import NodeAuthSSHKey
>>> driver = DummyNodeDriver(0)
>>> key = NodeAuthSSHKey('...') # read from file
>>> script = ScriptDeployment("yum -y install emacs strace tcpdump")
>>> msd = MultiStepDeployment([key, script])
>>> def d():
...     try:
...         driver.deploy_node(deploy=msd)
...     except NotImplementedError:
...         print ("not implemented for dummy driver")
>>> d()
not implemented for dummy driver

Deploy node is typically not overridden in subclasses. The existing implementation should be able to handle most such.

  • deploy (Deployment) – Deployment to run once machine is online and availble to SSH.
  • ssh_username (str) – Optional name of the account which is used when connecting to SSH server (default is root)
  • ssh_alternate_usernames (list) – Optional list of ssh usernames to try to connect with if using the default one fails
  • ssh_port (int) – Optional SSH server port (default is 22)
  • ssh_timeout (float) – Optional SSH connection timeout in seconds (default is 10)
  • auth (NodeAuthSSHKey or NodeAuthPassword) – Initial authentication information for the node (optional)
  • ssh_key (str or list of str) – A path (or paths) to an SSH private key with which to attempt to authenticate. (optional)
  • timeout (int) – How many seconds to wait before timing out. (default is 600)
  • max_tries (int) – How many times to retry if a deployment fails before giving up (default is 3)
  • ssh_interface (str) – The interface to wait for. Default is ‘public_ips’, other option is ‘private_ips’.

Destroys a storage volume.

Parameters:volume (StorageVolume) – Volume to be destroyed
Return type:bool

Destroys a snapshot.

Return type:bool

Detaches a volume from a node.

Parameters:volume (StorageVolume) – Volume to be detached
Return type:bool

List all nodes across all vDCs. Using ‘vdcs’ you can specify which vDCs should be queried.

Parameters:vdcs (Vdc) – None, vDC or a list of vDCs to query. If None all vDCs will be queried.
Return type:list of Node

Retrieve a single key pair.

Parameters:name (str) – Name of the key pair to retrieve.
Return type:KeyPair
import_key_pair_from_file(name, key_file_path)

Import a new public key from string.

  • name (str) – Key pair name.
  • key_file_path (str) – Path to the public key file.
Return type:

KeyPair object

import_key_pair_from_string(name, key_material)

Import a new public key from string.

  • name (str) – Key pair name.
  • key_material (str) – Public key material.
Return type:

KeyPair object


List all the available key pair objects.

Return type:list of KeyPair objects

List data centers for a provider

Returns:list of node location objects
Return type:list of NodeLocation

List snapshots for a storage volume.

Return type:list of VolumeSnapshot

List storage volumes.

Return type:list of StorageVolume

vCloud virtual data centers (vDCs).

Returns:list of vDC objects
Return type:list of Vdc
wait_until_running(nodes, wait_period=3, timeout=600, ssh_interface='public_ips', force_ipv4=True)

Block until the provided nodes are considered running.

Node is considered running when it’s state is “running” and when it has at least one IP address assigned.

  • nodes (list of Node) – List of nodes to wait for.
  • wait_period (int) – How many seconds to wait between each loop iteration. (default is 3)
  • timeout (int) – How many seconds to wait before giving up. (default is 600)
  • ssh_interface (str) – Which attribute on the node to use to obtain an IP address. Valid options: public_ips, private_ips. Default is public_ips.
  • force_ipv4 (bool) – Ignore IPv6 addresses (default is True).

[(Node, ip_addresses)] list of tuple of Node instance and list of ip_address on success.

Return type:

list of tuple