l.c.d.c.CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver) : class documentation

Part of libcloud.compute.drivers.cloudstack View Source View In Hierarchy

Known subclasses: libcloud.compute.drivers.ktucloud.KTUCloudNodeDriver, libcloud.compute.drivers.ninefold.NinefoldNodeDriver

Driver for the CloudStack API.

@cvar host: The host where the API can be reached.
@cvar path: The path where the API can be reached.
@cvar async_poll_frequency: How often (in seconds) to poll for async
                            job completion.
@type async_poll_frequency: C{int}
Method __init__ @requires: key, secret, host or path
Method list_images List images on a provider
Method list_locations List data centers for a provider
Method list_nodes List all nodes @return: list of node objects @rtype: C{list} of L{Node}
Method list_sizes List sizes on a provider
Method create_node Create a new node instance.
Method destroy_node Destroy a node.
Method reboot_node Reboot a node.
Method ex_list_disk_offerings Fetch a list of all available disk offerings.
Method create_volume Create a new volume.
Method attach_volume Attaches volume to node.
Method detach_volume Detaches a volume from a node.
Method destroy_volume Destroys a storage volume.
Method ex_allocate_public_ip "Allocate a public IP and bind it to a node.
Method ex_release_public_ip Release a public IP.
Method ex_add_ip_forwarding_rule "Add a NAT/firewall forwarding rule.
Method ex_delete_ip_forwarding_rule Remove a NAT/firewall forwarding rule.
Method ex_register_iso Registers an existing ISO by URL.

Inherited from CloudStackDriverMixIn:

Method _sync_request Undocumented
Method _async_request Undocumented

Inherited from NodeDriver:

Method deploy_node Create a new node, and start deployment.
Method _wait_until_running Block until node is fully booted and has an IP address assigned.
Method _ssh_client_connect Try to connect to the remote SSH server. If a connection times out or is refused it is retried up to timeout number of seconds.
Method _run_deployment_script Run the deployment script on the provided node. At this point it is assumed that SSH connection has already been established.
Method _get_size_price Undocumented

Inherited from BaseDriver (via NodeDriver):

Method _ex_connection_class_kwargs Return extra connection keyword arguments which are passed to the Connection class constructor.
def __init__(self, key, *args, secret=None, secure=True, host=None, path=None, port=None, **kwargs): (source)
@requires: key, secret, host or path
def list_images(self, location=None): (source)
List images on a provider

@keyword location: The location at which to list images
@type location: L{NodeLocation}

@return: list of node image objects
@rtype: C{list} of L{NodeImage}
def list_locations(self): (source)
List data centers for a provider

@return: list of node location objects
@rtype: C{list} of L{NodeLocation}
def list_nodes(self): (source)
List all nodes
@return:  list of node objects
@rtype: C{list} of L{Node}
def list_sizes(self, location=None): (source)
List sizes on a provider

@keyword location: The location at which to list sizes
@type location: L{NodeLocation}

@return: list of node size objects
@rtype: C{list} of L{NodeSize}
def create_node(self, name, size, image, location=None, **kwargs): (source)
Create a new node instance.

@keyword    name:   String with a name for this new node (required)
@type       name:   C{str}

@keyword    size:   The size of resources allocated to this node.
                    (required)
@type       size:   L{NodeSize}

@keyword    image:  OS Image to boot on node. (required)
@type       image:  L{NodeImage}

@keyword    location: Which data center to create a node in. If empty,
                      undefined behavoir will be selected. (optional)
@type       location: L{NodeLocation}

@keyword    auth:   Initial authentication information for the node
                    (optional)
@type       auth:   L{NodeAuthSSHKey} or L{NodeAuthPassword}

@return: The newly created node.
@rtype: L{Node}
def destroy_node(self, node): (source)
Destroy a node.

Depending upon the provider, this may destroy all data associated with
the node, including backups.

@param node: The node to be destroyed
@type node: L{Node}

@return: True if the destroy was successful, otherwise False
@rtype: C{bool}
def reboot_node(self, node): (source)
Reboot a node.

@param node: The node to be rebooted
@type node: L{Node}

@return: True if the reboot was successful, otherwise False
@rtype: C{bool}
def ex_list_disk_offerings(self): (source)
Fetch a list of all available disk offerings.

@rtype: C{list} of L{CloudStackDiskOffering}
def create_volume(self, size, name, location, snapshot=None): (source)
Create a new volume.

@param      size: Size of volume in gigabytes (required)
@type       size: C{int}

@keyword    name: Name of the volume to be created
@type       name: C{str}

@keyword    location: Which data center to create a volume in. If
                       empty, undefined behavoir will be selected.
                       (optional)
@type       location: L{NodeLocation}

@keyword    snapshot:  Name of snapshot from which to create the new
                       volume.  (optional)
@type       snapshot:  C{str}

@return: The newly created volume.
@rtype: L{StorageVolume}
def attach_volume(self, node, volume, device=None): (source)
Attaches volume to node.

@param      node: Node to attach volume to
@type       node: L{Node}

@param      volume: Volume to attach
@type       volume: L{StorageVolume}

@param      device: Where the device is exposed,
                    e.g. '/dev/sdb (optional)
@type       device: C{str}

@rtype: C{bool}
def detach_volume(self, volume): (source)
Detaches a volume from a node.

@param      volume: Volume to be detached
@type       volume: L{StorageVolume}

@rtype: C{bool}
def destroy_volume(self, volume): (source)
Destroys a storage volume.

@param      volume: Volume to be destroyed
@type       volume: L{StorageVolume}

@rtype: C{bool}
def ex_allocate_public_ip(self, node): (source)
"Allocate a public IP and bind it to a node.

@param      node: Node which should be used
@type       node: L{Node}

@rtype: L{CloudStackAddress}
def ex_release_public_ip(self, node, address): (source)
Release a public IP.

@param      node: Node which should be used
@type       node: L{Node}

@param      address: CloudStackAddress which should be used
@type       address: L{CloudStackAddress}

@rtype: C{bool}
def ex_add_ip_forwarding_rule(self, node, address, protocol, start_port, end_port=None): (source)
"Add a NAT/firewall forwarding rule.

@param      node: Node which should be used
@type       node: L{Node}

@param      address: CloudStackAddress which should be used
@type       address: L{CloudStackAddress}

@param      protocol: Protocol which should be used (TCP or UDP)
@type       protocol: C{str}

@param      start_port: Start port which should be used
@type       start_port: C{int}

@param end_port: End port which should be used
@type end_port: C{int}

@rtype: L{CloudStackForwardingRule}
def ex_delete_ip_forwarding_rule(self, node, rule): (source)
Remove a NAT/firewall forwarding rule.

@param      node: Node which should be used
@type       node: L{Node}

@param rule: Forwarding rule which should be used
@type rule: L{CloudStackForwardingRule}

@rtype: C{bool}
def ex_register_iso(self, name, url, location=None, **kwargs): (source)
Registers an existing ISO by URL.

@param      name: Name which should be used
@type       name: C{str}

@param      url: Url should be used
@type       url: C{str}

@param      location: Location which should be used
@type       location: L{NodeLocation}

@rtype: C{str}
API Documentation for libcloud, generated by pydoctor at 2012-11-19 11:53:43.