l.b.NodeDriver(object) : class documentation

Part of libcloud.base View Source View In Hierarchy

Known subclasses: libcloud.drivers.brightbox.BrightboxNodeDriver, libcloud.drivers.cloudsigma.CloudSigmaBaseNodeDriver, libcloud.drivers.dreamhost.DreamhostNodeDriver, libcloud.drivers.dummy.DummyNodeDriver, libcloud.drivers.ec2.EC2NodeDriver, libcloud.drivers.ecp.ECPNodeDriver, libcloud.drivers.elastichosts.ElasticHostsBaseNodeDriver, libcloud.drivers.gogrid.GoGridNodeDriver, libcloud.drivers.ibm_sbc.IBMNodeDriver, libcloud.drivers.linode.LinodeNodeDriver, libcloud.drivers.opennebula.OpenNebulaNodeDriver, libcloud.drivers.rackspace.RackspaceNodeDriver, libcloud.drivers.rimuhosting.RimuHostingNodeDriver, libcloud.drivers.slicehost.SlicehostNodeDriver, libcloud.drivers.softlayer.SoftLayerNodeDriver, libcloud.drivers.vcloud.VCloudNodeDriver, libcloud.drivers.voxel.VoxelNodeDriver, libcloud.drivers.vpsnet.VPSNetNodeDriver

A base NodeDriver class to derive from

This class is always subclassed by a specific driver. For examples of base behavior of most functions (except deploy node) see the dummy driver.

Method __init__
Method create_node Create a new node instance.
Method destroy_node Destroy a node.
Method reboot_node Reboot a node. @return: bool True if the reboot was successful, otherwise False
Method list_nodes List all nodes @return: list of Node objects
Method list_images List images on a provider @return: list of NodeImage objects
Method list_sizes List sizes on a provider @return: list of NodeSize objects
Method list_locations List data centers for a provider @return: list of NodeLocation objects
Method deploy_node Create a new node, and start deployment.
def __init__(self, key, secret=None, secure=True, host=None, port=None): (source)
ParameterskeyAPI key or username to used (type: str)
secretSecret password to be used (type: str)
secureWeither to use HTTPS or HTTP. Note: Some providers only support HTTPS, and it is on by default. (type: bool)
hostOverride hostname used for connections. (type: str)
portOverride port used for connections. (type: int)
def create_node(self, **kwargs): (source)
Create a new node instance.
ParametersnameString with a name for this new node (required) (type: str)
sizeThe size of resources allocated to this node. (required) (type: NodeSize)
imageOS Image to boot on node. (required) (type: NodeImage)
locationWhich data center to create a node in. If empty, undefined behavoir will be selected. (optional) (type: NodeLocation)
authInitial authentication information for the node (optional) (type: NodeAuthSSHKey or NodeAuthPassword)
ReturnsThe newly created 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.

Returnsbool True if the destroy was successful, otherwise False
def reboot_node(self, node): (source)
Reboot a node.
Returnsbool True if the reboot was successful, otherwise False
def list_nodes(self): (source)
List all nodes
Returnslist of Node objects
def list_images(self, location=None): (source)
List images on a provider
Returnslist of NodeImage objects
def list_sizes(self, location=None): (source)
List sizes on a provider
Returnslist of NodeSize objects
def list_locations(self): (source)
List data centers for a provider
Returnslist of NodeLocation objects
def deploy_node(self, **kwargs): (source)
Create a new node, and start deployment.

Depends on a Provider Driver supporting either using a specific password or returning a generated password.

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.

ParametersdeployDeployment to run once machine is online and availble to SSH. (type: Deployment)
ssh_usernameOptional name of the account which is used when connecting to SSH server (default is root) (type: str)
ssh_portOptional SSH server port (default is 22) (type: int

See NodeDriver.create_node for more keyword args.

>>> from libcloud.drivers.dummy import DummyNodeDriver
>>> from libcloud.deployment import ScriptDeployment, MultiStepDeployment
>>> from libcloud.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:
...         node = 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.

)
API Documentation for libcloud, generated by pydoctor at 2012-07-15 18:44:49.