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:46 UTC
[4/6] Migrate API docstrings to Sphinx format.
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/gce.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/gce.py b/libcloud/compute/drivers/gce.py
index c46b66d..3b4f69e 100644
--- a/libcloud/compute/drivers/gce.py
+++ b/libcloud/compute/drivers/gce.py
@@ -40,11 +40,11 @@ def timestamp_to_datetime(timestamp):
Return a datetime object that corresponds to the time in an RFC3339
timestamp.
- @param timestamp: RFC3339 timestamp string
- @type timestamp: C{str}
+ :param timestamp: RFC3339 timestamp string
+ :type timestamp: ``str``
- @return: Datetime object corresponding to timestamp
- @rtype: C{datetime}
+ :return: Datetime object corresponding to timestamp
+ :rtype: :class:`datetime.datetime`
"""
# We remove timezone offset and microseconds (Python 2.5 strptime doesn't
# support %f)
@@ -121,8 +121,8 @@ class GCEAddress(UuidMixin):
"""
Destroy this address.
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
return self.driver.ex_destroy_address(address=self)
@@ -160,8 +160,8 @@ class GCEFirewall(UuidMixin):
"""
Destroy this firewall.
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
return self.driver.ex_destroy_firewall(firewall=self)
@@ -184,8 +184,8 @@ class GCENetwork(UuidMixin):
"""
Destroy this newtwork
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
return self.driver.ex_destroy_network(network=self)
@@ -239,13 +239,13 @@ class GCEZone(NodeLocation):
"""
Returns the next Maintenance Window.
- @return: A dictionary containing maintenance window info
- The dictionary contains 4 keys with values of type C{str}
- - C{name}: The name of the maintence window
- - C{description}: Description of the maintenance window
- - C{beginTime}: RFC3339 Timestamp
- - C{endTime}: RFC3339 Timestamp
- @rtype: C{dict}
+ :return: A dictionary containing maintenance window info
+ The dictionary contains 4 keys with values of type ``str``
+ - name: The name of the maintence window
+ - description: Description of the maintenance window
+ - beginTime: RFC3339 Timestamp
+ - endTime: RFC3339 Timestamp
+ :rtype: ``dict``
"""
begin = None
next_window = None
@@ -262,8 +262,8 @@ class GCEZone(NodeLocation):
"""
Returns time until next maintenance window.
- @return: Time until next maintenance window
- @rtype: C{datetime.timedelta}
+ :return: Time until next maintenance window
+ :rtype: :class:`datetime.timedelta`
"""
next_window = self._get_next_maint()
now = self._now()
@@ -274,8 +274,8 @@ class GCEZone(NodeLocation):
"""
Returns the duration of the next maintenance window.
- @return: Duration of next maintenance window
- @rtype: C{datetime.timedelta}
+ :return: Duration of next maintenance window
+ :rtype: :class:`datetime.timedelta`
"""
next_window = self._get_next_maint()
next_begin = timestamp_to_datetime(next_window['beginTime'])
@@ -324,27 +324,27 @@ class GCENodeDriver(NodeDriver):
def __init__(self, user_id, key, datacenter=None, project=None,
auth_type=None, **kwargs):
"""
- @param user_id: The email address (for service accounts) or Client ID
+ :param user_id: The email address (for service accounts) or Client ID
(for installed apps) to be used for authentication.
- @type user_id: C{str}
+ :type user_id: ``str``
- @param key: The RSA Key (for service accounts) or file path containing
+ :param key: The RSA Key (for service accounts) or file path containing
key or Client Secret (for installed apps) to be used for
authentication.
- @type key: C{str}
+ :type key: ``str``
- @keyword datacenter: The name of the datacenter (zone) used for
+ :keyword datacenter: The name of the datacenter (zone) used for
operations.
- @type datacenter: C{str}
+ :type datacenter: ``str``
- @keyword project: Your GCE project name. (required)
- @type project: C{str}
+ :keyword project: Your GCE project name. (required)
+ :type project: ``str``
- @keyword auth_type: Accepted values are "SA" or "IA"
+ :keyword auth_type: Accepted values are "SA" or "IA"
("Service Account" or "Installed Application").
If not supplied, auth_type will be guessed based
on value of user_id.
- @type auth_type: C{str}
+ :type auth_type: ``str``
"""
self.auth_type = auth_type
self.project = project
@@ -374,8 +374,8 @@ class GCENodeDriver(NodeDriver):
Parse error message returned from GCE operation and raise the
appropriate Exception.
- @param error: Error dictionary from a GCE Operations response
- @type error: C{dict}
+ :param error: Error dictionary from a GCE Operations response
+ :type error: ``dict``
"""
err = error['errors'][0]
message = err['message']
@@ -391,18 +391,18 @@ class GCENodeDriver(NodeDriver):
"""
Find the zone for a named resource.
- @param name: Name of resource to find
- @type name: C{str}
+ :param name: Name of resource to find
+ :type name: ``str``
- @param res_type: Type of resource to find.
+ :param res_type: Type of resource to find.
Examples include: 'disks', 'instances' or 'addresses'
- @type res_type: C{str}
+ :type res_type: ``str``
- @keyword region: If True, find a region instead of a zone.
- @keyword region: C{bool}
+ :keyword region: If True, find a region instead of a zone.
+ :keyword region: ``bool``
- @return: Name of zone (or region) that the resource is in.
- @rtype: C{str}
+ :return: Name of zone (or region) that the resource is in.
+ :rtype: ``str``
"""
request = '/aggregated/%s' % res_type
res_list = self.connection.request(request).object
@@ -423,16 +423,16 @@ class GCENodeDriver(NodeDriver):
supplied project. If no project is given, it will search your own
project.
- @param project: The name of the project to search for images.
+ :param project: The name of the project to search for images.
Examples include: 'debian-cloud' and 'centos-cloud'.
- @type project: C{str} or C{None}
+ :type project: ``str`` or ``None``
- @param partial_name: The full name or beginning of a name for an
+ :param partial_name: The full name or beginning of a name for an
image.
- @type partial_name: C{str}
+ :type partial_name: ``str``
- @return: The latest image object that maches the partial name.
- @rtype: L{NodeImage}
+ :return: The latest image object that maches the partial name.
+ :rtype: :class:`NodeImage`
"""
project_images = self.list_images(project)
partial_match = []
@@ -451,14 +451,14 @@ class GCENodeDriver(NodeDriver):
"""
Return a list of static addreses for a region or all.
- @keyword region: The region to return addresses from. For example:
+ :keyword region: The region to return addresses from. For example:
'us-central1'. If None, will return addresses from
region of self.zone. If 'all', will return all
addresses.
- @type region: C{str} or C{None}
+ :type region: ``str`` or ``None``
- @return: A list of static address objects.
- @rtype: C{list} of L{GCEAddress}
+ :return: A list of static address objects.
+ :rtype: ``list`` of :class:`GCEAddress`
"""
list_addresses = []
if region is None and self.zone:
@@ -489,8 +489,8 @@ class GCENodeDriver(NodeDriver):
"""
Return the list of firewalls.
- @return: A list of firewall objects.
- @rtype: C{list} of L{GCEFirewall}
+ :return: A list of firewall objects.
+ :rtype: ``list`` of :class:`GCEFirewall`
"""
list_firewalls = []
request = '/global/firewalls'
@@ -503,11 +503,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a list of image objects for a project.
- @keyword ex_project: Optional alternate project name.
- @type ex_project: C{str} or C{None}
+ :keyword ex_project: Optional alternate project name.
+ :type ex_project: ``str`` or ``None``
- @return: List of NodeImage objects
- @rtype: C{list} of L{NodeImage}
+ :return: List of NodeImage objects
+ :rtype: ``list`` of :class:`NodeImage`
"""
list_images = []
request = '/global/images'
@@ -531,11 +531,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a list of locations (zones).
- The L{ex_list_zones} method returns more comprehensive results, but
+ The :class:`ex_list_zones` method returns more comprehensive results, but
this is here for compatibility.
- @return: List of NodeLocation objects
- @rtype: C{list} of L{NodeLocation}
+ :return: List of NodeLocation objects
+ :rtype: ``list`` of :class:`NodeLocation`
"""
list_locations = []
request = '/zones'
@@ -547,8 +547,8 @@ class GCENodeDriver(NodeDriver):
"""
Return the list of networks.
- @return: A list of network objects.
- @rtype: C{list} of L{GCENetwork}
+ :return: A list of network objects.
+ :rtype: ``list`` of :class:`GCENetwork`
"""
list_networks = []
request = '/global/networks'
@@ -561,11 +561,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a list of nodes in the current zone or all zones.
- @keyword ex_zone: Optional zone name or 'all'
- @type ex_zone: C{str} or L{GCEZone} or L{NodeLocation} or C{None}
+ :keyword ex_zone: Optional zone name or 'all'
+ :type ex_zone: ``str`` or :class:`GCEZone` or :class:`NodeLocation` or ``None``
- @return: List of Node objects
- @rtype: C{list} of L{Node}
+ :return: List of Node objects
+ :rtype: ``list`` of :class:`Node`
"""
list_nodes = []
# Use provided zone or default zone
@@ -597,11 +597,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a list of sizes (machineTypes) in a zone.
- @keyword location: Location or Zone for sizes
- @type location: C{str} or L{GCEZone} or L{NodeLocation} or C{None}
+ :keyword location: Location or Zone for sizes
+ :type location: ``str`` or :class:`GCEZone` or :class:`NodeLocation` or ``None``
- @return: List of GCENodeSize objects
- @rtype: C{list} of L{GCENodeSize}
+ :return: List of GCENodeSize objects
+ :rtype: ``list`` of :class:`GCENodeSize`
"""
list_sizes = []
location = location or self.zone
@@ -634,11 +634,11 @@ class GCENodeDriver(NodeDriver):
Will return list from provided zone, or from the default zone unless
given the value of 'all'.
- @keyword region: The zone to return volumes from.
- @type region: C{str} or L{GCEZone} or L{NodeLocation} or C{None}
+ :keyword region: The zone to return volumes from.
+ :type region: ``str`` or :class:`GCEZone` or :class:`NodeLocation` or ``None``
- @return: A list of volume objects.
- @rtype: C{list} of L{StorageVolume}
+ :return: A list of volume objects.
+ :rtype: ``list`` of :class:`StorageVolume`
"""
list_volumes = []
zone = ex_zone or self.zone
@@ -668,8 +668,8 @@ class GCENodeDriver(NodeDriver):
"""
Return the list of zones.
- @return: A list of zone objects.
- @rtype: C{list} of L{GCEZone}
+ :return: A list of zone objects.
+ :rtype: ``list`` of :class:`GCEZone`
"""
list_zones = []
request = '/zones'
@@ -681,14 +681,14 @@ class GCENodeDriver(NodeDriver):
"""
Create a static address in a region.
- @param name: Name of static address
- @type name: C{str}
+ :param name: Name of static address
+ :type name: ``str``
- @param region: Name of region for the addres (e.g. 'us-central1')
- @type region: C{str}
+ :param region: Name of region for the addres (e.g. 'us-central1')
+ :type region: ``str``
- @return: Static Address object
- @rtype: L{GCEAddress}
+ :return: Static Address object
+ :rtype: :class:`GCEAddress`
"""
if region is None and self.zone:
region = '-'.join(self.zone.name.split('-')[:-1])
@@ -721,24 +721,24 @@ class GCENodeDriver(NodeDriver):
See U{Firewall Reference<https://developers.google.com/compute/docs/
reference/latest/firewalls/insert>} for more information.
- @param name: Name of the firewall to be created
- @type name: C{str}
+ :param name: Name of the firewall to be created
+ :type name: ``str``
- @param allowed: List of dictionaries with rules
- @type allowed: C{list} of C{dict}
+ :param allowed: List of dictionaries with rules
+ :type allowed: ``list`` of ``dict``
- @keyword network: The network that the firewall applies to.
- @type network: C{str} or L{GCENetwork}
+ :keyword network: The network that the firewall applies to.
+ :type network: ``str`` or :class:`GCENetwork`
- @keyword source_ranges: A list of IP ranges in CIDR format that the
+ :keyword source_ranges: A list of IP ranges in CIDR format that the
firewall should apply to.
- @type source_ranges: C{list} of C{str}
+ :type source_ranges: ``list`` of ``str``
- @keyword source_tags: A list of instance tags which the rules apply
- @type source_tags: C{list} of C{str}
+ :keyword source_tags: A list of instance tags which the rules apply
+ :type source_tags: ``list`` of ``str``
- @return: Firewall object
- @rtype: L{GCEFirewall}
+ :return: Firewall object
+ :rtype: :class:`GCEFirewall`
"""
firewall_data = {}
if not hasattr(network, 'name'):
@@ -766,14 +766,14 @@ class GCENodeDriver(NodeDriver):
"""
Create a network.
- @param name: Name of network to be created
- @type name: C{str}
+ :param name: Name of network to be created
+ :type name: ``str``
- @param cidr: Address range of network in CIDR format.
- @type cidr: C{str}
+ :param cidr: Address range of network in CIDR format.
+ :type cidr: ``str``
- @return: Network object
- @rtype: L{GCENetwork}
+ :return: Network object
+ :rtype: :class:`GCENetwork`
"""
network_data = {}
network_data['name'] = name
@@ -792,35 +792,35 @@ class GCENodeDriver(NodeDriver):
tags=None, metadata=None, boot_disk=None):
"""
Returns a request and body to create a new node. This is a helper
- method to suppor both L{create_node} and L{ex_create_multiple_nodes}.
+ method to suppor both :class:`create_node` and :class:`ex_create_multiple_nodes`.
- @param name: The name of the node to create.
- @type name: C{str}
+ :param name: The name of the node to create.
+ :type name: ``str``
- @param size: The machine type to use.
- @type size: L{GCENodeSize}
+ :param size: The machine type to use.
+ :type size: :class:`GCENodeSize`
- @param image: The image to use to create the node (or, if using a
+ :param image: The image to use to create the node (or, if using a
persistent disk, the image the disk was created from).
- @type image: L{NodeImage}
+ :type image: :class:`NodeImage`
- @param location: The location (zone) to create the node in.
- @type location: L{NodeLocation} or L{GCEZone}
+ :param location: The location (zone) to create the node in.
+ :type location: :class:`NodeLocation` or :class:`GCEZone`
- @param network: The network to associate with the node.
- @type network: L{GCENetwork}
+ :param network: The network to associate with the node.
+ :type network: :class:`GCENetwork`
- @keyword tags: A list of tags to assiciate with the node.
- @type tags: C{list} of C{str}
+ :keyword tags: A list of tags to assiciate with the node.
+ :type tags: ``list`` of ``str``
- @keyword metadata: Metadata dictionary for instance.
- @type metadata: C{dict}
+ :keyword metadata: Metadata dictionary for instance.
+ :type metadata: ``dict``
- @keyword boot_disk: Persistent boot disk to attach
- @type L{StorageVolume}
+ :keyword boot_disk: Persistent boot disk to attach
+ :type :class:`StorageVolume`
- @return: A tuple containing a request string and a node_data dict.
- @rtype: C{tuple} of C{str} and C{dict}
+ :return: A tuple containing a request string and a node_data dict.
+ :rtype: ``tuple`` of ``str`` and ``dict``
"""
node_data = {}
node_data['machineType'] = size.extra['selfLink']
@@ -858,33 +858,33 @@ class GCENodeDriver(NodeDriver):
"""
Create a new node and return a node object for the node.
- @param name: The name of the node to create.
- @type name: C{str}
+ :param name: The name of the node to create.
+ :type name: ``str``
- @param size: The machine type to use.
- @type size: C{str} or L{GCENodeSize}
+ :param size: The machine type to use.
+ :type size: ``str`` or :class:`GCENodeSize`
- @param image: The image to use to create the node (or, if attaching
+ :param image: The image to use to create the node (or, if attaching
a persistent disk, the image used to create the disk)
- @type image: C{str} or L{NodeImage}
+ :type image: ``str`` or :class:`NodeImage`
- @keyword location: The location (zone) to create the node in.
- @type location: C{str} or L{NodeLocation} or L{GCEZone} or C{None}
+ :keyword location: The location (zone) to create the node in.
+ :type location: ``str`` or :class:`NodeLocation` or :class:`GCEZone` or ``None``
- @keyword ex_network: The network to associate with the node.
- @type ex_network: C{str} or L{GCENetwork}
+ :keyword ex_network: The network to associate with the node.
+ :type ex_network: ``str`` or :class:`GCENetwork`
- @keyword ex_tags: A list of tags to assiciate with the node.
- @type ex_tags: C{list} of C{str} or C{None}
+ :keyword ex_tags: A list of tags to assiciate with the node.
+ :type ex_tags: ``list`` of ``str`` or ``None``
- @keyword ex_metadata: Metadata dictionary for instance.
- @type ex_metadata: C{dict} or C{None}
+ :keyword ex_metadata: Metadata dictionary for instance.
+ :type ex_metadata: ``dict`` or ``None``
- @keyword ex_boot_disk: The boot disk to attach to the instance.
- @type ex_boot_disk: L{StorageVolume}
+ :keyword ex_boot_disk: The boot disk to attach to the instance.
+ :type ex_boot_disk: :class:`StorageVolume`
- @return: A Node object for the new node.
- @rtype: L{Node}
+ :return: A Node object for the new node.
+ :rtype: :class:`Node`
"""
location = location or self.zone
if not hasattr(location, 'name'):
@@ -922,39 +922,39 @@ class GCENodeDriver(NodeDriver):
libcloud-001
libcloud-002
- @param base_name: The base name of the nodes to create.
- @type base_name: C{str}
+ :param base_name: The base name of the nodes to create.
+ :type base_name: ``str``
- @param size: The machine type to use.
- @type size: C{str} or L{GCENodeSize}
+ :param size: The machine type to use.
+ :type size: ``str`` or :class:`GCENodeSize`
- @param image: The image to use to create the nodes.
- @type image: C{str} or L{NodeImage}
+ :param image: The image to use to create the nodes.
+ :type image: ``str`` or :class:`NodeImage`
- @param number: The number of nodes to create.
- @type number: C{int}
+ :param number: The number of nodes to create.
+ :type number: ``int``
- @keyword location: The location (zone) to create the nodes in.
- @type location: C{str} or L{NodeLocation} or L{GCEZone} or C{None}
+ :keyword location: The location (zone) to create the nodes in.
+ :type location: ``str`` or :class:`NodeLocation` or :class:`GCEZone` or ``None``
- @keyword ex_network: The network to associate with the nodes.
- @type ex_network: C{str} or L{GCENetwork}
+ :keyword ex_network: The network to associate with the nodes.
+ :type ex_network: ``str`` or :class:`GCENetwork`
- @keyword ex_tags: A list of tags to assiciate with the nodes.
- @type ex_tags: C{list} of C{str} or C{None}
+ :keyword ex_tags: A list of tags to assiciate with the nodes.
+ :type ex_tags: ``list`` of ``str`` or ``None``
- @keyword ex_metadata: Metadata dictionary for instances.
- @type ex_metadata: C{dict} or C{None}
+ :keyword ex_metadata: Metadata dictionary for instances.
+ :type ex_metadata: ``dict`` or ``None``
- @keyword ignore_errors: If True, don't raise Exceptions if one or
+ :keyword ignore_errors: If True, don't raise Exceptions if one or
more nodes fails.
- @type ignore_errors: C{bool}
+ :type ignore_errors: ``bool``
- @keyword timeout: The number of seconds to wait for all nodes to be
+ :keyword timeout: The number of seconds to wait for all nodes to be
created before timing out.
- @return: A list of Node objects for the new nodes.
- @rtype: C{list} of L{Node}
+ :return: A list of Node objects for the new nodes.
+ :rtype: ``list`` of :class:`Node`
"""
node_data = {}
location = location or self.zone
@@ -1011,24 +1011,24 @@ class GCENodeDriver(NodeDriver):
"""
Create a volume (disk).
- @param size: Size of volume to create (in GB). Can be None if image
+ :param size: Size of volume to create (in GB). Can be None if image
or snapshot is supplied.
- @type size: C{int} or C{str} or C{None}
+ :type size: ``int`` or ``str`` or ``None``
- @param name: Name of volume to create
- @type name: C{str}
+ :param name: Name of volume to create
+ :type name: ``str``
- @keyword location: Location (zone) to create the volume in
- @type location: C{str} or L{GCEZone} or L{NodeLocation} or C{None}
+ :keyword location: Location (zone) to create the volume in
+ :type location: ``str`` or :class:`GCEZone` or :class:`NodeLocation` or ``None``
- @keyword image: Image to create disk from.
- @type image: L{NodeImage} or C{str} or C{None}
+ :keyword image: Image to create disk from.
+ :type image: :class:`NodeImage` or ``str`` or ``None``
- @keyword snapshot: Snapshot to create image from
- @type snapshot: C{str}
+ :keyword snapshot: Snapshot to create image from
+ :type snapshot: ``str``
- @return: Storage Volume object
- @rtype: L{StorageVolume}
+ :return: Storage Volume object
+ :rtype: :class:`StorageVolume`
"""
volume_data = {}
params = None
@@ -1060,11 +1060,11 @@ class GCENodeDriver(NodeDriver):
To update, change the attributes of the firewall object and pass the
updated object to the method.
- @param firewall: A firewall object with updated values.
- @type firewall: L{GCEFirewall}
+ :param firewall: A firewall object with updated values.
+ :type firewall: :class:`GCEFirewall`
- @return: An object representing the new state of the firewall.
- @rtype: L{GCEFirewall}
+ :return: An object representing the new state of the firewall.
+ :rtype: :class:`GCEFirewall`
"""
firewall_data = {}
firewall_data['name'] = firewall.name
@@ -1090,11 +1090,11 @@ class GCENodeDriver(NodeDriver):
"""
Reboot a node.
- @param node: Node to be rebooted
- @type node: L{Node}
+ :param node: Node to be rebooted
+ :type node: :class:`Node`
- @return: True if successful, False if not
- @rtype: C{bool}
+ :return: True if successful, False if not
+ :rtype: ``bool``
"""
request = '/zones/%s/instances/%s/reset' % (node.extra['zone'].name,
node.name)
@@ -1111,14 +1111,14 @@ class GCENodeDriver(NodeDriver):
Note that this updates the node object directly.
- @param node: Node object
- @type node: L{Node}
+ :param node: Node object
+ :type node: :class:`Node`
- @param tags: List of tags to apply to the object
- @type tags: C{list} of C{str}
+ :param tags: List of tags to apply to the object
+ :type tags: ``list`` of ``str``
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
request = '/zones/%s/instances/%s/setTags' % (node.extra['zone'].name,
node.name)
@@ -1142,29 +1142,29 @@ class GCENodeDriver(NodeDriver):
"""
Create a new node and run a script on start-up.
- @param name: The name of the node to create.
- @type name: C{str}
+ :param name: The name of the node to create.
+ :type name: ``str``
- @param size: The machine type to use.
- @type size: C{str} or L{GCENodeSize}
+ :param size: The machine type to use.
+ :type size: ``str`` or :class:`GCENodeSize`
- @param image: The image to use to create the node.
- @type image: C{str} or L{NodeImage}
+ :param image: The image to use to create the node.
+ :type image: ``str`` or :class:`NodeImage`
- @param script: File path to start-up script
- @type script: C{str}
+ :param script: File path to start-up script
+ :type script: ``str``
- @keyword location: The location (zone) to create the node in.
- @type location: C{str} or L{NodeLocation} or L{GCEZone} or C{None}
+ :keyword location: The location (zone) to create the node in.
+ :type location: ``str`` or :class:`NodeLocation` or :class:`GCEZone` or ``None``
- @keyword ex_network: The network to associate with the node.
- @type ex_network: C{str} or L{GCENetwork}
+ :keyword ex_network: The network to associate with the node.
+ :type ex_network: ``str`` or :class:`GCENetwork`
- @keyword ex_tags: A list of tags to assiciate with the node.
- @type ex_tags: C{list} of C{str} or C{None}
+ :keyword ex_tags: A list of tags to assiciate with the node.
+ :type ex_tags: ``list`` of ``str`` or ``None``
- @return: A Node object for the new node.
- @rtype: L{Node}
+ :return: A Node object for the new node.
+ :rtype: :class:`Node`
"""
with open(script, 'r') as f:
script_data = f.read()
@@ -1182,25 +1182,25 @@ class GCENodeDriver(NodeDriver):
If volume is None, a scratch disk will be created and attached.
- @param node: The node to attach the volume to
- @type node: L{Node}
+ :param node: The node to attach the volume to
+ :type node: :class:`Node`
- @param volume: The volume to attach. If none, a scratch disk will be
+ :param volume: The volume to attach. If none, a scratch disk will be
attached.
- @type volume: L{StorageVolume} or C{None}
+ :type volume: :class:`StorageVolume` or ``None``
- @keyword device: The device name to attach the volume as. Defaults to
+ :keyword device: The device name to attach the volume as. Defaults to
volume name.
- @type device: C{str}
+ :type device: ``str``
- @keyword ex_mode: Either 'READ_WRITE' or 'READ_ONLY'
- @type ex_mode: C{str}
+ :keyword ex_mode: Either 'READ_WRITE' or 'READ_ONLY'
+ :type ex_mode: ``str``
- @keyword ex_boot: If true, disk will be attached as a boot disk
- @type ex_boot: C{bool}
+ :keyword ex_boot: If true, disk will be attached as a boot disk
+ :type ex_boot: ``bool``
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
volume_data = {}
if volume is None:
@@ -1231,14 +1231,14 @@ class GCENodeDriver(NodeDriver):
"""
Detach a volume from a node.
- @param volume: Volume object to detach
- @type volume: L{StorageVolume}
+ :param volume: Volume object to detach
+ :type volume: :class:`StorageVolume`
- @keyword ex_node: Node object to detach volume from (required)
- @type ex_node: L{Node}
+ :keyword ex_node: Node object to detach volume from (required)
+ :type ex_node: :class:`Node`
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
if not ex_node:
return False
@@ -1256,11 +1256,11 @@ class GCENodeDriver(NodeDriver):
"""
Destroy a static address.
- @param address: Address object to destroy
- @type address: L{GCEAddress}
+ :param address: Address object to destroy
+ :type address: :class:`GCEAddress`
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
request = '/regions/%s/addresses/%s' % (address.region, address.name)
@@ -1275,11 +1275,11 @@ class GCENodeDriver(NodeDriver):
"""
Destroy a firewall.
- @param firewall: Firewall object to destroy
- @type firewall: L{GCEFirewall}
+ :param firewall: Firewall object to destroy
+ :type firewall: :class:`GCEFirewall`
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
request = '/global/firewalls/%s' % firewall.name
response = self.connection.async_request(request,
@@ -1293,11 +1293,11 @@ class GCENodeDriver(NodeDriver):
"""
Destroy a network.
- @param network: Network object to destroy
- @type network: L{GCENetwork}
+ :param network: Network object to destroy
+ :type network: :class:`GCENetwork`
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
request = '/global/networks/%s' % network.name
response = self.connection.async_request(request,
@@ -1311,11 +1311,11 @@ class GCENodeDriver(NodeDriver):
"""
Destroy a node.
- @param node: Node object to destroy
- @type node: L{Node}
+ :param node: Node object to destroy
+ :type node: :class:`Node`
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
request = '/zones/%s/instances/%s' % (node.extra['zone'].name,
node.name)
@@ -1331,20 +1331,20 @@ class GCENodeDriver(NodeDriver):
"""
Destroy multiple nodes at once.
- @param nodelist: List of nodes to destroy
- @type nodelist: C{list} of L{Node}
+ :param nodelist: List of nodes to destroy
+ :type nodelist: ``list`` of :class:`Node`
- @keyword ignore_errors: If true, don't raise an exception if one or
+ :keyword ignore_errors: If true, don't raise an exception if one or
more nodes fails to be destroyed.
- @type ignore_errors: C{bool}
+ :type ignore_errors: ``bool``
- @keyword timeout: Number of seconds to wait for all nodes to be
+ :keyword timeout: Number of seconds to wait for all nodes to be
destroyed.
- @type timeout: C{int}
+ :type timeout: ``int``
- @return: A list of boolean values. One for each node. True means
+ :return: A list of boolean values. One for each node. True means
that the node was successfully destroyed.
- @rtype: C{list} of C{bool}
+ :rtype: ``list`` of ``bool``
"""
responses = []
success = [False] * len(nodelist)
@@ -1384,11 +1384,11 @@ class GCENodeDriver(NodeDriver):
"""
Destroy a volume.
- @param volume: Volume object to destroy
- @type volume: L{StorageVolume}
+ :param volume: Volume object to destroy
+ :type volume: :class:`StorageVolume`
- @return: True if successful
- @rtype: C{bool}
+ :return: True if successful
+ :rtype: ``bool``
"""
request = '/zones/%s/disks/%s' % (volume.extra['zone'].name,
volume.name)
@@ -1403,14 +1403,14 @@ class GCENodeDriver(NodeDriver):
"""
Return an Address object based on an address name and optional region.
- @param name: The name of the address
- @type name: C{str}
+ :param name: The name of the address
+ :type name: ``str``
- @keyword region: The region to search for the address in
- @type region: C{str} or C{None}
+ :keyword region: The region to search for the address in
+ :type region: ``str`` or ``None``
- @return: An Address object for the address
- @rtype: L{GCEAddress}
+ :return: An Address object for the address
+ :rtype: :class:`GCEAddress`
"""
address_region = region or self._find_zone(name, 'addresses',
region=True)
@@ -1422,11 +1422,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Firewall object based on the firewall name.
- @param name: The name of the firewall
- @type name: C{str}
+ :param name: The name of the firewall
+ :type name: ``str``
- @return: A GCEFirewall object
- @rtype: L{GCEFirewall}
+ :return: A GCEFirewall object
+ :rtype: :class:`GCEFirewall`
"""
request = '/global/firewalls/%s' % name
response = self.connection.request(request, method='GET').object
@@ -1436,12 +1436,12 @@ class GCENodeDriver(NodeDriver):
"""
Return an NodeImage object based on the name or link provided.
- @param partial_name: The name, partial name, or full path of a GCE
+ :param partial_name: The name, partial name, or full path of a GCE
image.
- @type partial_name: C{str}
+ :type partial_name: ``str``
- @return: NodeImage object based on provided information
- @rtype: L{NodeImage}
+ :return: NodeImage object based on provided information
+ :rtype: :class:`NodeImage`
"""
if partial_name.startswith('https://'):
response = self.connection.request(partial_name, method='GET')
@@ -1459,11 +1459,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Network object based on a network name.
- @param name: The name of the network
- @type name: C{str}
+ :param name: The name of the network
+ :type name: ``str``
- @return: A Network object for the network
- @rtype: L{GCENetwork}
+ :return: A Network object for the network
+ :rtype: :class:`GCENetwork`
"""
request = '/global/networks/%s' % name
response = self.connection.request(request, method='GET').object
@@ -1473,14 +1473,14 @@ class GCENodeDriver(NodeDriver):
"""
Return a Node object based on a node name and optional zone.
- @param name: The name of the node
- @type name: C{str}
+ :param name: The name of the node
+ :type name: ``str``
- @keyword zone: The zone to search for the node in
- @type zone: C{str} or L{GCEZone} or L{NodeLocation} or C{None}
+ :keyword zone: The zone to search for the node in
+ :type zone: ``str`` or :class:`GCEZone` or :class:`NodeLocation` or ``None``
- @return: A Node object for the node
- @rtype: L{Node}
+ :return: A Node object for the node
+ :rtype: :class:`Node`
"""
zone = zone or self.zone or self._find_zone(name, 'instances')
if not hasattr(zone, 'name'):
@@ -1493,8 +1493,8 @@ class GCENodeDriver(NodeDriver):
"""
Return a Project object with project-wide information.
- @return: A GCEProject object
- @rtype: L{GCEProject}
+ :return: A GCEProject object
+ :rtype: :class:`GCEProject`
"""
response = self.connection.request('', method='GET').object
return self._to_project(response)
@@ -1503,14 +1503,14 @@ class GCENodeDriver(NodeDriver):
"""
Return a size object based on a machine type name and zone.
- @param name: The name of the node
- @type name: C{str}
+ :param name: The name of the node
+ :type name: ``str``
- @keyword zone: The zone to search for the machine type in
- @type zone: C{str} or L{GCEZone} or L{NodeLocation} or C{None}
+ :keyword zone: The zone to search for the machine type in
+ :type zone: ``str`` or :class:`GCEZone` or :class:`NodeLocation` or ``None``
- @return: A GCENodeSize object for the machine type
- @rtype: L{GCENodeSize}
+ :return: A GCENodeSize object for the machine type
+ :rtype: :class:`GCENodeSize`
"""
zone = zone or self.zone
if not hasattr(zone, 'name'):
@@ -1523,14 +1523,14 @@ class GCENodeDriver(NodeDriver):
"""
Return a Volume object based on a volume name and optional zone.
- @param name: The name of the volume
- @type name: C{str}
+ :param name: The name of the volume
+ :type name: ``str``
- @keyword zone: The zone to search for the volume in
- @type zone: C{str} or L{GCEZone} or L{NodeLocation} or C{None}
+ :keyword zone: The zone to search for the volume in
+ :type zone: ``str`` or :class:`GCEZone` or :class:`NodeLocation` or ``None``
- @return: A StorageVolume object for the volume
- @rtype: L{StorageVolume}
+ :return: A StorageVolume object for the volume
+ :rtype: :class:`StorageVolume`
"""
zone = zone or self.zone or self.find_zone(name, 'disks')
if not hasattr(zone, 'name'):
@@ -1543,11 +1543,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Zone object based on the zone name.
- @param name: The name of the zone.
- @type name: C{str}
+ :param name: The name of the zone.
+ :type name: ``str``
- @return: A GCEZone object for the zone
- @rtype: L{GCEZone}
+ :return: A GCEZone object for the zone
+ :rtype: :class:`GCEZone`
"""
if name.startswith('https://'):
short_name = name.split('/')[-1]
@@ -1566,11 +1566,11 @@ class GCENodeDriver(NodeDriver):
"""
Return an Address object from the json-response dictionary.
- @param address: The dictionary describing the address.
- @type address: C{dict}
+ :param address: The dictionary describing the address.
+ :type address: ``dict``
- @return: Address object
- @rtype: L{GCEAddress}
+ :return: Address object
+ :rtype: :class:`GCEAddress`
"""
extra = {}
@@ -1588,11 +1588,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Firewall object from the json-response dictionary.
- @param firewall: The dictionary describing the firewall.
- @type firewall: C{dict}
+ :param firewall: The dictionary describing the firewall.
+ :type firewall: ``dict``
- @return: Firewall object
- @rtype: L{GCEFirewall}
+ :return: Firewall object
+ :rtype: :class:`GCEFirewall`
"""
extra = {}
extra['selfLink'] = firewall['selfLink']
@@ -1614,11 +1614,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Network object from the json-response dictionary.
- @param network: The dictionary describing the network.
- @type network: C{dict}
+ :param network: The dictionary describing the network.
+ :type network: ``dict``
- @return: Network object
- @rtype: L{GCENetwork}
+ :return: Network object
+ :rtype: :class:`GCENetwork`
"""
extra = {}
@@ -1635,11 +1635,11 @@ class GCENodeDriver(NodeDriver):
"""
Return an Image object from the json-response dictionary.
- @param image: The dictionary describing the image.
- @type image: C{dict}
+ :param image: The dictionary describing the image.
+ :type image: ``dict``
- @return: Image object
- @rtype: L{NodeImage}
+ :return: Image object
+ :rtype: :class:`NodeImage`
"""
extra = {}
extra['preferredKernel'] = image['preferredKernel']
@@ -1653,11 +1653,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Location object from the json-response dictionary.
- @param location: The dictionary describing the location.
- @type location: C{dict}
+ :param location: The dictionary describing the location.
+ :type location: ``dict``
- @return: Location object
- @rtype: L{NodeLocation}
+ :return: Location object
+ :rtype: :class:`NodeLocation`
"""
return NodeLocation(id=location['id'], name=location['name'],
country=location['name'].split('-')[0],
@@ -1667,11 +1667,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Node object from the json-response dictionary.
- @param node: The dictionary describing the node.
- @type node: C{dict}
+ :param node: The dictionary describing the node.
+ :type node: ``dict``
- @return: Node object
- @rtype: L{Node}
+ :return: Node object
+ :rtype: :class:`Node`
"""
public_ips = []
private_ips = []
@@ -1710,11 +1710,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Size object from the json-response dictionary.
- @param machine_type: The dictionary describing the machine.
- @type machine_type: C{dict}
+ :param machine_type: The dictionary describing the machine.
+ :type machine_type: ``dict``
- @return: Size object
- @rtype: L{GCENodeSize}
+ :return: Size object
+ :rtype: :class:`GCENodeSize`
"""
extra = {}
extra['selfLink'] = machine_type['selfLink']
@@ -1736,11 +1736,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Project object from the json-response dictionary.
- @param project: The dictionary describing the project.
- @type project: C{dict}
+ :param project: The dictionary describing the project.
+ :type project: ``dict``
- @return: Project object
- @rtype: L{GCEProject}
+ :return: Project object
+ :rtype: :class:`GCEProject`
"""
extra = {}
extra['selfLink'] = project['selfLink']
@@ -1756,11 +1756,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Volume object from the json-response dictionary.
- @param volume: The dictionary describing the volume.
- @type volume: C{dict}
+ :param volume: The dictionary describing the volume.
+ :type volume: ``dict``
- @return: Volume object
- @rtype: L{StorageVolume}
+ :return: Volume object
+ :rtype: :class:`StorageVolume`
"""
extra = {}
extra['selfLink'] = volume['selfLink']
@@ -1775,11 +1775,11 @@ class GCENodeDriver(NodeDriver):
"""
Return a Zone object from the json-response dictionary.
- @param zone: The dictionary describing the zone.
- @type zone: C{dict}
+ :param zone: The dictionary describing the zone.
+ :type zone: ``dict``
- @return: Zone object
- @rtype: L{GCEZone}
+ :return: Zone object
+ :rtype: :class:`GCEZone`
"""
extra = {}
extra['selfLink'] = zone['selfLink']
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/gogrid.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/gogrid.py b/libcloud/compute/drivers/gogrid.py
index bee9082..f9c0259 100644
--- a/libcloud/compute/drivers/gogrid.py
+++ b/libcloud/compute/drivers/gogrid.py
@@ -105,7 +105,7 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
def __init__(self, *args, **kwargs):
"""
- @inherits: L{NodeDriver.__init__}
+ @inherits: :class:`NodeDriver.__init__`
"""
super(GoGridNodeDriver, self).__init__(*args, **kwargs)
@@ -170,8 +170,8 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
def list_nodes(self):
"""
- @inherits: L{NodeDriver.list_nodes}
- @rtype: C{list} of L{GoGridNode}
+ @inherits: :class:`NodeDriver.list_nodes`
+ :rtype: ``list`` of :class:`GoGridNode`
"""
passwords_map = {}
@@ -193,8 +193,8 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
def reboot_node(self, node):
"""
- @inherits: L{NodeDriver.reboot_node}
- @type node: L{GoGridNode}
+ @inherits: :class:`NodeDriver.reboot_node`
+ :type node: :class:`GoGridNode`
"""
id = node.id
power = 'restart'
@@ -205,8 +205,8 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
def destroy_node(self, node):
"""
- @inherits: L{NodeDriver.reboot_node}
- @type node: L{GoGridNode}
+ @inherits: :class:`NodeDriver.reboot_node`
+ :type node: :class:`GoGridNode`
"""
id = node.id
res = self._server_delete(id)
@@ -263,24 +263,24 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
creation.
- @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`
- @keyword ex_description: Description of a Node
- @type ex_description: C{str}
+ :keyword ex_description: Description of a Node
+ :type ex_description: ``str``
- @keyword ex_ip: Public IP address to use for a Node. If not
+ :keyword ex_ip: Public IP address to use for a Node. If not
specified, first available IP address will be picked
- @type ex_ip: C{str}
+ :type ex_ip: ``str``
- @rtype: L{GoGridNode}
+ :rtype: :class:`GoGridNode`
"""
name = kwargs['name']
image = kwargs['image']
@@ -305,16 +305,16 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
def create_node(self, **kwargs):
"""Create a new GoGird node
- @inherits: L{NodeDriver.create_node}
+ @inherits: :class:`NodeDriver.create_node`
- @keyword ex_description: Description of a Node
- @type ex_description: C{str}
+ :keyword ex_description: Description of a Node
+ :type ex_description: ``str``
- @keyword ex_ip: Public IP address to use for a Node. If not
+ :keyword ex_ip: Public IP address to use for a Node. If not
specified, first available IP address will be picked
- @type ex_ip: C{str}
+ :type ex_ip: ``str``
- @rtype: L{GoGridNode}
+ :rtype: :class:`GoGridNode`
"""
node = self.ex_create_node_nowait(**kwargs)
@@ -347,13 +347,13 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
http://wiki.gogrid.com/wiki/index.php/MyGSI
- @keyword node: node to use as a base for image
- @type node: L{GoGridNode}
+ :keyword node: node to use as a base for image
+ :type node: :class:`GoGridNode`
- @keyword name: name for new image
- @type name: C{str}
+ :keyword name: name for new image
+ :type name: ``str``
- @rtype: L{NodeImage}
+ :rtype: :class:`NodeImage`
"""
params = {'server': node.id,
'friendlyName': name}
@@ -365,16 +365,16 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
def ex_edit_node(self, **kwargs):
"""Change attributes of a node.
- @keyword node: node to be edited (required)
- @type node: L{GoGridNode}
+ :keyword node: node to be edited (required)
+ :type node: :class:`GoGridNode`
- @keyword size: new size of a node (required)
- @type size: L{NodeSize}
+ :keyword size: new size of a node (required)
+ :type size: :class:`NodeSize`
- @keyword ex_description: new description of a node
- @type ex_description: C{str}
+ :keyword ex_description: new description of a node
+ :type ex_description: ``str``
- @rtype: L{Node}
+ :rtype: :class:`Node`
"""
node = kwargs['node']
size = kwargs['size']
@@ -393,19 +393,19 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
def ex_edit_image(self, **kwargs):
"""Edit metadata of a server image.
- @keyword image: image to be edited (required)
- @type image: L{NodeImage}
+ :keyword image: image to be edited (required)
+ :type image: :class:`NodeImage`
- @keyword public: should be the image public (required)
- @type public: C{bool}
+ :keyword public: should be the image public (required)
+ :type public: ``bool``
- @keyword ex_description: description of the image (optional)
- @type ex_description: C{str}
+ :keyword ex_description: description of the image (optional)
+ :type ex_description: ``str``
- @keyword name: name of the image
- @type name C{str}
+ :keyword name: name of the image
+ :type name ``str``
- @rtype: L{NodeImage}
+ :rtype: :class:`NodeImage`
"""
image = kwargs['image']
@@ -429,22 +429,22 @@ class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
"""Return list of IP addresses assigned to
the account.
- @keyword public: set to True to list only
+ :keyword public: set to True to list only
public IPs or False to list only
private IPs. Set to None or not specify
at all not to filter by type
- @type public: C{bool}
+ :type public: ``bool``
- @keyword assigned: set to True to list only addresses
+ :keyword assigned: set to True to list only addresses
assigned to servers, False to list unassigned
addresses and set to None or don't set at all
not no filter by state
- @type assigned: C{bool}
+ :type assigned: ``bool``
- @keyword location: filter IP addresses by location
- @type location: L{NodeLocation}
+ :keyword location: filter IP addresses by location
+ :type location: :class:`NodeLocation`
- @rtype: C{list} of L{GoGridIpAddress}
+ :rtype: ``list`` of :class:`GoGridIpAddress`
"""
params = {}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/hostvirtual.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/hostvirtual.py b/libcloud/compute/drivers/hostvirtual.py
index de5e73d..2d08815 100644
--- a/libcloud/compute/drivers/hostvirtual.py
+++ b/libcloud/compute/drivers/hostvirtual.py
@@ -140,14 +140,14 @@ class HostVirtualNodeDriver(NodeDriver):
def _wait_for_node(self, node_id, timeout=30, interval=5.0):
"""
- @param node_id: ID of the node to wait for.
- @type node_id: C{int}
+ :param node_id: ID of the node to wait for.
+ :type node_id: ``int``
- @param timeout: Timeout (in seconds).
- @type timeout: C{int}
+ :param timeout: Timeout (in seconds).
+ :type timeout: ``int``
- @param interval: How long to wait (in seconds) between each attempt.
- @type interval: C{float}
+ :param interval: How long to wait (in seconds) between each attempt.
+ :type interval: ``float``
"""
# poll until we get a node
for i in range(0, timeout, int(interval)):
@@ -222,10 +222,10 @@ class HostVirtualNodeDriver(NodeDriver):
"""
Get a single node.
- @param node_id: id of the node that we need the node object for
- @type node_id: C{str}
+ :param node_id: id of the node that we need the node object for
+ :type node_id: ``str``
- @rtype: L{Node}
+ :rtype: :class:`Node`
"""
params = {'mbpkgid': node_id}
@@ -238,10 +238,10 @@ class HostVirtualNodeDriver(NodeDriver):
"""
Stop a node.
- @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 = {'force': 0, 'mbpkgid': node.id}
result = self.connection.request(
@@ -255,10 +255,10 @@ class HostVirtualNodeDriver(NodeDriver):
"""
Start a node.
- @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 = {'mbpkgid': node.id}
result = self.connection.request(
@@ -272,20 +272,20 @@ class HostVirtualNodeDriver(NodeDriver):
"""
Provision a server on a VR package and get it booted
- @keyword node: node which should be used
- @type node: L{Node}
+ :keyword node: node which should be used
+ :type node: :class:`Node`
- @keyword image: The distribution to deploy on your server (mandatory)
- @type image: L{NodeImage}
+ :keyword image: The distribution to deploy on your server (mandatory)
+ :type image: :class:`NodeImage`
- @keyword auth: an SSH key or root password (mandatory)
- @type auth: L{NodeAuthSSHKey} or L{NodeAuthPassword}
+ :keyword auth: an SSH key or root password (mandatory)
+ :type auth: :class:`NodeAuthSSHKey` or :class:`NodeAuthPassword`
- @keyword location: which datacenter to create the server in
- @type location: L{NodeLocation}
+ :keyword location: which datacenter to create the server in
+ :type location: :class:`NodeLocation`
- @return: Node representing the newly built server
- @rtype: L{Node}
+ :return: Node representing the newly built server
+ :rtype: :class:`Node`
"""
node = kwargs['node']
@@ -325,10 +325,10 @@ class HostVirtualNodeDriver(NodeDriver):
"""
Delete a node.
- @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 = {'mbpkgid': node.id}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/ibm_sce.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ibm_sce.py b/libcloud/compute/drivers/ibm_sce.py
index 0ffb835..609faa4 100644
--- a/libcloud/compute/drivers/ibm_sce.py
+++ b/libcloud/compute/drivers/ibm_sce.py
@@ -177,23 +177,23 @@ class IBMNodeDriver(NodeDriver):
"""
Creates a node in the IBM SmartCloud Enterprise.
- See L{NodeDriver.create_node} for more keyword args.
+ See :class:`NodeDriver.create_node` for more keyword args.
- @inherits: L{NodeDriver.create_node}
+ @inherits: :class:`NodeDriver.create_node`
- @keyword auth: Name of the pubkey to use. When constructing
- C{NodeAuthSSHKey} instance, 'pubkey' argument must be the name of
+ :keyword auth: Name of the pubkey to use. When constructing
+ :class:`NodeAuthSSHKey` instance, 'pubkey' argument must be the name of
the public key to use. You chose this name when creating
a new public key on the IBM server.
- @type auth: L{NodeAuthSSHKey}
+ :type auth: :class:`NodeAuthSSHKey`
- @keyword ex_configurationData: Image-specific configuration
+ :keyword ex_configurationData: Image-specific configuration
parameters. Configuration parameters are defined in the parameters
.xml file. The URL to this file is defined in the NodeImage at
extra[parametersURL].
Note: This argument must be specified when launching a Windows
instance. It must contain 'UserName' and 'Password' keys.
- @type ex_configurationData: C{dict}
+ :type ex_configurationData: ``dict``
"""
# Compose headers for message body
@@ -225,48 +225,48 @@ class IBMNodeDriver(NodeDriver):
"""
Create a new block storage volume (virtual disk)
- @param size: Size of volume in gigabytes (required).
+ :param size: Size of volume in gigabytes (required).
Find out the possible sizes from the
offerings/storage REST interface
- @type size: C{int}
+ :type size: ``int``
- @keyword name: Name of the volume to be created (required)
- @type name: C{str}
+ :keyword name: Name of the volume to be created (required)
+ :type name: ``str``
- @keyword location: Which data center to create a volume in. If
+ :keyword location: Which data center to create a volume in. If
empty, it will fail for IBM SmartCloud Enterprise
(required)
- @type location: L{NodeLocation}
+ :type location: :class:`NodeLocation`
- @keyword snapshot: Not supported for IBM SmartCloud Enterprise
- @type snapshot: C{str}
+ :keyword snapshot: Not supported for IBM SmartCloud Enterprise
+ :type snapshot: ``str``
- @keyword kwargs.format: Either RAW or EXT3 for IBM SmartCloud
+ :keyword kwargs.format: Either RAW or EXT3 for IBM SmartCloud
Enterprise (optional)
- @type kwargs.format: C{str}
+ :type kwargs.format: ``str``
- @keyword kwargs.offering_id: The storage offering ID for IBM
+ :keyword kwargs.offering_id: The storage offering ID for IBM
SmartCloud Enterprise
Find this from the REST interface
storage/offerings. (optional)
- @type kwargs.offering_id: C{str}
+ :type kwargs.offering_id: ``str``
- @keyword kwargs.source_disk_id: If cloning a volume, the storage
+ :keyword kwargs.source_disk_id: If cloning a volume, the storage
disk to make a copy from (optional)
- @type kwargs.source_disk_id: C{str}
+ :type kwargs.source_disk_id: ``str``
- @keyword kwargs.storage_area_id: The id of the storage availability
+ :keyword kwargs.storage_area_id: The id of the storage availability
area to create the volume in
(optional)
- @type kwargs.storage_area_id: C{str}
+ :type kwargs.storage_area_id: ``str``
- @keyword kwargs.target_location_id: If cloning a volume, the
+ :keyword kwargs.target_location_id: If cloning a volume, the
storage disk to make a copy
from (optional)
- @type kwargs.target_location_id: C{str}
+ :type kwargs.target_location_id: ``str``
- @return: The newly created L{StorageVolume}.
- @rtype: L{StorageVolume}
+ :return: The newly created :class:`StorageVolume`.
+ :rtype: :class:`StorageVolume`
"""
data = {}
data.update({'name': name})
@@ -295,21 +295,21 @@ class IBMNodeDriver(NodeDriver):
"""
Create a new node image from an existing volume or image.
- @param name: Name of the image to be created (required)
- @type name: C{str}
+ :param name: Name of the image to be created (required)
+ :type name: ``str``
- @param description: Description of the image to be created
- @type description: C{str}
+ :param description: Description of the image to be created
+ :type description: ``str``
- @keyword image_id: The ID of the source image if cloning the image
- @type image_id: C{str}
+ :keyword image_id: The ID of the source image if cloning the image
+ :type image_id: ``str``
- @keyword volume_id: The ID of the storage volume if
+ :keyword volume_id: The ID of the storage volume if
importing the image
- @type volume_id: C{str}
+ :type volume_id: ``str``
- @return: The newly created L{NodeImage}.
- @rtype: L{NodeImage}
+ :return: The newly created :class:`NodeImage`.
+ :rtype: :class:`NodeImage`
"""
data = {}
data.update({'name': name})
@@ -336,10 +336,10 @@ class IBMNodeDriver(NodeDriver):
"""
Destroys a storage volume.
- @param volume: Volume to be destroyed
- @type volume: L{StorageVolume}
+ :param volume: Volume to be destroyed
+ :type volume: :class:`StorageVolume`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
url = REST_BASE + '/storage/%s' % (volume.id)
status = int(self.connection.request(action=url,
@@ -350,10 +350,10 @@ class IBMNodeDriver(NodeDriver):
"""
Destroys an image.
- @param image: Image to be destroyed
- @type image: L{NodeImage}
+ :param image: Image to be destroyed
+ :type image: :class:`NodeImage`
- @return: C{bool}
+ :return: ``bool``
"""
url = REST_BASE + '/offerings/image/%s' % (image.id)
@@ -365,13 +365,13 @@ class IBMNodeDriver(NodeDriver):
"""
Attaches volume to node.
- @param node: Node to attach volume to
- @type node: L{Node}
+ :param node: Node to attach volume to
+ :type node: :class:`Node`
- @param volume: Volume to attach
- @type volume: L{StorageVolume}
+ :param volume: Volume to attach
+ :type volume: :class:`StorageVolume`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
url = REST_BASE + '/instances/%s' % (node.id)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
@@ -386,13 +386,13 @@ class IBMNodeDriver(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``
"""
url = REST_BASE + '/instances/%s' % (node.id)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
@@ -426,7 +426,7 @@ class IBMNodeDriver(NodeDriver):
"""
List storage volumes.
- @rtype: C{list} of L{StorageVolume}
+ :rtype: ``list`` of :class:`StorageVolume`
"""
return self._to_volumes(
self.connection.request(REST_BASE + '/storage').object)
@@ -438,7 +438,7 @@ class IBMNodeDriver(NodeDriver):
a size that matches the architecture (32-bit vs 64-bit) of the virtual
machine image operating system.
- @inherits: L{NodeDriver.list_sizes}
+ @inherits: :class:`NodeDriver.list_sizes`
"""
return [
NodeSize('BRZ32.1/2048/60*175', 'Bronze 32 bit', None, None, None,
@@ -468,7 +468,7 @@ class IBMNodeDriver(NodeDriver):
"""
List the storage center offerings
- @rtype: C{list} of L{VolumeOffering}
+ :rtype: ``list`` of :class:`VolumeOffering`
"""
return self._to_volume_offerings(
self.connection.request(REST_BASE + '/offerings/storage').object)
@@ -477,17 +477,17 @@ class IBMNodeDriver(NodeDriver):
"""
Allocate a new reserved IP address
- @param location_id: Target data center
- @type location_id: C{str}
+ :param location_id: Target data center
+ :type location_id: ``str``
- @param offering_id: Offering ID for address to create
- @type offering_id: C{str}
+ :param offering_id: Offering ID for address to create
+ :type offering_id: ``str``
- @param vlan_id: ID of target VLAN
- @type vlan_id: C{str}
+ :param vlan_id: ID of target VLAN
+ :type vlan_id: ``str``
- @return: L{Address} object
- @rtype: L{Address}
+ :return: :class:`Address` object
+ :rtype: :class:`Address`
"""
url = REST_BASE + '/addresses'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
@@ -504,11 +504,11 @@ class IBMNodeDriver(NodeDriver):
"""
List the reserved IP addresses
- @param resource_id: If this is supplied only a single address will
+ :param resource_id: If this is supplied only a single address will
be returned (optional)
- @type resource_id: C{str}
+ :type resource_id: ``str``
- @rtype: C{list} of L{Address}
+ :rtype: ``list`` of :class:`Address`
"""
url = REST_BASE + '/addresses'
if resource_id:
@@ -519,14 +519,14 @@ class IBMNodeDriver(NodeDriver):
"""
Copies a node image to a storage volume
- @param image: source image to copy
- @type image: L{NodeImage}
+ :param image: source image to copy
+ :type image: :class:`NodeImage`
- @param volume: Target storage volume to copy to
- @type volume: L{StorageVolume}
+ :param volume: Target storage volume to copy to
+ :type volume: :class:`StorageVolume`
- @return: C{bool} The success of the operation
- @rtype: C{bool}
+ :return: ``bool`` The success of the operation
+ :rtype: ``bool``
"""
url = REST_BASE + '/storage/%s' % (volume.id)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
@@ -541,10 +541,10 @@ class IBMNodeDriver(NodeDriver):
"""
Delete a reserved IP address
- @param resource_id: The address to delete (required)
- @type resource_id: C{str}
+ :param resource_id: The address to delete (required)
+ :type resource_id: ``str``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
url = REST_BASE + '/addresses/' + resource_id
status = int(self.connection.request(action=url,
@@ -556,21 +556,21 @@ class IBMNodeDriver(NodeDriver):
"""
Block until storage volume state changes to the given value
- @param volume: Storage volume.
- @type volume: L{StorageVolume}
+ :param volume: Storage volume.
+ :type volume: :class:`StorageVolume`
- @param state: The target state to wait for
- @type state: C{int}
+ :param state: The target state to wait for
+ :type state: ``int``
- @param wait_period: How many seconds to between each loop
+ :param wait_period: How many seconds to between each loop
iteration (default is 3)
- @type wait_period: C{int}
+ :type wait_period: ``int``
- @param timeout: How many seconds to wait before timing out
+ :param timeout: How many seconds to wait before timing out
(default is 1200)
- @type timeout: C{int}
+ :type timeout: ``int``
- @rtype: L{StorageVolume}
+ :rtype: :class:`StorageVolume`
"""
start = time.time()
end = start + timeout
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/joyent.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/joyent.py b/libcloud/compute/drivers/joyent.py
index f8e3658..f972c94 100644
--- a/libcloud/compute/drivers/joyent.py
+++ b/libcloud/compute/drivers/joyent.py
@@ -98,10 +98,10 @@ class JoyentNodeDriver(NodeDriver):
def __init__(self, *args, **kwargs):
"""
- @inherits: L{NodeDriver.__init__}
+ @inherits: :class:`NodeDriver.__init__`
- @keyword location: Location which should be used
- @type location: C{str}
+ :keyword location: Location which should be used
+ :type location: ``str``
"""
if 'location' in kwargs:
if kwargs['location'] not in LOCATIONS:
@@ -176,10 +176,10 @@ class JoyentNodeDriver(NodeDriver):
"""
Stop node
- @param node: The node to be stopped
- @type node: L{Node}
+ :param node: The node to be stopped
+ :type node: :class:`Node`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
data = json.dumps({'action': 'stop'})
result = self.connection.request('/my/machines/%s' % (node.id),
@@ -190,10 +190,10 @@ class JoyentNodeDriver(NodeDriver):
"""
Start node
- @param node: The node to be stopped
- @type node: L{Node}
+ :param node: The node to be stopped
+ :type node: :class:`Node`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
data = json.dumps({'action': 'start'})
result = self.connection.request('/my/machines/%s' % (node.id),
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/libvirt_driver.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/libvirt_driver.py b/libcloud/compute/drivers/libvirt_driver.py
index 289ec8c..a6a4309 100644
--- a/libcloud/compute/drivers/libvirt_driver.py
+++ b/libcloud/compute/drivers/libvirt_driver.py
@@ -49,10 +49,10 @@ class LibvirtNodeDriver(NodeDriver):
def __init__(self, uri):
"""
- @param uri: URI (required)
- @type uri: C{str}
+ :param uri: URI (required)
+ :type uri: ``str``
- @rtype: C{None}
+ :rtype: ``None``
"""
if not have_libvirt:
raise RuntimeError('Libvirt driver requires \'libvirt\' Python ' +
@@ -98,10 +98,10 @@ class LibvirtNodeDriver(NodeDriver):
"""
Start a stopped node.
- @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``
"""
domain = self._get_domain_for_node(node=node)
return domain.create() == 0
@@ -110,10 +110,10 @@ class LibvirtNodeDriver(NodeDriver):
"""
Shutdown a running node.
- @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``
"""
domain = self._get_domain_for_node(node=node)
return domain.shutdown() == 0
@@ -122,10 +122,10 @@ class LibvirtNodeDriver(NodeDriver):
"""
Suspend a running node.
- @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``
"""
domain = self._get_domain_for_node(node=node)
return domain.suspend() == 0
@@ -134,10 +134,10 @@ class LibvirtNodeDriver(NodeDriver):
"""
Resume a suspended node.
- @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``
"""
domain = self._get_domain_for_node(node=node)
return domain.resume() == 0
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/linode.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/linode.py b/libcloud/compute/drivers/linode.py
index e92ca23..4239911 100644
--- a/libcloud/compute/drivers/linode.py
+++ b/libcloud/compute/drivers/linode.py
@@ -79,10 +79,10 @@ class LinodeNodeDriver(NodeDriver):
def __init__(self, key):
"""Instantiate the driver with the given API key
- @param key: the API key to use (required)
- @type key: C{str}
+ :param key: the API key to use (required)
+ :type key: ``str``
- @rtype: C{None}
+ :rtype: ``None``
"""
self.datacenter = None
NodeDriver.__init__(self, key)
@@ -107,8 +107,8 @@ class LinodeNodeDriver(NodeDriver):
If a node is in this list, rebooting will work; however, creation and
destruction are a separate grant.
- @return: List of node objects that the API key can access
- @rtype: C{list} of L{Node}
+ :return: List of node objects that the API key can access
+ :rtype: ``list`` of :class:`Node`
"""
params = {"api_action": "linode.list"}
data = self.connection.request(API_ROOT, params=params).objects[0]
@@ -121,10 +121,10 @@ class LinodeNodeDriver(NodeDriver):
Will issue a shutdown job followed by a boot job, using the last booted
configuration. In most cases, this will be the only configuration.
- @param node: the Linode to reboot
- @type node: L{Node}
+ :param node: the Linode to reboot
+ :type node: :class:`Node`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
params = {"api_action": "linode.reboot", "LinodeID": node.id}
self.connection.request(API_ROOT, params=params)
@@ -141,10 +141,10 @@ class LinodeNodeDriver(NodeDriver):
Linode can be removed; however, this call explicitly skips those
safeguards. There is no going back from this method.
- @param node: the Linode to destroy
- @type node: L{Node}
+ :param node: the Linode to destroy
+ :type node: :class:`Node`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
params = {"api_action": "linode.delete", "LinodeID": node.id,
"skipChecks": True}
@@ -161,50 +161,50 @@ class LinodeNodeDriver(NodeDriver):
Note that there is a safety valve of 5 Linodes per hour, in order to
prevent a runaway script from ruining your day.
- @keyword name: the name to assign the Linode (mandatory)
- @type name: C{str}
+ :keyword name: the name to assign the Linode (mandatory)
+ :type name: ``str``
- @keyword image: which distribution to deploy on the Linode (mandatory)
- @type image: L{NodeImage}
+ :keyword image: which distribution to deploy on the Linode (mandatory)
+ :type image: :class:`NodeImage`
- @keyword size: the plan size to create (mandatory)
- @type size: L{NodeSize}
+ :keyword size: the plan size to create (mandatory)
+ :type size: :class:`NodeSize`
- @keyword auth: an SSH key or root password (mandatory)
- @type auth: L{NodeAuthSSHKey} or L{NodeAuthPassword}
+ :keyword auth: an SSH key or root password (mandatory)
+ :type auth: :class:`NodeAuthSSHKey` or :class:`NodeAuthPassword`
- @keyword location: which datacenter to create the Linode in
- @type location: L{NodeLocation}
+ :keyword location: which datacenter to create the Linode in
+ :type location: :class:`NodeLocation`
- @keyword ex_swap: size of the swap partition in MB (128)
- @type ex_swap: C{int}
+ :keyword ex_swap: size of the swap partition in MB (128)
+ :type ex_swap: ``int``
- @keyword ex_rsize: size of the root partition in MB (plan size - swap).
- @type ex_rsize: C{int}
+ :keyword ex_rsize: size of the root partition in MB (plan size - swap).
+ :type ex_rsize: ``int``
- @keyword ex_kernel: a kernel ID from avail.kernels (Latest 2.6 Stable).
- @type ex_kernel: C{str}
+ :keyword ex_kernel: a kernel ID from avail.kernels (Latest 2.6 Stable).
+ :type ex_kernel: ``str``
- @keyword ex_payment: one of 1, 12, or 24; subscription length (1)
- @type ex_payment: C{int}
+ :keyword ex_payment: one of 1, 12, or 24; subscription length (1)
+ :type ex_payment: ``int``
- @keyword ex_comment: a small comment for the configuration (libcloud)
- @type ex_comment: C{str}
+ :keyword ex_comment: a small comment for the configuration (libcloud)
+ :type ex_comment: ``str``
- @keyword ex_private: whether or not to request a private IP (False)
- @type ex_private: C{bool}
+ :keyword ex_private: whether or not to request a private IP (False)
+ :type ex_private: ``bool``
- @keyword lconfig: what to call the configuration (generated)
- @type lconfig: C{str}
+ :keyword lconfig: what to call the configuration (generated)
+ :type lconfig: ``str``
- @keyword lroot: what to call the root image (generated)
- @type lroot: C{str}
+ :keyword lroot: what to call the root image (generated)
+ :type lroot: ``str``
- @keyword lswap: what to call the swap space (generated)
- @type lswap: C{str}
+ :keyword lswap: what to call the swap space (generated)
+ :type lswap: ``str``
- @return: Node representing the newly-created Linode
- @rtype: L{Node}
+ :return: Node representing the newly-created Linode
+ :rtype: :class:`Node`
"""
name = kwargs["name"]
image = kwargs["image"]
@@ -388,10 +388,10 @@ class LinodeNodeDriver(NodeDriver):
Linode plans vary per-location, this method can also be passed a
location to filter the availability.
- @keyword location: the facility to retrieve plans in
- @type location: L{NodeLocation}
+ :keyword location: the facility to retrieve plans in
+ :type location: :class:`NodeLocation`
- @rtype: C{list} of L{NodeSize}
+ :rtype: ``list`` of :class:`NodeSize`
"""
params = {"api_action": "avail.linodeplans"}
data = self.connection.request(API_ROOT, params=params).objects[0]
@@ -409,7 +409,7 @@ class LinodeNodeDriver(NodeDriver):
Retrieve all Linux distributions that can be deployed to a Linode.
- @rtype: C{list} of L{NodeImage}
+ :rtype: ``list`` of :class:`NodeImage`
"""
params = {"api_action": "avail.distributions"}
data = self.connection.request(API_ROOT, params=params).objects[0]
@@ -429,7 +429,7 @@ class LinodeNodeDriver(NodeDriver):
Retrieve all facilities that a Linode can be deployed in.
- @rtype: C{list} of L{NodeLocation}
+ :rtype: ``list`` of :class:`NodeLocation`
"""
params = {"api_action": "avail.datacenters"}
data = self.connection.request(API_ROOT, params=params).objects[0]
@@ -455,13 +455,13 @@ class LinodeNodeDriver(NodeDriver):
Set the default datacenter for Linode creation
Since Linodes must be created in a facility, this function sets the
- default that L{create_node} will use. If a C{location} keyword is not
- passed to L{create_node}, this method must have already been used.
+ default that :class:`create_node` will use. If a location keyword is not
+ passed to :class:`create_node`, this method must have already been used.
- @keyword dc: the datacenter to create Linodes in unless specified
- @type dc: L{NodeLocation}
+ :keyword dc: the datacenter to create Linodes in unless specified
+ :type dc: :class:`NodeLocation`
- @rtype: C{bool}
+ :rtype: ``bool``
"""
did = dc.id
params = {"api_action": "avail.datacenters"}
@@ -478,9 +478,9 @@ class LinodeNodeDriver(NodeDriver):
def _to_nodes(self, objs):
"""Convert returned JSON Linodes into Node instances
- @keyword objs: C{list} of JSON dictionaries representing the Linodes
- @type objs: C{list}
- @return: C{list} of L{Node}s"""
+ :keyword objs: ``list`` of JSON dictionaries representing the Linodes
+ :type objs: ``list``
+ :return: ``list`` of :class:`Node`s"""
# Get the IP addresses for the Linodes
nodes = {}