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.
Parameters: - node (
Node
) – Node to attach volume to. - volume (
StorageVolume
) – Volume to attach. - device (
str
) – Where the device is exposed, e.g. ‘/dev/sdb’
Rytpe: bool
- node (
-
connectionCls
¶ alias of
VCloudConnection
-
create_node
(**kwargs)[source]¶ Creates and returns node.
@inherits:
NodeDriver.create_node
Parameters: - ex_network (
str
) – link to a “Network” e.g., “https://services.vcloudexpress.terremark.com/api/v0.8/network/7“ - 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) - ex_row (
str
) – - ex_group (
str
) –
- ex_network (
-
create_volume
(size, name, location=None, snapshot=None)¶ Create a new volume.
Parameters: - 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)
Returns: The newly created volume.
Return type: StorageVolume
- size (
-
create_volume_snapshot
(volume, name)¶ Creates a snapshot of the storage volume.
Return type: VolumeSnapshot
-
deploy_node
(**kwargs)¶ 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
orNodeAuthSSHKey
to theauth
argument. If thecreate_node
implementation supports that kind if credential (as declared inself.features['create_node']
) then it is passed on tocreate_node
. Otherwise it is not passed on tocreate_node
and it is only used for authentication.If the
auth
parameter is not supplied but the driver declares it supportsgenerates_password
then the password returned bycreate_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.
Parameters: - 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
orNodeAuthPassword
) – Initial authentication information for the node (optional) - ssh_key (
str
orlist
ofstr
) – 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’.
- deploy (
-
destroy_volume
(volume)¶ Destroys a storage volume.
Parameters: volume ( StorageVolume
) – Volume to be destroyedReturn type: bool
-
detach_volume
(volume)¶ Detaches a volume from a node.
Parameters: volume ( StorageVolume
) – Volume to be detachedReturn type: bool
-
ex_list_nodes
(vdcs=None)[source]¶ 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
ofNode
-
list_locations
()¶ List data centers for a provider
Returns: list of node location objects Return type: list
ofNodeLocation
-
list_volume_snapshots
(volume)¶ List snapshots for a storage volume.
Return type: list
ofVolumeSnapshot
-
list_volumes
()¶ List storage volumes.
Return type: list
ofStorageVolume
-
vdcs
¶ vCloud virtual data centers (vDCs).
Returns: list of vDC objects Return type: list
ofVdc
-
wait_until_running
(nodes, wait_period=3, timeout=600, ssh_interface='public_ips', force_ipv4=True)¶ Block until the given nodes are fully booted and have an IP address assigned.
Parameters: - nodes (
List
ofNode
) – list of node instances. - wait_period (
int
) – How many seconds to between each loop iteration (default is 3) - timeout (
int
) – How many seconds to wait before timing out (default is 600) - ssh_interface (
str
) – The interface to wait for. Default is ‘public_ips’, other option is ‘private_ips’. - force_ipv4 (
bool
) – Ignore ipv6 IP addresses (default is True).
Returns: [(Node, ip_addresses)]
list of tuple of Node instance and list of ip_address on success.Return type: list
oftuple
- nodes (
-