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. |
@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}
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}
List data centers for a provider @return: list of node location objects @rtype: C{list} of L{NodeLocation}
@inherits: L{NodeDriver.list_nodes} @rtype: C{list} of L{CloudStackNode}
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}
@inherits: L{NodeDriver.create_node} @rtype: L{CloudStackNode}
@inherits: L{NodeDriver.reboot_node} @type node: L{CloudStackNode}
@inherits: L{NodeDriver.reboot_node} @type node: L{CloudStackNode}
Fetch a list of all available disk offerings. @rtype: C{list} of L{CloudStackDiskOffering}
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}
@inherits: L{NodeDriver.attach_volume} @type node: L{CloudStackNode}
Detaches a volume from a node. @param volume: Volume to be detached @type volume: L{StorageVolume} @rtype: C{bool}
Destroys a storage volume. @param volume: Volume to be destroyed @type volume: L{StorageVolume} @rtype: C{bool}
"Allocate a public IP and bind it to a node. @param node: Node which should be used @type node: L{CloudStackNode} @rtype: L{CloudStackAddress}
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}
"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}
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}
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}