You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2013/09/28 13:17:47 UTC
[5/6] Migrate API docstrings to Sphinx format.
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/cloudstack.py b/libcloud/compute/drivers/cloudstack.py
index 8d0306e..c8bef98 100644
--- a/libcloud/compute/drivers/cloudstack.py
+++ b/libcloud/compute/drivers/cloudstack.py
@@ -147,11 +147,11 @@ class CloudStackNetwork(object):
class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""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
+ :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}"""
+ :type async_poll_frequency: ``int``"""
name = 'CloudStack'
api_name = 'cloudstack'
@@ -173,13 +173,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
def __init__(self, key, secret=None, secure=True, host=None,
path=None, port=None, *args, **kwargs):
"""
- @inherits: L{NodeDriver.__init__}
+ @inherits: :class:`NodeDriver.__init__`
- @param host: The host where the API can be reached. (required)
- @type host: C{str}
+ :param host: The host where the API can be reached. (required)
+ :type host: ``str``
- @param path: The host where the API can be reached. (required)
- @type path: C{str}
+ :param path: The host where the API can be reached. (required)
+ :type path: ``str``
"""
host = host if host else self.host
@@ -218,7 +218,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
def list_locations(self):
"""
- @rtype C{list} of L{NodeLocation}
+ :rtype ``list`` of :class:`NodeLocation`
"""
locs = self._sync_request('listZones')
locations = []
@@ -228,8 +228,8 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
def list_nodes(self):
"""
- @inherits: L{NodeDriver.list_nodes}
- @rtype: C{list} of L{CloudStackNode}
+ @inherits: :class:`NodeDriver.list_nodes`
+ :rtype: ``list`` of :class:`CloudStackNode`
"""
vms = self._sync_request('listVirtualMachines')
addrs = self._sync_request('listPublicIpAddresses')
@@ -321,7 +321,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
def list_sizes(self, location=None):
"""
- @rtype C{list} of L{NodeSize}
+ :rtype ``list`` of :class:`NodeSize`
"""
szs = self._sync_request('listServiceOfferings')
sizes = []
@@ -334,22 +334,22 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Create a new node
- @inherits: L{NodeDriver.create_node}
+ @inherits: :class:`NodeDriver.create_node`
- @keyword ex_keyname: Name of existing keypair
- @type ex_keyname: C{str}
+ :keyword ex_keyname: Name of existing keypair
+ :type ex_keyname: ``str``
- @keyword ex_userdata: String containing user data
- @type ex_userdata: C{str}
+ :keyword ex_userdata: String containing user data
+ :type ex_userdata: ``str``
- @keyword networks: The server is launched into a set of Networks.
- @type networks: L{CloudStackNetwork}
+ :keyword networks: The server is launched into a set of Networks.
+ :type networks: :class:`CloudStackNetwork`
- @keyword ex_security_groups: List of security groups to assign to
+ :keyword ex_security_groups: List of security groups to assign to
the node
- @type ex_security_groups: C{list} of C{str}
+ :type ex_security_groups: ``list`` of ``str``
- @rtype: L{CloudStackNode}
+ :rtype: :class:`CloudStackNode`
"""
server_params = self._create_args_to_params(None, **kwargs)
@@ -431,20 +431,20 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
def destroy_node(self, node):
"""
- @inherits: L{NodeDriver.reboot_node}
- @type node: L{CloudStackNode}
+ @inherits: :class:`NodeDriver.reboot_node`
+ :type node: :class:`CloudStackNode`
- @rtype: C{boolean}
+ :rtype: ``bool``
"""
res = self._async_request('destroyVirtualMachine', id=node.id)
return True
def reboot_node(self, node):
"""
- @inherits: L{NodeDriver.reboot_node}
- @type node: L{CloudStackNode}
+ @inherits: :class:`NodeDriver.reboot_node`
+ :type node: :class:`CloudStackNode`
- @rtype: C{boolean}
+ :rtype: ``bool``
"""
res = self._async_request('rebootVirtualMachine', id=node.id)
return True
@@ -453,16 +453,16 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Starts/Resumes a stopped virtual machine
- @type node: L{CloudStackNode}
+ :type node: :class:`CloudStackNode`
- @param id: The ID of the virtual machine (required)
- @type id: C{uuid}
+ :param id: The ID of the virtual machine (required)
+ :type id: ``str``
- @param hostid: destination Host ID to deploy the VM to
+ :param hostid: destination Host ID to deploy the VM to
parameter available for root admin only
- @type hostid: C{uuid}
+ :type hostid: ``str``
- @rtype C{str}
+ :rtype ``str``
"""
res = self._async_request('startVirtualMachine', id=node.id)
return res['virtualmachine']['state']
@@ -471,18 +471,18 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Stops/Suspends a running virtual machine
- @type node: L{CloudStackNode}
+ :type node: :class:`CloudStackNode`
- @param id: The ID of the virtual machine
- @type id: C{uuid}
+ :param id: The ID of the virtual machine
+ :type id: ``str``
- @param forced: Force stop the VM
+ :param forced: Force stop the VM
(vm is marked as Stopped even when command
fails to be send to the backend).
The caller knows the VM is stopped.
- @type forced: C{bool}
+ :type forced: ``bool``
- @rtype C{str}
+ :rtype ``str``
"""
res = self._async_request('stopVirtualMachine', id=node.id)
return res['virtualmachine']['state']
@@ -491,7 +491,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Fetch a list of all available disk offerings.
- @rtype: C{list} of L{CloudStackDiskOffering}
+ :rtype: ``list`` of :class:`CloudStackDiskOffering`
"""
diskOfferings = []
@@ -511,7 +511,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
List the available networks
- @rtype C{list} of L{CloudStackNetwork}
+ :rtype ``list`` of :class:`CloudStackNetwork`
"""
nets = self._sync_request('listNetworks')['network']
@@ -563,17 +563,17 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
def destroy_volume(self, volume):
"""
- @rtype: C{boolean}
+ :rtype: ``bool``
"""
self._sync_request('deleteVolume', id=volume.id)
return True
def attach_volume(self, node, volume, device=None):
"""
- @inherits: L{NodeDriver.attach_volume}
- @type node: L{CloudStackNode}
+ @inherits: :class:`NodeDriver.attach_volume`
+ :type node: :class:`CloudStackNode`
- @rtype: C{boolean}
+ :rtype: ``bool``
"""
# TODO Add handling for device name
self._async_request('attachVolume', id=volume.id,
@@ -582,7 +582,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
def detach_volume(self, volume):
"""
- @rtype: C{boolean}
+ :rtype: ``bool``
"""
self._async_request('detachVolume', id=volume.id)
return True
@@ -591,7 +591,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
List all volumes
- @rtype: C{list} of L{StorageVolume}
+ :rtype: ``list`` of :class:`StorageVolume`
"""
list_volumes = []
volumes = self._sync_request('listVolumes')
@@ -606,7 +606,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Lists all Public IP Addresses.
- @rtype: C{list} of L{CloudStackAddress}
+ :rtype: ``list`` of :class:`CloudStackAddress`
"""
res = self._sync_request('listPublicIpAddresses')
ips = []
@@ -618,10 +618,10 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Allocate a public IP.
- @param location: Zone
- @type location: L{NodeLocation}
+ :param location: Zone
+ :type location: :class:`NodeLocation`
- @rtype: L{CloudStackAddress}
+ :rtype: :class:`CloudStackAddress`
"""
if location is None:
location = self.list_locations()[0]
@@ -635,10 +635,10 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Release a public IP.
- @param address: CloudStackAddress which should be used
- @type address: L{CloudStackAddress}
+ :param address: CloudStackAddress which should be used
+ :type address: :class:`CloudStackAddress`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
res = self._async_request('disassociateIpAddress', id=address.id)
return res['success']
@@ -647,7 +647,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Lists all Port Forwarding Rules
- @rtype: C{list} of L{CloudStackPortForwardingRule}
+ :rtype: ``list`` of :class:`CloudStackPortForwardingRule`
"""
rules = []
result = self._sync_request('listPortForwardingRules')
@@ -675,22 +675,22 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Creates a Port Forwarding Rule, used for Source NAT
- @param address: IP address of the Source NAT
- @type address: L{CloudStackAddress}
+ :param address: IP address of the Source NAT
+ :type address: :class:`CloudStackAddress`
- @param private_port: Port of the virtual machine
- @type private_port: C{int}
+ :param private_port: Port of the virtual machine
+ :type private_port: ``int``
- @param protocol: Protocol of the rule
- @type protocol: C{str}
+ :param protocol: Protocol of the rule
+ :type protocol: ``str``
- @param public_port: Public port on the Source NAT address
- @type public_port: C{int}
+ :param public_port: Public port on the Source NAT address
+ :type public_port: ``int``
- @param node: The virtual machine
- @type node: L{CloudStackNode}
+ :param node: The virtual machine
+ :type node: :class:`CloudStackNode`
- @rtype: L{CloudStackPortForwardingRule}
+ :rtype: :class:`CloudStackPortForwardingRule`
"""
args = {
'ipaddressid': address.id,
@@ -717,13 +717,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Remove a Port forwarding rule.
- @param node: Node used in the rule
- @type node: L{CloudStackNode}
+ :param node: Node used in the rule
+ :type node: :class:`CloudStackNode`
- @param rule: Forwarding rule which should be used
- @type rule: L{CloudStackPortForwardingRule}
+ :param rule: Forwarding rule which should be used
+ :type rule: :class:`CloudStackPortForwardingRule`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
node.extra['port_forwarding_rules'].remove(rule)
@@ -736,22 +736,22 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
"Add a NAT/firewall forwarding rule.
- @param node: Node which should be used
- @type node: L{CloudStackNode}
+ :param node: Node which should be used
+ :type node: :class:`CloudStackNode`
- @param address: CloudStackAddress which should be used
- @type address: L{CloudStackAddress}
+ :param address: CloudStackAddress which should be used
+ :type address: :class:`CloudStackAddress`
- @param protocol: Protocol which should be used (TCP or UDP)
- @type protocol: C{str}
+ :param protocol: Protocol which should be used (TCP or UDP)
+ :type protocol: ``str``
- @param start_port: Start port which should be used
- @type start_port: C{int}
+ :param start_port: Start port which should be used
+ :type start_port: ``int``
- @param end_port: End port which should be used
- @type end_port: C{int}
+ :param end_port: End port which should be used
+ :type end_port: ``int``
- @rtype: L{CloudStackForwardingRule}
+ :rtype: :class:`CloudStackForwardingRule`
"""
protocol = protocol.upper()
@@ -777,13 +777,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Remove a NAT/firewall forwarding rule.
- @param node: Node which should be used
- @type node: L{CloudStackNode}
+ :param node: Node which should be used
+ :type node: :class:`CloudStackNode`
- @param rule: Forwarding rule which should be used
- @type rule: L{CloudStackForwardingRule}
+ :param rule: Forwarding rule which should be used
+ :type rule: :class:`CloudStackForwardingRule`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
node.extra['ip_forwarding_rules'].remove(rule)
@@ -794,48 +794,48 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
List Registered SSH Key Pairs
- @param projectid: list objects by project
- @type projectid: C{uuid}
+ :param projectid: list objects by project
+ :type projectid: ``str``
- @param page: The page to list the keypairs from
- @type page: C{int}
+ :param page: The page to list the keypairs from
+ :type page: ``int``
- @param keyword: List by keyword
- @type keyword: C{str}
+ :param keyword: List by keyword
+ :type keyword: ``str``
- @param listall: If set to false, list only resources
+ :param listall: If set to false, list only resources
belonging to the command's caller;
if set to true - list resources that
the caller is authorized to see.
Default value is false
- @type listall: C{bool}
+ :type listall: ``bool``
- @param pagesize: The number of results per page
- @type pagesize: C{int}
+ :param pagesize: The number of results per page
+ :type pagesize: ``int``
- @param account: List resources by account.
+ :param account: List resources by account.
Must be used with the domainId parameter
- @type account: C{str}
+ :type account: ``str``
- @param isrecursive: Defaults to false, but if true,
+ :param isrecursive: Defaults to false, but if true,
lists all resources from
the parent specified by the
domainId till leaves.
- @type isrecursive: C{bool}
+ :type isrecursive: ``bool``
- @param fingerprint: A public key fingerprint to look for
- @type fingerprint: C{str}
+ :param fingerprint: A public key fingerprint to look for
+ :type fingerprint: ``str``
- @param name: A key pair name to look for
- @type name: C{str}
+ :param name: A key pair name to look for
+ :type name: ``str``
- @param domainid: List only resources belonging to
+ :param domainid: List only resources belonging to
the domain specified
- @type domainid: C{uuid}
+ :type domainid: ``str``
- @return: A list of keypair dictionaries
- @rtype: L{dict}
+ :return: A list of keypair dictionaries
+ :rtype: :class:`dict`
"""
extra_args = kwargs.copy()
@@ -846,23 +846,23 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Creates a SSH KeyPair, returns fingerprint and private key
- @param name: Name of the keypair (required)
- @type name: C{str}
+ :param name: Name of the keypair (required)
+ :type name: ``str``
- @param projectid: An optional project for the ssh key
- @type projectid: C{str}
+ :param projectid: An optional project for the ssh key
+ :type projectid: ``str``
- @param domainid: An optional domainId for the ssh key.
+ :param domainid: An optional domainId for the ssh key.
If the account parameter is used,
domainId must also be used.
- @type domainid: C{str}
+ :type domainid: ``str``
- @param account: An optional account for the ssh key.
+ :param account: An optional account for the ssh key.
Must be used with domainId.
- @type account: C{str}
+ :type account: ``str``
- @return: A keypair dictionary
- @rtype: C{dict}
+ :return: A keypair dictionary
+ :rtype: ``dict``
"""
extra_args = kwargs.copy()
@@ -878,21 +878,21 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Deletes an existing SSH KeyPair
- @param name: Name of the keypair (required)
- @type name: C{str}
+ :param name: Name of the keypair (required)
+ :type name: ``str``
- @param projectid: The project associated with keypair
- @type projectid: C{uuid}
+ :param projectid: The project associated with keypair
+ :type projectid: ``str``
- @param domainid : The domain ID associated with the keypair
- @type domainid: C{uuid}
+ :param domainid : The domain ID associated with the keypair
+ :type domainid: ``str``
- @param account : The account associated with the keypair.
+ :param account : The account associated with the keypair.
Must be used with the domainId parameter.
- @type account: C{str}
+ :type account: ``str``
- @return: True of False based on success of Keypair deletion
- @rtype: C{bool}
+ :return: True of False based on success of Keypair deletion
+ :rtype: ``bool``
"""
extra_args = kwargs.copy()
@@ -904,13 +904,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Imports a new public key where the public key is passed in as a string
- @param name: The name of the public key to import.
- @type name: C{str}
+ :param name: The name of the public key to import.
+ :type name: ``str``
- @param key_material: The contents of a public key file.
- @type key_material: C{str}
+ :param key_material: The contents of a public key file.
+ :type key_material: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
res = self._sync_request('registerSSHKeyPair', name=name,
publickey=key_material)
@@ -923,13 +923,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Imports a new public key where the public key is passed via a filename
- @param name: The name of the public key to import.
- @type name: C{str}
+ :param name: The name of the public key to import.
+ :type name: ``str``
- @param keyfile: The filename with path of the public key to import.
- @type keyfile: C{str}
+ :param keyfile: The filename with path of the public key to import.
+ :type keyfile: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
with open(os.path.expanduser(keyfile)) as fh:
content = fh.read()
@@ -939,50 +939,50 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Lists Security Groups
- @param domainid: List only resources belonging to the domain specified
- @type domainid: C{uuid}
+ :param domainid: List only resources belonging to the domain specified
+ :type domainid: ``str``
- @param account: List resources by account. Must be used with
+ :param account: List resources by account. Must be used with
the domainId parameter.
- @type account: C{str}
+ :type account: ``str``
- @param listall: If set to false, list only resources belonging to
+ :param listall: If set to false, list only resources belonging to
the command's caller; if set to true
list resources that the caller is
authorized to see.
Default value is false
- @type listall: C{bool}
+ :type listall: ``bool``
- @param pagesize: Number of entries per page
- @type pagesize: C{int}
+ :param pagesize: Number of entries per page
+ :type pagesize: ``int``
- @param keyword: List by keyword
- @type keyword: C{str}
+ :param keyword: List by keyword
+ :type keyword: ``str``
- @param tags: List resources by tags (key/value pairs)
- @type tags: C{dict}
+ :param tags: List resources by tags (key/value pairs)
+ :type tags: ``dict``
- @param id: list the security group by the id provided
- @type id: C{uuid}
+ :param id: list the security group by the id provided
+ :type id: ``str``
- @param securitygroupname: lists security groups by name
- @type securitygroupname: C{str}
+ :param securitygroupname: lists security groups by name
+ :type securitygroupname: ``str``
- @param virtualmachineid: lists security groups by virtual machine id
- @type virtualmachineid: C{uuid}
+ :param virtualmachineid: lists security groups by virtual machine id
+ :type virtualmachineid: ``str``
- @param projectid: list objects by project
- @type projectid: C{uuid}
+ :param projectid: list objects by project
+ :type projectid: ``str``
- @param isrecursive: (boolean) defaults to false, but if true,
+ :param isrecursive: (boolean) defaults to false, but if true,
lists all resources from the parent
specified by the domainId till leaves.
- @type isrecursive: C{bool}
+ :type isrecursive: ``bool``
- @param page: (integer)
- @type page: C{int}
+ :param page: (integer)
+ :type page: ``int``
- @rtype C{list}
+ :rtype ``list``
"""
extra_args = kwargs
return self._sync_request('listSecurityGroups',
@@ -992,25 +992,25 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Creates a new Security Group
- @param name: name of the security group (required)
- @type name: C{str}
+ :param name: name of the security group (required)
+ :type name: ``str``
- @param account: An optional account for the security group.
+ :param account: An optional account for the security group.
Must be used with domainId.
- @type account: C{str}
+ :type account: ``str``
- @param domainid: An optional domainId for the security group.
+ :param domainid: An optional domainId for the security group.
If the account parameter is used,
domainId must also be used.
- @type domainid: C{uuid}
+ :type domainid: ``str``
- @param description: The description of the security group
- @type description: C{str}
+ :param description: The description of the security group
+ :type description: ``str``
- @param projectid: Deploy vm for the project
- @type projectid: C{uuid}
+ :param projectid: Deploy vm for the project
+ :type projectid: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
extra_args = kwargs.copy()
@@ -1026,26 +1026,26 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Deletes a given Security Group
- @param domainid: The domain ID of account owning
+ :param domainid: The domain ID of account owning
the security group
- @type domainid: C{uuid}
+ :type domainid: ``str``
- @param id: The ID of the security group.
+ :param id: The ID of the security group.
Mutually exclusive with name parameter
- @type id: C{uuid}
+ :type id: ``str``
- @param name: The ID of the security group.
+ :param name: The ID of the security group.
Mutually exclusive with id parameter
- @type name: C{str}
+ :type name: ``str``
- @param account: The account of the security group.
+ :param account: The account of the security group.
Must be specified with domain ID
- @type account: C{str}
+ :type account: ``str``
- @param projectid: The project of the security group
- @type projectid: C{uuid}
+ :param projectid: The project of the security group
+ :type projectid: ``str``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
return self._sync_request('deleteSecurityGroup', name=name)['success']
@@ -1056,50 +1056,50 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Creates a new Security Group Ingress rule
- @param domainid: An optional domainId for the security group.
+ :param domainid: An optional domainId for the security group.
If the account parameter is used,
domainId must also be used.
- @type domainid: C{uuid}
+ :type domainid: ``str``
- @param startport: Start port for this ingress rule
- @type startport: C{int}
+ :param startport: Start port for this ingress rule
+ :type startport: ``int``
- @param securitygroupid: The ID of the security group.
+ :param securitygroupid: The ID of the security group.
Mutually exclusive with securityGroupName
parameter
- @type securitygroupid: C{uuid}
+ :type securitygroupid: ``str``
- @param cidrlist: The cidr list associated
- @type cidrlist: C{list}
+ :param cidrlist: The cidr list associated
+ :type cidrlist: ``list``
- @param usersecuritygrouplist: user to security group mapping
- @type usersecuritygrouplist: C{map}
+ :param usersecuritygrouplist: user to security group mapping
+ :type usersecuritygrouplist: ``dict``
- @param securitygroupname: The name of the security group.
+ :param securitygroupname: The name of the security group.
Mutually exclusive with
securityGroupName parameter
- @type securitygroupname: C{str}
+ :type securitygroupname: ``str``
- @param account: An optional account for the security group.
+ :param account: An optional account for the security group.
Must be used with domainId.
- @type account: C{str}
+ :type account: ``str``
- @param icmpcode: Error code for this icmp message
- @type icmpcode: C{int}
+ :param icmpcode: Error code for this icmp message
+ :type icmpcode: ``int``
- @param protocol: TCP is default. UDP is the other supported protocol
- @type protocol: C{str}
+ :param protocol: TCP is default. UDP is the other supported protocol
+ :type protocol: ``str``
- @param icmptype: type of the icmp message being sent
- @type icmptype: C{int}
+ :param icmptype: type of the icmp message being sent
+ :type icmptype: ``int``
- @param projectid: An optional project of the security group
- @type projectid: C{uuid}
+ :param projectid: An optional project of the security group
+ :type projectid: ``str``
- @param endport: end port for this ingress rule
- @type endport: C{int}
+ :param endport: end port for this ingress rule
+ :type endport: ``int``
- @rtype: C{list}
+ :rtype: ``list``
"""
protocol = protocol.upper()
@@ -1122,16 +1122,16 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
"""
Registers an existing ISO by URL.
- @param name: Name which should be used
- @type name: C{str}
+ :param name: Name which should be used
+ :type name: ``str``
- @param url: Url should be used
- @type url: C{str}
+ :param url: Url should be used
+ :type url: ``str``
- @param location: Location which should be used
- @type location: L{NodeLocation}
+ :param location: Location which should be used
+ :type location: :class:`NodeLocation`
- @rtype: C{str}
+ :rtype: ``str``
"""
if location is None:
location = self.list_locations()[0]
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/digitalocean.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/digitalocean.py b/libcloud/compute/drivers/digitalocean.py
index 09ace5f..426b019 100644
--- a/libcloud/compute/drivers/digitalocean.py
+++ b/libcloud/compute/drivers/digitalocean.py
@@ -57,7 +57,7 @@ class DigitalOceanConnection(ConnectionUserAndKey):
"""
Add parameters that are necessary for every request
- This method adds C{api_key} and C{api_responseFormat} to
+ This method adds ``client_id`` and ``api_key`` to
the request.
"""
params['client_id'] = self.user_id
@@ -101,12 +101,12 @@ class DigitalOceanNodeDriver(NodeDriver):
"""
Create a node.
- @keyword ex_ssh_key_ids: A list of ssh key ids which will be added
+ :keyword ex_ssh_key_ids: A list of ssh key ids which will be added
to the server. (optional)
- @type ex_ssh_key_ids: C{list} of C{str}
+ :type ex_ssh_key_ids: ``list`` of ``str``
- @return: The newly created node.
- @rtype: L{Node}
+ :return: The newly created node.
+ :rtype: :class:`Node`
"""
params = {'name': name, 'size_id': size.id, 'image_id': image.id,
'region_id': location.id}
@@ -129,8 +129,8 @@ class DigitalOceanNodeDriver(NodeDriver):
"""
List all the available SSH keys.
- @return: Available SSH keys.
- @rtype: C{list} of L{SSHKey}
+ :return: Available SSH keys.
+ :rtype: ``list`` of :class:`SSHKey`
"""
data = self.connection.request('/ssh_keys').object['ssh_keys']
return list(map(self._to_ssh_key, data))
@@ -139,11 +139,11 @@ class DigitalOceanNodeDriver(NodeDriver):
"""
Create a new SSH key.
- @param name: Key name (required)
- @type name: C{str}
+ :param name: Key name (required)
+ :type name: ``str``
- @param name: Valid public key string (required)
- @type name: C{str}
+ :param name: Valid public key string (required)
+ :type name: ``str``
"""
params = {'name': name, 'ssh_pub_key': ssh_key_pub}
data = self.connection.request('/ssh_keys/new/', method='GET',
@@ -155,8 +155,8 @@ class DigitalOceanNodeDriver(NodeDriver):
"""
Delete an existing SSH key.
- @param key_id: SSH key id (required)
- @type key_id: C{str}
+ :param key_id: SSH key id (required)
+ :type key_id: ``str``
"""
res = self.connection.request('/ssh_keys/%s/destroy/' % (key_id))
return res.status == httplib.OK
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/dreamhost.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dreamhost.py b/libcloud/compute/drivers/dreamhost.py
index 6322a43..d0a2396 100644
--- a/libcloud/compute/drivers/dreamhost.py
+++ b/libcloud/compute/drivers/dreamhost.py
@@ -135,10 +135,10 @@ class DreamhostNodeDriver(NodeDriver):
def create_node(self, **kwargs):
"""Create a new Dreamhost node
- @inherits: L{NodeDriver.create_node}
+ @inherits: :class:`NodeDriver.create_node`
- @keyword ex_movedata: Copy all your existing users to this new PS
- @type ex_movedata: C{str}
+ :keyword ex_movedata: Copy all your existing users to this new PS
+ :type ex_movedata: ``str``
"""
size = kwargs['size'].ram
params = {
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/dummy.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dummy.py b/libcloud/compute/drivers/dummy.py
index 1241098..3c92813 100644
--- a/libcloud/compute/drivers/dummy.py
+++ b/libcloud/compute/drivers/dummy.py
@@ -69,10 +69,10 @@ class DummyNodeDriver(NodeDriver):
def __init__(self, creds):
"""
- @param creds: Credentials
- @type creds: C{str}
+ :param creds: Credentials
+ :type creds: ``str``
- @rtype: C{None}
+ :rtype: ``None``
"""
self.creds = creds
try:
@@ -115,9 +115,9 @@ class DummyNodeDriver(NodeDriver):
def get_uuid(self, unique_field=None):
"""
- @param unique_field: Unique field
- @type unique_field: C{bool}
- @rtype: L{UUID}
+ :param unique_field: Unique field
+ :type unique_field: ``bool``
+ :rtype: :class:`UUID`
"""
return str(uuid.uuid4())
@@ -148,7 +148,7 @@ class DummyNodeDriver(NodeDriver):
>>> sorted([node.name for node in driver.list_nodes()])
['dummy-1', 'dummy-2', 'dummy-3']
- @inherits: L{NodeDriver.list_nodes}
+ @inherits: :class:`NodeDriver.list_nodes`
"""
return self.nl
@@ -172,7 +172,7 @@ class DummyNodeDriver(NodeDriver):
Please note, dummy nodes never recover from the reboot.
- @inherits: L{NodeDriver.reboot_node}
+ @inherits: :class:`NodeDriver.reboot_node`
"""
node.state = NodeState.REBOOTING
@@ -195,7 +195,7 @@ class DummyNodeDriver(NodeDriver):
>>> [node for node in driver.list_nodes() if node.name == 'dummy-1']
[]
- @inherits: L{NodeDriver.destroy_node}
+ @inherits: :class:`NodeDriver.destroy_node`
"""
node.state = NodeState.TERMINATED
@@ -211,7 +211,7 @@ class DummyNodeDriver(NodeDriver):
>>> sorted([image.name for image in driver.list_images()])
['Slackware 4', 'Ubuntu 9.04', 'Ubuntu 9.10']
- @inherits: L{NodeDriver.list_images}
+ @inherits: :class:`NodeDriver.list_images`
"""
return [
NodeImage(id=1, name="Ubuntu 9.10", driver=self),
@@ -228,7 +228,7 @@ class DummyNodeDriver(NodeDriver):
>>> sorted([size.ram for size in driver.list_sizes()])
[128, 512, 4096, 8192]
- @inherits: L{NodeDriver.list_images}
+ @inherits: :class:`NodeDriver.list_images`
"""
return [
@@ -271,7 +271,7 @@ class DummyNodeDriver(NodeDriver):
>>> sorted([loc.name + " in " + loc.country for loc in driver.list_locations()])
['Island Datacenter in FJ', 'London Loft in GB', "Paul's Room in US"]
- @inherits: L{NodeDriver.list_locations}
+ @inherits: :class:`NodeDriver.list_locations`
"""
return [
NodeLocation(id=1,
@@ -307,7 +307,7 @@ class DummyNodeDriver(NodeDriver):
>>> sorted([node.name for node in driver.list_nodes()])
['dummy-1', 'dummy-2', 'dummy-4']
- @inherits: L{NodeDriver.create_node}
+ @inherits: :class:`NodeDriver.create_node`
"""
l = len(self.nl) + 1
n = Node(id=l,
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 58471aa..9d45fb7 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -612,10 +612,10 @@ class BaseEC2NodeDriver(NodeDriver):
nodes that should be returned. Only the nodes
with the corresponding node ids will be returned.
- @param ex_node_ids: List of C{node.id}
- @type ex_node_ids: C{list} of C{str}
+ :param ex_node_ids: List of ``node.id``
+ :type ex_node_ids: ``list`` of ``str``
- @rtype: C{list} of L{Node}
+ :rtype: ``list`` of :class:`Node`
"""
params = {'Action': 'DescribeInstances'}
if ex_node_ids:
@@ -656,10 +656,10 @@ class BaseEC2NodeDriver(NodeDriver):
images that should be returned. Only the images
with the corresponding image ids will be returned.
- @param ex_image_ids: List of C{NodeImage.id}
- @type ex_image_ids: C{list} of C{str}
+ :param ex_image_ids: List of ``NodeImage.id``
+ :type ex_image_ids: ``list`` of ``str``
- @rtype: C{list} of L{NodeImage}
+ :rtype: ``list`` of :class:`NodeImage`
"""
params = {'Action': 'DescribeImages'}
@@ -725,11 +725,11 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @param name: The name of the keypair to Create. This must be
+ :param name: The name of the keypair to Create. This must be
unique, otherwise an InvalidKeyPair.Duplicate exception is raised.
- @type name: C{str}
+ :type name: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
params = {
'Action': 'CreateKeyPair',
@@ -751,14 +751,14 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @param name: The name of the public key to import. This must be
+ :param name: The name of the public key to import. This must be
unique, otherwise an InvalidKeyPair.Duplicate exception is raised.
- @type name: C{str}
+ :type name: ``str``
- @param key_material: The contents of a public key file.
- @type key_material: C{str}
+ :param key_material: The contents of a public key file.
+ :type key_material: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
base64key = base64.b64encode(b(key_material))
@@ -784,14 +784,14 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @param name: The name of the public key to import. This must be
+ :param name: The name of the public key to import. This must be
unique, otherwise an InvalidKeyPair.Duplicate exception is raised.
- @type name: C{str}
+ :type name: ``str``
- @param keyfile: The filename with path of the public key to import.
- @type keyfile: C{str}
+ :param keyfile: The filename with path of the public key to import.
+ :type keyfile: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
with open(os.path.expanduser(keyfile)) as fh:
content = fh.read()
@@ -818,7 +818,7 @@ class BaseEC2NodeDriver(NodeDriver):
"""
Lists all the keypair names and fingerprints.
- @rtype: C{list} of C{dict}
+ :rtype: ``list`` of ``dict``
"""
params = {
'Action': 'DescribeKeyPairs'
@@ -845,7 +845,7 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @rtype: C{list} of C{str}
+ :rtype: ``list`` of ``str``
"""
return [k['keyName'] for k in self.ex_list_keypairs()]
@@ -861,10 +861,10 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @param name: The name of the keypair to describe.
- @type name: C{str}
+ :param name: The name of the keypair to describe.
+ :type name: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
params = {
@@ -889,7 +889,7 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @rtype: C{list} of C{str}
+ :rtype: ``list`` of ``str``
"""
params = {'Action': 'DescribeSecurityGroups'}
response = self.connection.request(self.path, params=params).object
@@ -909,15 +909,15 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @param name: The name of the security group to Create.
+ :param name: The name of the security group to Create.
This must be unique.
- @type name: C{str}
+ :type name: ``str``
- @param description: Human readable description of a Security
+ :param description: Human readable description of a Security
Group.
- @type description: C{str}
+ :type description: ``str``
- @rtype: C{str}
+ :rtype: ``str``
"""
params = {'Action': 'CreateSecurityGroup',
'GroupName': name,
@@ -931,22 +931,22 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @param name: The name of the security group to edit
- @type name: C{str}
+ :param name: The name of the security group to edit
+ :type name: ``str``
- @param from_port: The beginning of the port range to open
- @type from_port: C{str}
+ :param from_port: The beginning of the port range to open
+ :type from_port: ``str``
- @param to_port: The end of the port range to open
- @type to_port: C{str}
+ :param to_port: The end of the port range to open
+ :type to_port: ``str``
- @param cidr_ip: The ip to allow traffic for.
- @type cidr_ip: C{str}
+ :param cidr_ip: The ip to allow traffic for.
+ :type cidr_ip: ``str``
- @param protocol: tcp/udp/icmp
- @type protocol: C{str}
+ :param protocol: tcp/udp/icmp
+ :type protocol: ``str``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
params = {'Action': 'AuthorizeSecurityGroupIngress',
@@ -971,10 +971,10 @@ class BaseEC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @param name: The name of the security group to edit
- @type name: C{str}
+ :param name: The name of the security group to edit
+ :type name: ``str``
- @rtype: C{list} of C{str}
+ :rtype: ``list`` of ``str``
"""
results = []
@@ -1018,17 +1018,17 @@ class BaseEC2NodeDriver(NodeDriver):
def ex_list_availability_zones(self, only_available=True):
"""
- Return a list of L{ExEC2AvailabilityZone} objects for the
+ Return a list of :class:`ExEC2AvailabilityZone` objects for the
current region.
Note: This is an extension method and is only available for EC2
driver.
- @keyword only_available: If true, return only availability zones
+ :keyword only_available: If true, return only availability zones
with state 'available'
- @type only_available: C{str}
+ :type only_available: ``str``
- @rtype: C{list} of L{ExEC2AvailabilityZone}
+ :rtype: ``list`` of :class:`ExEC2AvailabilityZone`
"""
params = {'Action': 'DescribeAvailabilityZones'}
@@ -1066,11 +1066,11 @@ class BaseEC2NodeDriver(NodeDriver):
"""
Return a dictionary of tags for a resource (Node or StorageVolume).
- @param resource: resource which should be used
- @type resource: L{Node} or L{StorageVolume}
+ :param resource: resource which should be used
+ :type resource: :class:`Node` or :class:`StorageVolume`
- @return: dict Node tags
- @rtype: C{dict}
+ :return: dict Node tags
+ :rtype: ``dict``
"""
params = {'Action': 'DescribeTags',
'Filter.0.Name': 'resource-id',
@@ -1096,14 +1096,14 @@ class BaseEC2NodeDriver(NodeDriver):
"""
Create tags for a resource (Node or StorageVolume).
- @param resource: Resource to be tagged
- @type resource: L{Node} or L{StorageVolume}
+ :param resource: Resource to be tagged
+ :type resource: :class:`Node` or :class:`StorageVolume`
- @param tags: A dictionary or other mapping of strings to strings,
+ :param tags: A dictionary or other mapping of strings to strings,
associating tag names with tag values.
- @type tags: C{dict}
+ :type tags: ``dict``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
if not tags:
return
@@ -1124,14 +1124,14 @@ class BaseEC2NodeDriver(NodeDriver):
"""
Delete tags from a resource.
- @param resource: Resource to be tagged
- @type resource: L{Node} or L{StorageVolume}
+ :param resource: Resource to be tagged
+ :type resource: :class:`Node` or :class:`StorageVolume`
- @param tags: A dictionary or other mapping of strings to strings,
+ :param tags: A dictionary or other mapping of strings to strings,
specifying the tag names and tag values to be deleted.
- @type tags: C{dict}
+ :type tags: ``dict``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
if not tags:
return
@@ -1162,12 +1162,12 @@ class BaseEC2NodeDriver(NodeDriver):
Return all the Elastic IP addresses for this account
optionally, return only the allocated addresses
- @param only_allocated: If true, return only those addresses
+ :param only_allocated: If true, return only those addresses
that are associated with an instance
- @type only_allocated: C{str}
+ :type only_allocated: ``str``
- @return: list list of elastic ips for this particular account.
- @rtype: C{list} of C{str}
+ :return: list list of elastic ips for this particular account.
+ :rtype: ``list`` of ``str``
"""
params = {'Action': 'DescribeAddresses'}
@@ -1196,13 +1196,13 @@ class BaseEC2NodeDriver(NodeDriver):
"""
Associate an IP address with a particular node.
- @param node: Node instance
- @type node: L{Node}
+ :param node: Node instance
+ :type node: :class:`Node`
- @param elastic_ip_address: IP address which should be used
- @type elastic_ip_address: C{str}
+ :param elastic_ip_address: IP address which should be used
+ :type elastic_ip_address: ``str``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
params = {'Action': 'AssociateAddress'}
@@ -1215,12 +1215,12 @@ class BaseEC2NodeDriver(NodeDriver):
"""
Return Elastic IP addresses for all the nodes in the provided list.
- @param nodes: List of C{Node} instances
- @type nodes: C{list} of L{Node}
+ :param nodes: List of :class:`Node` instances
+ :type nodes: ``list`` of :class:`Node`
- @return: Dictionary where a key is a node ID and the value is a
+ :return: Dictionary where a key is a node ID and the value is a
list with the Elastic IP addresses associated with this node.
- @rtype: C{dict}
+ :rtype: ``dict``
"""
if not nodes:
return {}
@@ -1255,11 +1255,11 @@ class BaseEC2NodeDriver(NodeDriver):
"""
Return a list of Elastic IP addresses associated with this node.
- @param node: Node instance
- @type node: L{Node}
+ :param node: Node instance
+ :type node: :class:`Node`
- @return: list Elastic IP addresses attached to this node.
- @rtype: C{list} of C{str}
+ :return: list Elastic IP addresses attached to this node.
+ :rtype: ``list`` of ``str``
"""
node_elastic_ips = self.ex_describe_addresses([node])
return node_elastic_ips[node.id]
@@ -1269,14 +1269,14 @@ class BaseEC2NodeDriver(NodeDriver):
Modify node attributes.
A list of valid attributes can be found at http://goo.gl/gxcj8
- @param node: Node instance
- @type node: L{Node}
+ :param node: Node instance
+ :type node: :class:`Node`
- @param attributes: Dictionary with node attributes
- @type attributes: C{dict}
+ :param attributes: Dictionary with node attributes
+ :type attributes: ``dict``
- @return: True on success, False otherwise.
- @rtype: C{bool}
+ :return: True on success, False otherwise.
+ :rtype: ``bool``
"""
attributes = attributes or {}
attributes.update({'InstanceId': node.id})
@@ -1295,14 +1295,14 @@ class BaseEC2NodeDriver(NodeDriver):
Change the node size.
Note: Node must be turned of before changing the size.
- @param node: Node instance
- @type node: L{Node}
+ :param node: Node instance
+ :type node: :class:`Node`
- @param new_size: NodeSize intance
- @type new_size: L{NodeSize}
+ :param new_size: NodeSize intance
+ :type new_size: :class:`NodeSize`
- @return: True on success, False otherwise.
- @rtype: C{bool}
+ :return: True on success, False otherwise.
+ :rtype: ``bool``
"""
if 'instancetype' in node.extra:
current_instance_type = node.extra['instancetype']
@@ -1319,35 +1319,35 @@ class BaseEC2NodeDriver(NodeDriver):
Reference: http://bit.ly/8ZyPSy [docs.amazonwebservices.com]
- @inherits: L{NodeDriver.create_node}
+ @inherits: :class:`NodeDriver.create_node`
- @keyword ex_mincount: Minimum number of instances to launch
- @type ex_mincount: C{int}
+ :keyword ex_mincount: Minimum number of instances to launch
+ :type ex_mincount: ``int``
- @keyword ex_maxcount: Maximum number of instances to launch
- @type ex_maxcount: C{int}
+ :keyword ex_maxcount: Maximum number of instances to launch
+ :type ex_maxcount: ``int``
- @keyword ex_security_groups: A list of names of security groups to
+ :keyword ex_security_groups: A list of names of security groups to
assign to the node.
- @type ex_security_groups: C{list}
+ :type ex_security_groups: ``list``
- @keyword ex_keyname: The name of the key pair
- @type ex_keyname: C{str}
+ :keyword ex_keyname: The name of the key pair
+ :type ex_keyname: ``str``
- @keyword ex_userdata: User data
- @type ex_userdata: C{str}
+ :keyword ex_userdata: User data
+ :type ex_userdata: ``str``
- @keyword ex_clienttoken: Unique identifier to ensure idempotency
- @type ex_clienttoken: C{str}
+ :keyword ex_clienttoken: Unique identifier to ensure idempotency
+ :type ex_clienttoken: ``str``
- @keyword ex_blockdevicemappings: C{list} of C{dict} block device
+ :keyword ex_blockdevicemappings: ``list`` of ``dict`` block device
mappings. Example:
[{'DeviceName': '/dev/sda1', 'Ebs.VolumeSize': 10},
{'DeviceName': '/dev/sdb', 'VirtualName': 'ephemeral0'}]
- @type ex_blockdevicemappings: C{list} of C{dict}
+ :type ex_blockdevicemappings: ``list`` of ``dict``
- @keyword ex_iamprofile: Name or ARN of IAM profile
- @type ex_iamprofile: C{str}
+ :keyword ex_iamprofile: Name or ARN of IAM profile
+ :type ex_iamprofile: ``str``
"""
image = kwargs["image"]
size = kwargs["size"]
@@ -1456,10 +1456,10 @@ class BaseEC2NodeDriver(NodeDriver):
Start the node by passing in the node object, does not work with
instance store backed instances
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
params = {'Action': 'StartInstances'}
params.update(self._pathlist('InstanceId', [node.id]))
@@ -1471,10 +1471,10 @@ class BaseEC2NodeDriver(NodeDriver):
Stop the node by passing in the node object, does not work with
instance store backed instances
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
params = {'Action': 'StopInstances'}
params.update(self._pathlist('InstanceId', [node.id]))
@@ -1607,10 +1607,10 @@ class EucNodeDriver(BaseEC2NodeDriver):
def __init__(self, key, secret=None, secure=True, host=None,
path=None, port=None):
"""
- @inherits: L{EC2NodeDriver.__init__}
+ @inherits: :class:`EC2NodeDriver.__init__`
- @param path: The host where the API can be reached.
- @type path: C{str}
+ :param path: The host where the API can be reached.
+ :type path: ``str``
"""
super(EucNodeDriver, self).__init__(key, secret, secure, host, port)
if path is None:
@@ -1655,7 +1655,7 @@ class NimbusNodeDriver(BaseEC2NodeDriver):
"""
Nimbus doesn't support elastic IPs, so this is a passthrough.
- @inherits: L{EC2NodeDriver.ex_describe_addresses}
+ @inherits: :class:`EC2NodeDriver.ex_describe_addresses`
"""
nodes_elastic_ip_mappings = {}
for node in nodes:
@@ -1667,6 +1667,6 @@ class NimbusNodeDriver(BaseEC2NodeDriver):
"""
Nimbus doesn't support creating tags, so this is a passthrough.
- @inherits: L{EC2NodeDriver.ex_create_tags}
+ @inherits: :class:`EC2NodeDriver.ex_create_tags`
"""
pass
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/ecp.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ecp.py b/libcloud/compute/drivers/ecp.py
index aa77440..343ee86 100644
--- a/libcloud/compute/drivers/ecp.py
+++ b/libcloud/compute/drivers/ecp.py
@@ -131,7 +131,7 @@ class ECPNodeDriver(NodeDriver):
"""
Returns a list of all running Nodes
- @rtype: C{list} of L{Node}
+ :rtype: ``list`` of :class:`Node`
"""
#Make the call
@@ -190,7 +190,7 @@ class ECPNodeDriver(NodeDriver):
"""
Shuts down a VM and then starts it again.
- @inherits: L{NodeDriver.reboot_node}
+ @inherits: :class:`NodeDriver.reboot_node`
"""
#Turn the VM off
@@ -232,7 +232,7 @@ class ECPNodeDriver(NodeDriver):
"""
Shuts down and deletes a VM.
- @inherits: L{NodeDriver.destroy_node}
+ @inherits: :class:`NodeDriver.destroy_node`
"""
#Shut down first
@@ -274,7 +274,7 @@ class ECPNodeDriver(NodeDriver):
"""
Returns a list of all package templates aka appiances aka images.
- @inherits: L{NodeDriver.list_images}
+ @inherits: :class:`NodeDriver.list_images`
"""
#Make the call
@@ -296,7 +296,7 @@ class ECPNodeDriver(NodeDriver):
"""
Returns a list of all hardware templates
- @inherits: L{NodeDriver.list_sizes}
+ @inherits: :class:`NodeDriver.list_sizes`
"""
#Make the call
@@ -322,7 +322,7 @@ class ECPNodeDriver(NodeDriver):
"""
This feature does not exist in ECP. Returns hard coded dummy location.
- @rtype: C{list} of L{NodeLocation}
+ :rtype: ``list`` of :class:`NodeLocation`
"""
return [NodeLocation(id=1,
name="Cloud",
@@ -334,17 +334,17 @@ class ECPNodeDriver(NodeDriver):
"""
Creates a virtual machine.
- @keyword name: String with a name for this new node (required)
- @type name: C{str}
+ :keyword name: String with a name for this new node (required)
+ :type name: ``str``
- @keyword size: The size of resources allocated to this node .
+ :keyword size: The size of resources allocated to this node .
(required)
- @type size: L{NodeSize}
+ :type size: :class:`NodeSize`
- @keyword image: OS Image to boot on node. (required)
- @type image: L{NodeImage}
+ :keyword image: OS Image to boot on node. (required)
+ :type image: :class:`NodeImage`
- @rtype: L{Node}
+ :rtype: :class:`Node`
"""
#Find out what network to put the VM on.
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/elasticstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/elasticstack.py b/libcloud/compute/drivers/elasticstack.py
index 603fdf7..cced69c 100644
--- a/libcloud/compute/drivers/elasticstack.py
+++ b/libcloud/compute/drivers/elasticstack.py
@@ -226,24 +226,24 @@ class ElasticStackBaseNodeDriver(NodeDriver):
def create_node(self, **kwargs):
"""Creates a ElasticStack instance
- @inherits: L{NodeDriver.create_node}
+ @inherits: :class:`NodeDriver.create_node`
- @keyword name: String with a name for this new node (required)
- @type name: C{str}
+ :keyword name: String with a name for this new node (required)
+ :type name: ``str``
- @keyword smp: Number of virtual processors or None to calculate
+ :keyword smp: Number of virtual processors or None to calculate
based on the cpu speed
- @type smp: C{int}
+ :type smp: ``int``
- @keyword nic_model: e1000, rtl8139 or virtio
+ :keyword nic_model: e1000, rtl8139 or virtio
(if not specified, e1000 is used)
- @type nic_model: C{str}
+ :type nic_model: ``str``
- @keyword vnc_password: If set, the same password is also used for
+ :keyword vnc_password: If set, the same password is also used for
SSH access with user toor,
otherwise VNC access is disabled and
no SSH login is possible.
- @type vnc_password: C{str}
+ :type vnc_password: ``str``
"""
size = kwargs['size']
image = kwargs['image']
@@ -327,13 +327,13 @@ class ElasticStackBaseNodeDriver(NodeDriver):
"""
Changes the configuration of the running server
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @param kwargs: keyword arguments
- @type kwargs: C{dict}
+ :param kwargs: keyword arguments
+ :type kwargs: ``dict``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
valid_keys = ('^name$', '^parent$', '^cpu$', '^smp$', '^mem$',
'^boot$', '^nic:0:model$', '^nic:0:dhcp',
@@ -370,12 +370,12 @@ class ElasticStackBaseNodeDriver(NodeDriver):
"""
Create a new node, and start deployment.
- @inherits: L{NodeDriver.deploy_node}
+ @inherits: :class:`NodeDriver.deploy_node`
- @keyword enable_root: If true, root password will be set to
+ :keyword enable_root: If true, root password will be set to
vnc_password (this will enable SSH access)
and default 'toor' account will be deleted.
- @type enable_root: C{bool}
+ :type enable_root: ``bool``
"""
image = kwargs['image']
vnc_password = kwargs.get('vnc_password', None)
@@ -420,10 +420,10 @@ class ElasticStackBaseNodeDriver(NodeDriver):
"""
Sends the ACPI power-down event
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
response = self.connection.request(
action='/servers/%s/shutdown' % (node.id),
@@ -435,10 +435,10 @@ class ElasticStackBaseNodeDriver(NodeDriver):
"""
Deletes a drive
- @param drive_uuid: Drive uuid which should be used
- @type drive_uuid: C{str}
+ :param drive_uuid: Drive uuid which should be used
+ :type drive_uuid: ``str``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
response = self.connection.request(
action='/drives/%s/destroy' % (drive_uuid),
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/gandi.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/gandi.py b/libcloud/compute/drivers/gandi.py
index 57bb5ae..e5593b4 100644
--- a/libcloud/compute/drivers/gandi.py
+++ b/libcloud/compute/drivers/gandi.py
@@ -90,7 +90,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
def __init__(self, *args, **kwargs):
"""
- @inherits: L{NodeDriver.__init__}
+ @inherits: :class:`NodeDriver.__init__`
"""
super(BaseGandiDriver, self).__init__(*args, **kwargs)
@@ -182,7 +182,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
deploy_node is not implemented for gandi driver
- @rtype: C{bool}
+ :rtype: ``bool``
"""
raise NotImplementedError(
'deploy_node not implemented for gandi driver')
@@ -191,30 +191,30 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Create a new Gandi node
- @keyword name: String with a name for this new node (required)
- @type name: C{str}
+ :keyword name: String with a name for this new node (required)
+ :type name: ``str``
- @keyword image: OS Image to boot on node. (required)
- @type image: L{NodeImage}
+ :keyword image: OS Image to boot on node. (required)
+ :type image: :class:`NodeImage`
- @keyword location: Which data center to create a node in. If empty,
+ :keyword location: Which data center to create a node in. If empty,
undefined behavior will be selected. (optional)
- @type location: L{NodeLocation}
+ :type location: :class:`NodeLocation`
- @keyword size: The size of resources allocated to this node.
+ :keyword size: The size of resources allocated to this node.
(required)
- @type size: L{NodeSize}
+ :type size: :class:`NodeSize`
- @keyword login: user name to create for login on machine (required)
- @type login: C{str}
+ :keyword login: user name to create for login on machine (required)
+ :type login: ``str``
- @keyword password: password for user that'll be created (required)
- @type password: C{str}
+ :keyword password: password for user that'll be created (required)
+ :type password: ``str``
- @keyword inet_family: version of ip to use, default 4 (optional)
- @type inet_family: C{int}
+ :keyword inet_family: version of ip to use, default 4 (optional)
+ :type inet_family: ``int``
- @rtype: L{Node}
+ :rtype: :class:`Node`
"""
if kwargs.get('login') is None or kwargs.get('password') is None:
@@ -369,7 +369,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
def list_volumes(self):
"""
- @rtype: C{list} of L{StorageVolume}
+ :rtype: ``list`` of :class:`StorageVolume`
"""
res = self.connection.request('hosting.disk.list', {})
return self._to_volumes(res.object)
@@ -401,13 +401,13 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Detaches a volume from a node.
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @param volume: Volume to be detached
- @type volume: L{StorageVolume}
+ :param volume: Volume to be detached
+ :type volume: :class:`StorageVolume`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
op = self.connection.request('hosting.vm.disk_detach',
int(node.id), int(volume.id))
@@ -456,7 +456,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Specific method to list network interfaces
- @rtype: C{list} of L{GandiNetworkInterface}
+ :rtype: ``list`` of :class:`GandiNetworkInterface`
"""
ifaces = self.connection.request('hosting.iface.list').object
ips = self.connection.request('hosting.ip.list').object
@@ -486,7 +486,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Specific method to list all disk
- @rtype: C{list} of L{GandiDisk}
+ :rtype: ``list`` of :class:`GandiDisk`
"""
res = self.connection.request('hosting.disk.list', {})
return self._to_disks(res.object)
@@ -495,13 +495,13 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Specific method to attach a disk to a node
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @param disk: Disk which should be used
- @type disk: L{GandiDisk}
+ :param disk: Disk which should be used
+ :type disk: :class:`GandiDisk`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
op = self.connection.request('hosting.vm.disk_attach',
int(node.id), int(disk.id))
@@ -513,13 +513,13 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Specific method to detach a disk from a node
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @param disk: Disk which should be used
- @type disk: L{GandiDisk}
+ :param disk: Disk which should be used
+ :type disk: :class:`GandiDisk`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
op = self.connection.request('hosting.vm.disk_detach',
int(node.id), int(disk.id))
@@ -531,14 +531,14 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Specific method to attach an interface to a node
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @param iface: Network interface which should be used
- @type iface: L{GandiNetworkInterface}
+ :param iface: Network interface which should be used
+ :type iface: :class:`GandiNetworkInterface`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
op = self.connection.request('hosting.vm.iface_attach',
int(node.id), int(iface.id))
@@ -550,14 +550,14 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Specific method to detach an interface from a node
- @param node: Node which should be used
- @type node: L{Node}
+ :param node: Node which should be used
+ :type node: :class:`Node`
- @param iface: Network interface which should be used
- @type iface: L{GandiNetworkInterface}
+ :param iface: Network interface which should be used
+ :type iface: :class:`GandiNetworkInterface`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
op = self.connection.request('hosting.vm.iface_detach',
int(node.id), int(iface.id))
@@ -569,13 +569,13 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""
Specific method to make a snapshot of a disk
- @param disk: Disk which should be used
- @type disk: L{GandiDisk}
+ :param disk: Disk which should be used
+ :type disk: :class:`GandiDisk`
- @param name: Name which should be used
- @type name: C{str}
+ :param name: Name which should be used
+ :type name: ``str``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
if not disk.extra.get('can_snapshot'):
raise GandiException(1021, 'Disk %s can\'t snapshot' % disk.id)
@@ -595,16 +595,16 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
"""Specific method to update size or name of a disk
WARNING: if a server is attached it'll be rebooted
- @param disk: Disk which should be used
- @type disk: L{GandiDisk}
+ :param disk: Disk which should be used
+ :type disk: :class:`GandiDisk`
- @param new_size: New size
- @type new_size: C{int}
+ :param new_size: New size
+ :type new_size: ``int``
- @param new_name: New name
- @type new_name: C{str}
+ :param new_name: New name
+ :type new_name: ``str``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
params = {}
if new_size: