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__ @inherits: L{NodeDriver.__init__}
Method list_images List images on a provider
Method list_locations List data centers for a provider
Method list_nodes @inherits: L{NodeDriver.list_nodes} @rtype: C{list} of L{CloudStackNode}
Method list_sizes List sizes on a provider
Method create_node @inherits: L{NodeDriver.create_node} @rtype: L{CloudStackNode}
Method destroy_node @inherits: L{NodeDriver.reboot_node} @type node: L{CloudStackNode}
Method reboot_node @inherits: L{NodeDriver.reboot_node} @type node: L{CloudStackNode}
Method ex_list_disk_offerings Fetch a list of all available disk offerings.
Method create_volume Create a new volume.
Method attach_volume @inherits: L{NodeDriver.attach_volume} @type node: L{CloudStackNode}
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 the given nodes are fully booted and have an IP address assigned.
Method _wait_until_running Undocumented
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)
@inherits: L{NodeDriver.__init__}

@param    host: The host where the API can be reached. (required)
@type     host: C{str}

@param    path: The host where the API can be reached. (required)
@type     path: C{str}
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)
@inherits: L{NodeDriver.list_nodes}
@rtype: C{list} of L{CloudStackNode}
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)
@inherits: L{NodeDriver.create_node}
@rtype: L{CloudStackNode}
def destroy_node(self, node): (source)
@inherits: L{NodeDriver.reboot_node}
@type node: L{CloudStackNode}
def reboot_node(self, node): (source)
@inherits: L{NodeDriver.reboot_node}
@type node: L{CloudStackNode}
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)
@inherits: L{NodeDriver.attach_volume}
@type node: L{CloudStackNode}
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{CloudStackNode}

@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{CloudStackNode}

@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{CloudStackNode}

@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{CloudStackNode}

@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 2013-02-18 10:41:20.