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:48 UTC
[6/6] git commit: Migrate API docstrings to Sphinx format.
Migrate API docstrings to Sphinx format.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f01e0637
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f01e0637
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f01e0637
Branch: refs/heads/trunk
Commit: f01e06373cbe8209722399b5102c2bbf5f9a7858
Parents: 4a0514b
Author: Tomaz Muraus <to...@apache.org>
Authored: Fri Sep 27 23:44:54 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sat Sep 28 13:02:21 2013 +0200
----------------------------------------------------------------------
demos/gce_demo.py | 20 +-
libcloud/__init__.py | 6 +-
libcloud/common/abiquo.py | 58 +-
libcloud/common/base.py | 142 ++---
libcloud/common/gandi.py | 2 +-
libcloud/common/gogrid.py | 14 +-
libcloud/common/google.py | 112 ++--
libcloud/common/linode.py | 15 +-
libcloud/common/openstack.py | 54 +-
libcloud/common/types.py | 2 +-
libcloud/common/xmlrpc.py | 8 +-
libcloud/compute/base.py | 6 +-
libcloud/compute/deployment.py | 74 +--
libcloud/compute/drivers/abiquo.py | 150 +++---
libcloud/compute/drivers/brightbox.py | 56 +-
libcloud/compute/drivers/cloudsigma.py | 82 +--
libcloud/compute/drivers/cloudstack.py | 440 +++++++--------
libcloud/compute/drivers/digitalocean.py | 26 +-
libcloud/compute/drivers/dreamhost.py | 6 +-
libcloud/compute/drivers/dummy.py | 26 +-
libcloud/compute/drivers/ec2.py | 238 ++++----
libcloud/compute/drivers/ecp.py | 26 +-
libcloud/compute/drivers/elasticstack.py | 46 +-
libcloud/compute/drivers/gandi.py | 114 ++--
libcloud/compute/drivers/gce.py | 656 +++++++++++------------
libcloud/compute/drivers/gogrid.py | 104 ++--
libcloud/compute/drivers/hostvirtual.py | 56 +-
libcloud/compute/drivers/ibm_sce.py | 170 +++---
libcloud/compute/drivers/joyent.py | 18 +-
libcloud/compute/drivers/libvirt_driver.py | 30 +-
libcloud/compute/drivers/linode.py | 108 ++--
libcloud/compute/drivers/opennebula.py | 212 ++++----
libcloud/compute/drivers/openstack.py | 546 +++++++++----------
libcloud/compute/drivers/opsource.py | 70 +--
libcloud/compute/drivers/rackspace.py | 14 +-
libcloud/compute/drivers/rimuhosting.py | 64 +--
libcloud/compute/drivers/slicehost.py | 2 +-
libcloud/compute/drivers/softlayer.py | 36 +-
libcloud/compute/drivers/vcl.py | 88 +--
libcloud/compute/drivers/vcloud.py | 224 ++++----
libcloud/compute/drivers/voxel.py | 46 +-
libcloud/compute/drivers/vpsnet.py | 10 +-
libcloud/compute/ssh.py | 70 +--
libcloud/compute/types.py | 82 +--
libcloud/dns/base.py | 2 +-
libcloud/dns/drivers/dummy.py | 26 +-
libcloud/dns/drivers/linode.py | 8 -
libcloud/dns/drivers/rackspace.py | 16 +-
libcloud/dns/drivers/route53.py | 4 +-
libcloud/dns/drivers/zerigo.py | 18 +-
libcloud/loadbalancer/base.py | 4 +-
libcloud/loadbalancer/drivers/cloudstack.py | 14 +-
libcloud/loadbalancer/drivers/gogrid.py | 6 +-
libcloud/loadbalancer/drivers/rackspace.py | 470 ++++++++--------
libcloud/loadbalancer/types.py | 4 +-
libcloud/storage/base.py | 2 +-
libcloud/storage/drivers/atmos.py | 14 +-
libcloud/storage/drivers/azure_blobs.py | 206 +++----
libcloud/storage/drivers/cloudfiles.py | 58 +-
libcloud/storage/drivers/dummy.py | 38 +-
libcloud/storage/drivers/local.py | 182 +++----
libcloud/storage/drivers/s3.py | 144 ++---
libcloud/storage/types.py | 26 +-
libcloud/utils/files.py | 20 +-
libcloud/utils/misc.py | 20 +-
65 files changed, 2804 insertions(+), 2807 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/demos/gce_demo.py
----------------------------------------------------------------------
diff --git a/demos/gce_demo.py b/demos/gce_demo.py
index 92a31b2..c2209de 100755
--- a/demos/gce_demo.py
+++ b/demos/gce_demo.py
@@ -79,11 +79,11 @@ def display(title, resource_list):
"""
Display a list of resources.
- @param title: String to be printed at the heading of the list.
- @type title: C{str}
+ :param title: String to be printed at the heading of the list.
+ :type title: ``str``
- @param resource_list: List of resources to display
- @type resource_list: Any C{object} with a C{name} attribute
+ :param resource_list: List of resources to display
+ :type resource_list: Any ``object`` with a C{name} attribute
"""
print('%s:' % title)
for item in resource_list[:10]:
@@ -94,15 +94,15 @@ def clean_up(base_name, node_list=None, resource_list=None):
"""
Destroy all resources that have a name beginning with 'base_name'.
- @param base_name: String with the first part of the name of resources
+ :param base_name: String with the first part of the name of resources
to destroy
- @type base_name: C{str}
+ :type base_name: ``str``
- @keyword node_list: List of nodes to consider for deletion
- @type node_list: C{list} of L{Node}
+ :keyword node_list: List of nodes to consider for deletion
+ :type node_list: ``list`` of :class:`Node`
- @keyword resource_list: List of resources to consider for deletion
- @type resource_list: C{list} of I{Resource Objects}
+ :keyword resource_list: List of resources to consider for deletion
+ :type resource_list: ``list`` of I{Resource Objects}
"""
if node_list is None:
node_list = []
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/__init__.py
----------------------------------------------------------------------
diff --git a/libcloud/__init__.py b/libcloud/__init__.py
index 64cb177..4bb5358 100644
--- a/libcloud/__init__.py
+++ b/libcloud/__init__.py
@@ -16,7 +16,7 @@
"""
libcloud provides a unified interface to the cloud computing resources.
-@var __version__: Current version of libcloud
+:var __version__: Current version of libcloud
"""
__all__ = ['__version__', 'enable_debug']
@@ -36,8 +36,8 @@ def enable_debug(fo):
"""
Enable library wide debugging to a file-like object.
- @param fo: Where to append debugging information
- @type fo: File like object, only write operations are used.
+ :param fo: Where to append debugging information
+ :type fo: File like object, only write operations are used.
"""
from libcloud.common.base import (Connection,
LoggingHTTPConnection,
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/common/abiquo.py
----------------------------------------------------------------------
diff --git a/libcloud/common/abiquo.py b/libcloud/common/abiquo.py
index f3d008b..0e508eb 100644
--- a/libcloud/common/abiquo.py
+++ b/libcloud/common/abiquo.py
@@ -15,7 +15,7 @@
"""
Abiquo Utilities Module for the Abiquo Driver.
-Common utilities needed by the L{AbiquoNodeDriver}.
+Common utilities needed by the :class:`AbiquoNodeDriver`.
"""
import base64
@@ -30,7 +30,7 @@ from libcloud.compute.base import NodeState
def get_href(element, rel):
"""
- Search a RESTLink element in the L{AbiquoResponse}.
+ Search a RESTLink element in the :class:`AbiquoResponse`.
Abiquo, as a REST API, it offers self-discovering functionality.
That means that you could walk through the whole API only
@@ -69,12 +69,12 @@ def get_href(element, rel):
'http://10.60.12.7:80/api/admin/datacenters/1'
- @type element: C{xml.etree.ElementTree}
- @param element: Xml Entity returned by Abiquo API (required)
- @type rel: C{string}
- @param rel: relation link name
- @rtype: C{string}
- @return: the 'href' value according to the 'rel' input parameter
+ :type element: :class:`xml.etree.ElementTree`
+ :param element: Xml Entity returned by Abiquo API (required)
+ :type rel: ``str``
+ :param rel: relation link name
+ :rtype: ``str``
+ :return: the 'href' value according to the 'rel' input parameter
"""
links = element.findall('link')
for link in links:
@@ -113,7 +113,7 @@ class AbiquoResponse(XmlResponse):
Parse the error messages.
Response body can easily be handled by this class parent
- L{XmlResponse}, but there are use cases which Abiquo API
+ :class:`XmlResponse`, but there are use cases which Abiquo API
does not respond an XML but an HTML. So we need to
handle these special cases.
"""
@@ -132,8 +132,8 @@ class AbiquoResponse(XmlResponse):
Any of the 2XX HTTP response codes are accepted as successfull requests
- @rtype: C{bool}
- @return: successful request or not.
+ :rtype: ``bool``
+ :return: successful request or not.
"""
return self.status in [httplib.OK, httplib.CREATED, httplib.NO_CONTENT,
httplib.ACCEPTED]
@@ -148,8 +148,8 @@ class AbiquoResponse(XmlResponse):
So this method checks if the status code is 'OK' and if the task
has finished successfully.
- @rtype: C{bool}
- @return: successful asynchronous request or not
+ :rtype: ``bool``
+ :return: successful asynchronous request or not
"""
if self.success():
# So we have a 'task' object in the body
@@ -163,7 +163,7 @@ class AbiquoConnection(ConnectionUserAndKey, PollingConnection):
"""
A Connection to Abiquo API.
- Basic L{ConnectionUserAndKey} connection with L{PollingConnection} features
+ Basic :class:`ConnectionUserAndKey` connection with :class:`PollingConnection` features
for asynchronous tasks.
"""
@@ -176,10 +176,10 @@ class AbiquoConnection(ConnectionUserAndKey, PollingConnection):
It injects the 'Authorization: Basic Base64String===' header
in each request
- @type headers: C{dict}
- @param headers: Default input headers
- @rtype C{dict}
- @return: Default input headers with the 'Authorization'
+ :type headers: ``dict``
+ :param headers: Default input headers
+ :rtype ``dict``
+ :return: Default input headers with the 'Authorization'
header
"""
b64string = b('%s:%s' % (self.user_id, self.key))
@@ -194,7 +194,7 @@ class AbiquoConnection(ConnectionUserAndKey, PollingConnection):
"""
Manage polling request arguments.
- Return keyword arguments which are passed to the L{NodeDriver.request}
+ Return keyword arguments which are passed to the :class:`NodeDriver.request`
method when polling for the job status. The Abiquo Asynchronous
Response returns and 'acceptedrequest' XmlElement as the following::
@@ -205,12 +205,12 @@ class AbiquoConnection(ConnectionUserAndKey, PollingConnection):
We need to extract the href URI to poll.
- @type response: C{xml.etree.ElementTree}
- @keyword response: Object returned by poll request.
- @type request_kwargs: C{dict}
- @keyword request_kwargs: Default request arguments and headers
- @rtype: C{dict}
- @return: Modified keyword arguments
+ :type response: :class:`xml.etree.ElementTree`
+ :keyword response: Object returned by poll request.
+ :type request_kwargs: ``dict``
+ :keyword request_kwargs: Default request arguments and headers
+ :rtype: ``dict``
+ :return: Modified keyword arguments
"""
accepted_request_obj = response.object
link_poll = get_href(accepted_request_obj, 'status')
@@ -224,10 +224,10 @@ class AbiquoConnection(ConnectionUserAndKey, PollingConnection):
"""
Decide if the asynchronous job has ended.
- @type response: C{xml.etree.ElementTree}
- @param response: Response object returned by poll request
- @rtype: C{bool}
- @return: Whether the job has completed
+ :type response: :class:`xml.etree.ElementTree`
+ :param response: Response object returned by poll request
+ :rtype: ``bool``
+ :return: Whether the job has completed
"""
task = response.object
task_state = task.findtext('state')
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/common/base.py
----------------------------------------------------------------------
diff --git a/libcloud/common/base.py b/libcloud/common/base.py
index 62f0103..0592a6a 100644
--- a/libcloud/common/base.py
+++ b/libcloud/common/base.py
@@ -100,7 +100,7 @@ class Response(object):
Override in a provider's subclass.
- @return: Parsed body.
+ :return: Parsed body.
"""
return self.body
@@ -110,7 +110,7 @@ class Response(object):
Override in a provider's subclass.
- @return: Parsed error.
+ :return: Parsed error.
"""
return self.body
@@ -121,7 +121,8 @@ class Response(object):
The meaning of this can be arbitrary; did we receive OK status? Did
the node get created? Were we authenticated?
- @return: C{True} or C{False}
+ :rtype: ``bool``
+ :return: ``True`` or ``False``
"""
return self.status == httplib.OK or self.status == httplib.CREATED
@@ -129,7 +130,7 @@ class Response(object):
"""
Decompress a response body if it is using deflate or gzip encoding.
- @return: Decompressed response
+ :return: Decompressed response
"""
headers = lowercase_keys(dict(response.getheaders()))
encoding = headers.get('content-encoding', None)
@@ -234,9 +235,9 @@ class RawResponse(Response):
class LoggingConnection():
"""
Debug class to log all HTTP(s) requests as they could be made
- with the C{curl} command.
+ with the curl command.
- @cvar log: file-like object that logs entries are written to.
+ :cvar log: file-like object that logs entries are written to.
"""
log = None
@@ -445,13 +446,13 @@ class Connection(object):
"""
Establish a connection with the API server.
- @type host: C{str}
- @param host: Optional host to override our default
+ :type host: ``str``
+ :param host: Optional host to override our default
- @type port: C{int}
- @param port: Optional port to override our default
+ :type port: ``int``
+ :param port: Optional port to override our default
- @returns: A connection
+ :returns: A connection
"""
# prefer the attribute base_url if its set or sent
connection = None
@@ -503,8 +504,8 @@ class Connection(object):
Users of the library should call this to uniquely identify thier
requests to a provider.
- @type token: C{str}
- @param token: Token to add to the user agent.
+ :type token: ``str``
+ :param token: Token to add to the user agent.
"""
self.ua.append(token)
@@ -516,30 +517,32 @@ class Connection(object):
Basically a wrapper around the connection
object's `request` that does some helpful pre-processing.
- @type action: C{str}
- @param action: A path. This can include arguments. If included,
+ :type action: ``str``
+ :param action: A path. This can include arguments. If included,
any extra parameters are appended to the existing ones.
- @type params: C{dict}
- @param params: Optional mapping of additional parameters to send. If
- None, leave as an empty C{dict}.
+ :type params: ``dict``
+ :param params: Optional mapping of additional parameters to send. If
+ None, leave as an empty ``dict``.
- @type data: C{unicode}
- @param data: A body of data to send with the request.
+ :type data: ``unicode``
+ :param data: A body of data to send with the request.
- @type headers: C{dict}
- @param headers: Extra headers to add to the request
- None, leave as an empty C{dict}.
+ :type headers: ``dict``
+ :param headers: Extra headers to add to the request
+ None, leave as an empty ``dict``.
- @type method: C{str}
- @param method: An HTTP method such as "GET" or "POST".
+ :type method: ``str``
+ :param method: An HTTP method such as "GET" or "POST".
- @type raw: C{bool}
- @param raw: True to perform a "raw" request aka only send the headers
+ :type raw: ``bool``
+ :param raw: True to perform a "raw" request aka only send the headers
and use the rawResponseCls class. This is used with
storage API when uploading a file.
- @return: An instance of type I{responseCls}
+ :return: An :class:`Response` instance.
+ :rtype: :class:`Response` instance
+
"""
if params is None:
params = {}
@@ -647,11 +650,11 @@ class Connection(object):
This hook can perform a final manipulation on the params, headers and
url parameters.
- @type params: C{dict}
- @param params: Request parameters.
+ :type params: ``dict``
+ :param params: Request parameters.
- @type headers: C{dict}
- @param headers: Request headers.
+ :type headers: ``dict``
+ :param headers: Request headers.
"""
return params, headers
@@ -694,28 +697,29 @@ class PollingConnection(Connection):
until the response indicates that the job has completed or the
timeout of 'self.timeout' seconds has been reached.
- @type action: C{str}
- @param action: A path
+ :type action: ``str``
+ :param action: A path
- @type params: C{dict}
- @param params: Optional mapping of additional parameters to send. If
- None, leave as an empty C{dict}.
+ :type params: ``dict``
+ :param params: Optional mapping of additional parameters to send. If
+ None, leave as an empty ``dict``.
- @type data: C{unicode}
- @param data: A body of data to send with the request.
+ :type data: ``unicode``
+ :param data: A body of data to send with the request.
- @type headers: C{dict}
- @param headers: Extra headers to add to the request
- None, leave as an empty C{dict}.
+ :type headers: ``dict``
+ :param headers: Extra headers to add to the request
+ None, leave as an empty ``dict``.
- @type method: C{str}
- @param method: An HTTP method such as "GET" or "POST".
+ :type method: ``str``
+ :param method: An HTTP method such as "GET" or "POST".
- @type context: C{dict}
- @param context: Context dictionary which is passed to the functions
+ :type context: ``dict``
+ :param context: Context dictionary which is passed to the functions
which construct initial and poll URL.
- @return: An instance of type I{responseCls}
+ :return: An :class:`Response` instance.
+ :rtype: :class:`Response` instance
"""
request = getattr(self, self.request_method)
@@ -757,14 +761,14 @@ class PollingConnection(Connection):
Return keyword arguments which are passed to the request() method when
polling for the job status.
- @param response: Response object returned by poll request.
- @type response: C{HTTPResponse}
+ :param response: Response object returned by poll request.
+ :type response: :class:`HTTPResponse`
- @param request_kwargs: Kwargs previously used to initiate the
+ :param request_kwargs: Kwargs previously used to initiate the
poll request.
- @type response: C{dict}
+ :type response: ``dict``
- @return C{dict} Keyword arguments
+ :return ``dict`` Keyword arguments
"""
raise NotImplementedError('get_poll_request_kwargs not implemented')
@@ -772,10 +776,10 @@ class PollingConnection(Connection):
"""
Return job completion status.
- @param response: Response object returned by poll request.
- @type response: C{HTTPResponse}
+ :param response: Response object returned by poll request.
+ :type response: :class:`HTTPResponse`
- @return C{bool} True if the job has completed, False otherwise.
+ :return ``bool`` True if the job has completed, False otherwise.
"""
raise NotImplementedError('has_completed not implemented')
@@ -787,7 +791,7 @@ class ConnectionKey(Connection):
def __init__(self, key, secure=True, host=None, port=None, url=None,
timeout=None):
"""
- Initialize `user_id` and `key`; set `secure` to an C{int} based on
+ Initialize `user_id` and `key`; set `secure` to an ``int`` based on
passed value.
"""
super(ConnectionKey, self).__init__(secure=secure, host=host,
@@ -821,27 +825,27 @@ class BaseDriver(object):
def __init__(self, key, secret=None, secure=True, host=None, port=None,
api_version=None, **kwargs):
"""
- @param key: API key or username to be used (required)
- @type key: C{str}
+ :param key: API key or username to be used (required)
+ :type key: ``str``
- @param secret: Secret password to be used (required)
- @type secret: C{str}
+ :param secret: Secret password to be used (required)
+ :type secret: ``str``
- @param secure: Weither to use HTTPS or HTTP. Note: Some providers
+ :param secure: Weither to use HTTPS or HTTP. Note: Some providers
only support HTTPS, and it is on by default.
- @type secure: C{bool}
+ :type secure: ``bool``
- @param host: Override hostname used for connections.
- @type host: C{str}
+ :param host: Override hostname used for connections.
+ :type host: ``str``
- @param port: Override port used for connections.
- @type port: C{int}
+ :param port: Override port used for connections.
+ :type port: ``int``
- @param api_version: Optional API version. Only used by drivers
+ :param api_version: Optional API version. Only used by drivers
which support multiple API versions.
- @type api_version: C{str}
+ :type api_version: ``str``
- @rtype: C{None}
+ :rtype: ``None``
"""
self.key = key
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/common/gandi.py
----------------------------------------------------------------------
diff --git a/libcloud/common/gandi.py b/libcloud/common/gandi.py
index fc7d5af..11e9622 100644
--- a/libcloud/common/gandi.py
+++ b/libcloud/common/gandi.py
@@ -115,7 +115,7 @@ class BaseObject(object):
def get_uuid(self):
"""Unique hash for this object
- @return: C{string}
+ :return: ``str``
The hash is a function of an SHA1 hash of prefix, the object's ID and
its driver which means that it should be unique between all
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/common/gogrid.py
----------------------------------------------------------------------
diff --git a/libcloud/common/gogrid.py b/libcloud/common/gogrid.py
index acc0c8d..eb2011a 100644
--- a/libcloud/common/gogrid.py
+++ b/libcloud/common/gogrid.py
@@ -138,22 +138,22 @@ class BaseGoGridDriver(object):
"""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/common/google.py
----------------------------------------------------------------------
diff --git a/libcloud/common/google.py b/libcloud/common/google.py
index 5c6e524..2a60251 100644
--- a/libcloud/common/google.py
+++ b/libcloud/common/google.py
@@ -33,8 +33,8 @@ package installed to use this):
- The key that you download is a PKCS12 key. It needs to be converted to
the PEM format.
- Convert the key using OpenSSL (the default password is 'notasecret'):
- C{openssl pkcs12 -in YOURPRIVKEY.p12 -nodes -nocerts
- | openssl rsa -out PRIV.pem}
+ ``openssl pkcs12 -in YOURPRIVKEY.p12 -nodes -nocerts
+ | openssl rsa -out PRIV.pem``
- Move the .pem file to a safe location.
- To Authenticate, you will need to pass the Service Account's "Email
address" in as the user_id and the path to the .pem file as the key.
@@ -124,27 +124,27 @@ class GoogleBaseAuthConnection(ConnectionUserAndKey):
redirect_uri='urn:ietf:wg:oauth:2.0:oob',
login_hint=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``
- @param scope: A list of urls defining the scope of authentication
+ :param scope: A list of urls defining the scope of authentication
to grant.
- @type scope: C{list}
+ :type scope: ``list``
- @keyword redirect_uri: The Redirect URI for the authentication
+ :keyword redirect_uri: The Redirect URI for the authentication
request. See Google OAUTH2 documentation for
more info.
- @type redirect_uri: C{str}
+ :type redirect_uri: ``str``
- @keyword login_hint: Login hint for authentication request. Useful
+ :keyword login_hint: Login hint for authentication request. Useful
for Installed Application authentication.
- @type login_hint: C{str}
+ :type login_hint: ``str``
"""
self.scope = " ".join(scope)
@@ -165,12 +165,12 @@ class GoogleBaseAuthConnection(ConnectionUserAndKey):
"""
Return an updated token from a token request body.
- @param request_body: A dictionary of values to send in the body of the
+ :param request_body: A dictionary of values to send in the body of the
token request.
- @type request_body: C{dict}
+ :type request_body: ``dict``
- @return: A dictionary with updated token information
- @rtype: C{dict}
+ :return: A dictionary with updated token information
+ :rtype: ``dict``
"""
data = urlencode(request_body)
now = self._now()
@@ -190,8 +190,8 @@ class GoogleInstalledAppAuthConnection(GoogleBaseAuthConnection):
Give the user a URL that they can visit to authenticate and obtain a
code. This method will ask for that code that the user can paste in.
- @return: Code supplied by the user after authenticating
- @rtype: C{str}
+ :return: Code supplied by the user after authenticating
+ :rtype: ``str``
"""
auth_params = {'response_type': 'code',
'client_id': self.user_id,
@@ -217,8 +217,8 @@ class GoogleInstalledAppAuthConnection(GoogleBaseAuthConnection):
Get a new token. Generally used when no previous token exists or there
is no refresh token
- @return: Dictionary containing token information
- @rtype: C{dict}
+ :return: Dictionary containing token information
+ :rtype: ``dict``
"""
# Ask the user for a code
code = self.get_code()
@@ -235,11 +235,11 @@ class GoogleInstalledAppAuthConnection(GoogleBaseAuthConnection):
"""
Use the refresh token supplied in the token info to get a new token.
- @param token_info: Dictionary containing current token information
- @type token_info: C{dict}
+ :param token_info: Dictionary containing current token information
+ :type token_info: ``dict``
- @return: A dictionary containing updated token information.
- @rtype: C{dict}
+ :return: A dictionary containing updated token information.
+ :rtype: ``dict``
"""
if 'refresh_token' not in token_info:
return self.get_new_token()
@@ -261,12 +261,12 @@ class GoogleServiceAcctAuthConnection(GoogleBaseAuthConnection):
Check to see if PyCrypto is available, and convert key file path into a
key string if the key is in a file.
- @param user_id: Email address to be used for Service Account
+ :param user_id: Email address to be used for Service Account
authentication.
- @type user_id: C{str}
+ :type user_id: ``str``
- @param key: The RSA Key or path to file containing the key.
- @type key: C{str}
+ :param key: The RSA Key or path to file containing the key.
+ :type key: ``str``
"""
if SHA256 is None:
raise GoogleAuthError('PyCrypto library required for '
@@ -284,8 +284,8 @@ class GoogleServiceAcctAuthConnection(GoogleBaseAuthConnection):
"""
Get a new token using the email address and RSA Key.
- @return: Dictionary containing token information
- @rtype: C{dict}
+ :return: Dictionary containing token information
+ :rtype: ``dict``
"""
# The header is always the same
header = {'alg': 'RS256', 'typ': 'JWT'}
@@ -321,12 +321,12 @@ class GoogleServiceAcctAuthConnection(GoogleBaseAuthConnection):
Service Account authentication doesn't supply a "refresh token" so
this simply gets a new token using the email address/key.
- @param token_info: Dictionary contining token information.
+ :param token_info: Dictionary contining token information.
(Not used, but here for compatibility)
- @type token_info: C{dict}
+ :type token_info: ``dict``
- @return: A dictionary containing updated token information.
- @rtype: C{dict}
+ :return: A dictionary containing updated token information.
+ :rtype: ``dict``
"""
return self.get_new_token()
@@ -345,24 +345,24 @@ class GoogleBaseConnection(ConnectionUserAndKey, PollingConnection):
Determine authentication type, set up appropriate authentication
connection and get initial authentication information.
- @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 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``
- @keyword credential_file: Path to file for caching authentication
+ :keyword credential_file: Path to file for caching authentication
information.
- @type credential_file: C{str}
+ :type credential_file: ``str``
"""
self.credential_file = credential_file or '~/.gce_libcloud_auth'
@@ -400,7 +400,7 @@ class GoogleBaseConnection(ConnectionUserAndKey, PollingConnection):
def add_default_headers(self, headers):
"""
- @inherits: L{Connection.add_default_headers}
+ @inherits: :class:`Connection.add_default_headers`
"""
headers['Content-Type'] = "application/json"
headers['Host'] = self.host
@@ -411,7 +411,7 @@ class GoogleBaseConnection(ConnectionUserAndKey, PollingConnection):
Check to make sure that token hasn't expired. If it has, get an
updated token. Also, add the token to the headers.
- @inherits: L{Connection.pre_connect_hook}
+ @inherits: :class:`Connection.pre_connect_hook`
"""
now = self._now()
if self.token_expire_time < now:
@@ -430,7 +430,7 @@ class GoogleBaseConnection(ConnectionUserAndKey, PollingConnection):
def request(self, *args, **kwargs):
"""
- @inherits: L{Connection.request}
+ @inherits: :class:`Connection.request`
"""
# Adds some retry logic for the occasional
# "Connection Reset by peer" error.
@@ -453,8 +453,8 @@ class GoogleBaseConnection(ConnectionUserAndKey, PollingConnection):
"""
Read credential file and return token information.
- @return: Token information dictionary, or None
- @rtype: C{dict} or C{None}
+ :return: Token information dictionary, or None
+ :rtype: ``dict`` or ``None``
"""
token_info = None
filename = os.path.realpath(os.path.expanduser(self.credential_file))
@@ -480,11 +480,11 @@ class GoogleBaseConnection(ConnectionUserAndKey, PollingConnection):
"""
Determine if operation has completed based on response.
- @param response: JSON response
- @type response: I{responseCls}
+ :param response: JSON response
+ :type response: I{responseCls}
- @return: True if complete, False otherwise
- @rtype: C{bool}
+ :return: True if complete, False otherwise
+ :rtype: ``bool``
"""
if response.object['status'] == 'DONE':
return True
@@ -493,7 +493,7 @@ class GoogleBaseConnection(ConnectionUserAndKey, PollingConnection):
def get_poll_request_kwargs(self, response, context, request_kwargs):
"""
- @inherits: L{PollingConnection.get_poll_request_kwargs}
+ @inherits: :class:`PollingConnection.get_poll_request_kwargs`
"""
return {'action': response.object['selfLink']}
@@ -506,11 +506,11 @@ class GoogleBaseConnection(ConnectionUserAndKey, PollingConnection):
the request. Otherwise, it will append the base request_path to
the action.
- @param action: The action to be called in the http request
- @type action: C{str}
+ :param action: The action to be called in the http request
+ :type action: ``str``
- @return: The modified request based on the action
- @rtype: C{str}
+ :return: The modified request based on the action
+ :rtype: ``str``
"""
if action.startswith('https://'):
u = urlparse.urlsplit(action)
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/common/linode.py
----------------------------------------------------------------------
diff --git a/libcloud/common/linode.py b/libcloud/common/linode.py
index a490af3..4f4f4e0 100644
--- a/libcloud/common/linode.py
+++ b/libcloud/common/linode.py
@@ -80,8 +80,8 @@ class LinodeResponse(JsonResponse):
def __init__(self, response, connection):
"""Instantiate a LinodeResponse from the HTTP response
- @keyword response: The raw response returned by urllib
- @return: parsed L{LinodeResponse}"""
+ :keyword response: The raw response returned by urllib
+ :return: parsed :class:`LinodeResponse`"""
self.body = self._decompress_response(response=response)
if PY3:
@@ -107,7 +107,7 @@ class LinodeResponse(JsonResponse):
If the response chokes the parser, action and data will be returned as
None and errorarray will indicate an invalid JSON exception.
- @return: C{list} of objects and C{list} of errors"""
+ :return: ``list`` of objects and ``list`` of errors"""
js = super(LinodeResponse, self).parse_body()
try:
@@ -134,14 +134,15 @@ class LinodeResponse(JsonResponse):
The way we determine success is by the presence of an error in
ERRORARRAY. If one is there, we assume the whole request failed.
- @return: C{bool} indicating a successful request"""
+ :return: ``bool`` indicating a successful request"""
return len(self.errors) == 0
def _make_excp(self, error):
"""Convert an API error to a LinodeException instance
- @keyword error: JSON object containing C{ERRORCODE} and C{ERRORMESSAGE}
- @type error: dict"""
+ :keyword error: JSON object containing ``ERRORCODE`` and
+ ``ERRORMESSAGE``
+ :type error: dict"""
if "ERRORCODE" not in error or "ERRORMESSAGE" not in error:
return None
if error["ERRORCODE"] == 4:
@@ -163,7 +164,7 @@ class LinodeConnection(ConnectionKey):
"""
Add parameters that are necessary for every request
- This method adds C{api_key} and C{api_responseFormat} to
+ This method adds ``api_key`` and ``api_responseFormat`` to
the request.
"""
params["api_key"] = self.key
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/common/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/common/openstack.py b/libcloud/common/openstack.py
index de7c9d8..513e930 100644
--- a/libcloud/common/openstack.py
+++ b/libcloud/common/openstack.py
@@ -133,9 +133,9 @@ class OpenStackAuthConnection(ConnectionUserAndKey):
"""
Authenticate against the keystone api.
- @param force: Forcefully update the token even if it's already cached
+ :param force: Forcefully update the token even if it's already cached
and still valid.
- @type force: C{bool}
+ :type force: ``bool``
"""
if not force and self.auth_version in AUTH_VERSIONS_WITH_EXPIRES \
and self._is_token_valid():
@@ -287,7 +287,7 @@ class OpenStackAuthConnection(ConnectionUserAndKey):
Return True if the current taken is already cached and hasn't expired
yet.
- @rtype: C{bool}
+ :rtype: ``bool``
"""
if not self.auth_token:
return False
@@ -414,51 +414,51 @@ class OpenStackBaseConnection(ConnectionUserAndKey):
"""
Base class for OpenStack connections.
- @param user_id: User name to use when authenticating
- @type user_id: C{string}
+ :param user_id: User name to use when authenticating
+ :type user_id: ``str``
- @param key: Secret to use when authenticating.
- @type key: C{string}
+ :param key: Secret to use when authenticating.
+ :type key: ``str``
- @param secure: Use HTTPS? (True by default.)
- @type secure: C{bool}
+ :param secure: Use HTTPS? (True by default.)
+ :type secure: ``bool``
- @param ex_force_base_url: Base URL for connection requests. If
+ :param ex_force_base_url: Base URL for connection requests. If
not specified, this will be determined by authenticating.
- @type ex_force_base_url: C{string}
+ :type ex_force_base_url: ``str``
- @param ex_force_auth_url: Base URL for authentication requests.
- @type ex_force_auth_url: C{string}
+ :param ex_force_auth_url: Base URL for authentication requests.
+ :type ex_force_auth_url: ``str``
- @param ex_force_auth_version: Authentication version to use. If
+ :param ex_force_auth_version: Authentication version to use. If
not specified, defaults to AUTH_API_VERSION.
- @type ex_force_auth_version: C{string}
+ :type ex_force_auth_version: ``str``
- @param ex_force_auth_token: Authentication token to use for
+ :param ex_force_auth_token: Authentication token to use for
connection requests. If specified, the connection will not attempt
to authenticate, and the value of ex_force_base_url will be used to
determine the base request URL. If ex_force_auth_token is passed in,
ex_force_base_url must also be provided.
- @type ex_force_auth_token: C{string}
+ :type ex_force_auth_token: ``str``
- @param ex_tenant_name: When authenticating, provide this tenant
+ :param ex_tenant_name: When authenticating, provide this tenant
name to the identity service. A scoped token will be returned.
Some cloud providers require the tenant name to be provided at
authentication time. Others will use a default tenant if none
is provided.
- @type ex_tenant_name: C{string}
+ :type ex_tenant_name: ``str``
- @param ex_force_service_type: Service type to use when selecting an
+ :param ex_force_service_type: Service type to use when selecting an
service. If not specified, a provider specific default will be used.
- @type ex_force_service_type: C{string}
+ :type ex_force_service_type: ``str``
- @param ex_force_service_name: Service name to use when selecting an
+ :param ex_force_service_name: Service name to use when selecting an
service. If not specified, a provider specific default will be used.
- @type ex_force_service_name: C{string}
+ :type ex_force_service_name: ``str``
- @param ex_force_service_region: Region to use when selecting an
+ :param ex_force_service_region: Region to use when selecting an
service. If not specified, a provider specific default will be used.
- @type ex_force_service_region: C{string}
+ :type ex_force_service_region: ``str``
"""
auth_url = None
@@ -517,7 +517,7 @@ class OpenStackBaseConnection(ConnectionUserAndKey):
Selects the endpoint to use based on provider specific values,
or overrides passed in by the user when setting up the driver.
- @returns: url of the relevant endpoint for the driver
+ :returns: url of the relevant endpoint for the driver
"""
service_type = self.service_type
service_name = self.service_name
@@ -611,7 +611,7 @@ class OpenStackDriverMixin(object):
def openstack_connection_kwargs(self):
"""
- @rtype: C{dict}
+ :rtype: ``dict``
"""
rv = {}
if self._ex_force_base_url:
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/common/types.py
----------------------------------------------------------------------
diff --git a/libcloud/common/types.py b/libcloud/common/types.py
index f6b9494..09ae697 100644
--- a/libcloud/common/types.py
+++ b/libcloud/common/types.py
@@ -97,7 +97,7 @@ class InvalidCredsError(ProviderError):
driver=driver)
-# Deprecated alias of L{InvalidCredsError}
+# Deprecated alias of :class:`InvalidCredsError`
InvalidCredsException = InvalidCredsError
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/common/xmlrpc.py
----------------------------------------------------------------------
diff --git a/libcloud/common/xmlrpc.py b/libcloud/common/xmlrpc.py
index eba7a7c..2502ea6 100644
--- a/libcloud/common/xmlrpc.py
+++ b/libcloud/common/xmlrpc.py
@@ -94,12 +94,12 @@ class XMLRPCConnection(Connection):
"""
Call a given `method_name`.
- @type method_name: C{str}
- @param method_name: A method exposed by the xmlrpc endpoint that you
+ :type method_name: ``str``
+ :param method_name: A method exposed by the xmlrpc endpoint that you
are connecting to.
- @type args: C{tuple}
- @param args: Arguments to invoke with method with.
+ :type args: ``tuple``
+ :param args: Arguments to invoke with method with.
"""
endpoint = kwargs.get('endpoint', self.endpoint)
data = xmlrpclib.dumps(args, methodname=method_name, allow_none=True)
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/base.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/base.py b/libcloud/compute/base.py
index 1c589c6..eb9f65d 100644
--- a/libcloud/compute/base.py
+++ b/libcloud/compute/base.py
@@ -481,13 +481,13 @@ class NodeDriver(BaseDriver):
def _get_and_check_auth(self, auth):
"""
- Helper function for providers supporting L{NodeAuthPassword} or
- L{NodeAuthSSHKey}
+ Helper function for providers supporting :class:`NodeAuthPassword` or
+ :class:`NodeAuthSSHKey`
Validates that only a supported object type is passed to the auth
parameter and raises an exception if it is not.
- If no L{NodeAuthPassword} object is provided but one is expected then a
+ If no :class:`NodeAuthPassword` object is provided but one is expected then a
password is automatically generated.
"""
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/deployment.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/deployment.py b/libcloud/compute/deployment.py
index 3d8784c..5ef3bb2 100644
--- a/libcloud/compute/deployment.py
+++ b/libcloud/compute/deployment.py
@@ -32,15 +32,15 @@ class Deployment(object):
def run(self, node, client):
"""
- Runs this deployment task on C{node} using the C{client} provided.
+ Runs this deployment task on node using the client provided.
- @type node: L{Node}
- @keyword node: Node to operate one
+ :type node: :class:`Node`
+ :keyword node: Node to operate one
- @type client: L{BaseSSHClient}
- @keyword client: Connected SSH client to use.
+ :type client: :class:`BaseSSHClient`
+ :keyword client: Connected SSH client to use.
- @return: L{Node}
+ :return: :class:`Node`
"""
raise NotImplementedError(
'run not implemented for this deployment')
@@ -64,8 +64,8 @@ class SSHKeyDeployment(Deployment):
def __init__(self, key):
"""
- @type key: C{str} or C{File} object
- @keyword key: Contents of the public key write or a file object which
+ :type key: ``str`` or :class:`File` object
+ :keyword key: Contents of the public key write or a file object which
can be read.
"""
self.key = self._get_string_value(argument_name='key',
@@ -73,9 +73,9 @@ class SSHKeyDeployment(Deployment):
def run(self, node, client):
"""
- Installs SSH key into C{.ssh/authorized_keys}
+ Installs SSH key into ``.ssh/authorized_keys``
- See also L{Deployment.run}
+ See also :class:`Deployment.run`
"""
client.put(".ssh/authorized_keys", contents=self.key, mode='a')
return node
@@ -88,11 +88,11 @@ class FileDeployment(Deployment):
def __init__(self, source, target):
"""
- @type source: C{str}
- @keyword source: Local path of file to be installed
+ :type source: ``str``
+ :keyword source: Local path of file to be installed
- @type target: C{str}
- @keyword target: Path to install file on node
+ :type target: ``str``
+ :keyword target: Path to install file on node
"""
self.source = source
self.target = target
@@ -101,7 +101,7 @@ class FileDeployment(Deployment):
"""
Upload the file, retaining permissions.
- See also L{Deployment.run}
+ See also :class:`Deployment.run`
"""
perms = int(oct(os.stat(self.source).st_mode)[4:], 8)
@@ -127,19 +127,19 @@ class ScriptDeployment(Deployment):
def __init__(self, script, args=None, name=None, delete=False):
"""
- @type script: C{str}
- @keyword script: Contents of the script to run.
+ :type script: ``str``
+ :keyword script: Contents of the script to run.
- @type args: C{list}
- @keyword args: Optional command line arguments which get passed to the
+ :type args: ``list``
+ :keyword args: Optional command line arguments which get passed to the
deployment script file.
- @type name: C{str}
- @keyword name: Name of the script to upload it as, if not specified,
+ :type name: ``str``
+ :keyword name: Name of the script to upload it as, if not specified,
a random name will be choosen.
- @type delete: C{bool}
- @keyword delete: Whether to delete the script on completion.
+ :type delete: ``bool``
+ :keyword delete: Whether to delete the script on completion.
"""
script = self._get_string_value(argument_name='script',
argument_value=script)
@@ -163,7 +163,7 @@ class ScriptDeployment(Deployment):
"""
Uploads the shell script and then executes it.
- See also L{Deployment.run}
+ See also :class:`Deployment.run`
"""
file_path = client.put(path=self.name, chmod=int('755', 8),
contents=self.script)
@@ -200,20 +200,20 @@ class ScriptFileDeployment(ScriptDeployment):
def __init__(self, script_file, args=None, name=None, delete=False):
"""
- @type script_file: C{str}
- @keyword script_file: Path to a file containing the script to run.
+ :type script_file: ``str``
+ :keyword script_file: Path to a file containing the script to run.
- @type args: C{list}
- @keyword args: Optional command line arguments which get passed to the
+ :type args: ``list``
+ :keyword args: Optional command line arguments which get passed to the
deployment script file.
- @type name: C{str}
- @keyword name: Name of the script to upload it as, if not specified,
+ :type name: ``str``
+ :keyword name: Name of the script to upload it as, if not specified,
a random name will be choosen.
- @type delete: C{bool}
- @keyword delete: Whether to delete the script on completion.
+ :type delete: ``bool``
+ :keyword delete: Whether to delete the script on completion.
"""
with open(script_file, 'rb') as fp:
content = fp.read()
@@ -233,8 +233,8 @@ class MultiStepDeployment(Deployment):
"""
def __init__(self, add=None):
"""
- @type add: C{list}
- @keyword add: Deployment steps to add.
+ :type add: ``list``
+ :keyword add: Deployment steps to add.
"""
self.steps = []
self.add(add)
@@ -243,8 +243,8 @@ class MultiStepDeployment(Deployment):
"""
Add a deployment to this chain.
- @type add: Single L{Deployment} or a C{list} of L{Deployment}
- @keyword add: Adds this deployment to the others already in this
+ :type add: Single :class:`Deployment` or a ``list`` of :class:`Deployment`
+ :keyword add: Adds this deployment to the others already in this
object.
"""
if add is not None:
@@ -255,7 +255,7 @@ class MultiStepDeployment(Deployment):
"""
Run each deployment that has been added.
- See also L{Deployment.run}
+ See also :class:`Deployment.run`
"""
for s in self.steps:
node = s.run(node, client)
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/abiquo.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/abiquo.py b/libcloud/compute/drivers/abiquo.py
index 98601cc..059b49c 100644
--- a/libcloud/compute/drivers/abiquo.py
+++ b/libcloud/compute/drivers/abiquo.py
@@ -33,7 +33,7 @@ from libcloud.utils.py3 import tostring
class AbiquoNodeDriver(NodeDriver):
"""
- Implements the L{NodeDriver}'s for the Abiquo Compute Provider
+ Implements the :class:`NodeDriver`'s for the Abiquo Compute Provider
"""
type = Provider.ABIQUO
@@ -55,15 +55,15 @@ class AbiquoNodeDriver(NodeDriver):
"""
Initializes Abiquo Driver
- Initializes the L{NodeDriver} object. After that, it generates the
+ Initializes the :class:`NodeDriver` object. After that, it generates the
context
- @param user_id: identifier of Abiquo user (required)
- @type user_id: C{str}
- @param secret: password of the Abiquo user (required)
- @type secret: C{str}
- @param endpoint: Abiquo API endpoint (required)
- @type endpoint: C{str} that can be parsed as URL
+ :param user_id: identifier of Abiquo user (required)
+ :type user_id: ``str``
+ :param secret: password of the Abiquo user (required)
+ :type secret: ``str``
+ :param endpoint: Abiquo API endpoint (required)
+ :type endpoint: ``str`` that can be parsed as URL
"""
self.endpoint = endpoint
super(AbiquoNodeDriver, self).__init__(key=user_id, secret=secret,
@@ -75,8 +75,8 @@ class AbiquoNodeDriver(NodeDriver):
"""
Create a new node instance in Abiquo
- All the L{Node}s need to be defined inside a VirtualAppliance
- (called L{NodeGroup} here). If there is no group name defined,
+ All the :class:`Node`s need to be defined inside a VirtualAppliance
+ (called :class:`NodeGroup` here). If there is no group name defined,
'libcloud' name will be used instead.
This method wraps these Abiquo actions:
@@ -90,34 +90,34 @@ class AbiquoNodeDriver(NodeDriver):
The rest of the driver methods has been created in a way that, if any
of these actions fail, the user can not reach an inconsistent state
- @keyword name: The name for this new node (required)
- @type name: C{str}
+ :keyword name: The name for this new node (required)
+ :type name: ``str``
- @keyword size: The size of resources allocated to this node.
- @type size: L{NodeSize}
+ :keyword size: The size of resources allocated to this node.
+ :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 location: Which data center to create a node in. If empty,
+ :keyword location: Which data center to create a node in. If empty,
undefined behavoir will be selected. (optional)
- @type location: L{NodeLocation}
+ :type location: :class:`NodeLocation`
- @keyword group_name: Which group this node belongs to. If empty,
+ :keyword group_name: Which group this node belongs to. If empty,
it will be created into 'libcloud' group. If
it does not found any group in the target
location (random location if you have not set
the parameter), then it will create a new
group with this name.
- @type group_name: c{str}
+ :type group_name: c{str}
- @return: The newly created node.
- @rtype: L{Node}
+ :return: The newly created node.
+ :rtype: :class:`Node`
"""
# Define the location
# To be clear:
# 'xml_loc' is the xml element we navigate into (we need links)
- # 'loc' is the L{NodeLocation} entity
+ # 'loc' is the :class:`NodeLocation` entity
xml_loc, loc = self._define_create_node_location(**kwargs)
# Define the Group
@@ -142,11 +142,11 @@ class AbiquoNodeDriver(NodeDriver):
Depending on the provider, this may destroy all data associated with
the node, including backups.
- @param node: The node to be destroyed
- @type node: L{Node}
+ :param node: The node to be destroyed
+ :type node: :class:`Node`
- @return: True if the destroy was successful, otherwise False
- @rtype: C{bool}
+ :return: True if the destroy was successful, otherwise False
+ :rtype: ``bool``
"""
# Refresh node state
@@ -187,17 +187,17 @@ class AbiquoNodeDriver(NodeDriver):
UNKNOWN and temporal states). In Abiquo, you can define a node, and
then deploy it.
- If the node is in L{NodeState.TERMINATED} libcloud's state and in
+ If the node is in :class:`NodeState.TERMINATED` libcloud's state and in
'NOT_DEPLOYED' Abiquo state, there is a way to run and recover it
for libcloud using this method. There is no way to reach this state
if you are using only libcloud, but you may have used another Abiquo
client and now you want to recover your node to be used by libcloud.
- @param node: The node to run
- @type node: L{Node}
+ :param node: The node to run
+ :type node: :class:`Node`
- @return: The node itself, but with the new state
- @rtype: L{Node}
+ :return: The node itself, but with the new state
+ :rtype: :class:`Node`
"""
# Refresh node state
e_vm = self.connection.request(node.extra['uri_id']).object
@@ -264,8 +264,8 @@ class AbiquoNodeDriver(NodeDriver):
# Save into context the link to the itself because we will need
# it in the future, but we save here to don't extend the class
- # L{NodeLocation}.
- # So here we have the dict: L{NodeLocation} -> link_datacenter
+ # :class:`NodeLocation`.
+ # So here we have the dict: :class:`NodeLocation` -> link_datacenter
self.connection.context['locations'][loc] = get_href(e_vdc, 'edit')
def ex_create_group(self, name, location=None):
@@ -274,14 +274,14 @@ class AbiquoNodeDriver(NodeDriver):
You can specify the location as well.
- @param name: name of the group (required)
- @type name: C{str}
+ :param name: name of the group (required)
+ :type name: ``str``
- @param location: location were to create the group
- @type location: L{NodeLocation}
+ :param location: location were to create the group
+ :type location: :class:`NodeLocation`
- @returns: the created group
- @rtype: L{NodeGroup}
+ :returns: the created group
+ :rtype: :class:`NodeGroup`
"""
# prepare the element
vapp = ET.Element('virtualAppliance')
@@ -310,17 +310,17 @@ class AbiquoNodeDriver(NodeDriver):
"""
Destroy a group.
- Be careful! Destroying a group means destroying all the L{Node}s there
+ Be careful! Destroying a group means destroying all the :class:`Node`s there
and the group itself!
- If there is currently any action over any L{Node} of the L{NodeGroup},
+ If there is currently any action over any :class:`Node` of the :class:`NodeGroup`,
then the method will raise an exception.
- @param name: The group (required)
- @type name: L{NodeGroup}
+ :param name: The group (required)
+ :type name: :class:`NodeGroup`
- @return: If the group was destroyed successfully
- @rtype: C{bool}
+ :return: If the group was destroyed successfully
+ :rtype: ``bool``
"""
# Refresh group state
e_group = self.connection.request(group.uri).object
@@ -358,10 +358,10 @@ class AbiquoNodeDriver(NodeDriver):
"""
List all groups.
- @param location: filter the groups by location (optional)
- @type location: a L{NodeLocation} instance.
+ :param location: filter the groups by location (optional)
+ :type location: a :class:`NodeLocation` instance.
- @return: the list of L{NodeGroup}
+ :return: the list of :class:`NodeGroup`
"""
groups = []
for vdc in self._get_locations(location):
@@ -387,11 +387,11 @@ class AbiquoNodeDriver(NodeDriver):
"""
List images on Abiquo Repositories
- @keyword location: The location to list images for.
- @type location: L{NodeLocation}
+ :keyword location: The location to list images for.
+ :type location: :class:`NodeLocation`
- @return: list of node image objects
- @rtype: C{list} of L{NodeImage}
+ :return: list of node image objects
+ :rtype: ``list`` of :class:`NodeImage`
"""
enterprise_id = self._get_enterprise_id()
uri = '/admin/enterprises/%s/datacenterrepositories/' % (enterprise_id)
@@ -430,8 +430,8 @@ class AbiquoNodeDriver(NodeDriver):
"""
Return list of locations where the user has access to.
- @return: the list of L{NodeLocation} available for the current user
- @rtype: C{list} of L{NodeLocation}
+ :return: the list of :class:`NodeLocation` available for the current user
+ :rtype: ``list`` of :class:`NodeLocation`
"""
return list(self.connection.context['locations'].keys())
@@ -439,11 +439,11 @@ class AbiquoNodeDriver(NodeDriver):
"""
List all nodes.
- @param location: Filter the groups by location (optional)
- @type location: a L{NodeLocation} instance.
+ :param location: Filter the groups by location (optional)
+ :type location: a :class:`NodeLocation` instance.
- @return: List of node objects
- @rtype: C{list} of L{Node}
+ :return: List of node objects
+ :rtype: ``list`` of :class:`Node`
"""
nodes = []
@@ -457,15 +457,15 @@ class AbiquoNodeDriver(NodeDriver):
List sizes on a provider.
Abiquo does not work with sizes. However, this method
- returns a list of predefined ones (copied from L{DummyNodeDriver} but
+ returns a list of predefined ones (copied from :class:`DummyNodeDriver` but
without price neither bandwidth) to help the users to create their own.
- If you call the method L{AbiquoNodeDriver.create_node} with the size
+ If you call the method :class:`AbiquoNodeDriver.create_node` with the size
informed, it will just override the 'ram' value of the 'image'
template. So it is no too much usefull work with sizes...
- @return: The list of sizes
- @rtype: C{list} of L{NodeSizes}
+ :return: The list of sizes
+ :rtype: ``list`` of :class:`NodeSizes`
"""
return [
NodeSize(id=1,
@@ -502,11 +502,11 @@ class AbiquoNodeDriver(NodeDriver):
"""
Reboot a node.
- @param node: The node to be rebooted
- @type node: L{Node}
+ :param node: The node to be rebooted
+ :type node: :class:`Node`
- @return: True if the reboot was successful, otherwise False
- @rtype: C{bool}
+ :return: True if the reboot was successful, otherwise False
+ :rtype: ``bool``
"""
reboot_uri = node.extra['uri_id'] + '/action/reset'
res = self.connection.async_request(action=reboot_uri, method='POST')
@@ -518,12 +518,12 @@ class AbiquoNodeDriver(NodeDriver):
def _ex_connection_class_kwargs(self):
"""
- Set the endpoint as an extra L{AbiquoConnection} argument.
+ Set the endpoint as an extra :class:`AbiquoConnection` argument.
According to Connection code, the "url" argument should be
parsed properly to connection.
- @return: C{dict} of L{AbiquoConnection} input arguments
+ :return: ``dict`` of :class:`AbiquoConnection` input arguments
"""
return {'url': self.endpoint}
@@ -551,7 +551,7 @@ class AbiquoNodeDriver(NodeDriver):
def _to_location(self, vdc, dc, driver):
"""
- Generates the L{NodeLocation} class.
+ Generates the :class:`NodeLocation` class.
"""
identifier = vdc.findtext('id')
name = vdc.findtext('name')
@@ -560,7 +560,7 @@ class AbiquoNodeDriver(NodeDriver):
def _to_node(self, vm, driver):
"""
- Generates the L{Node} class.
+ Generates the :class:`Node` class.
"""
identifier = vm.findtext('id')
name = vm.findtext('nodeName')
@@ -596,7 +596,7 @@ class AbiquoNodeDriver(NodeDriver):
def _to_nodeimage(self, template, driver, repo):
"""
- Generates the L{NodeImage} class.
+ Generates the :class:`NodeImage` class.
"""
identifier = template.findtext('id')
name = template.findtext('name')
@@ -725,9 +725,9 @@ class NodeGroup(object):
"""
Group of virtual machines that can be managed together
- All L{Node}s in Abiquo must be defined inside a Virtual Appliance.
+ All :class:`Node`s in Abiquo must be defined inside a Virtual Appliance.
We offer a way to handle virtual appliances (called NodeGroup to
- maintain some kind of name conventions here) inside the L{AbiquoNodeDriver}
+ maintain some kind of name conventions here) inside the :class:`AbiquoNodeDriver`
without breaking compatibility of the rest of libcloud API.
If the user does not want to handle groups, all the virtual machines
@@ -750,6 +750,6 @@ class NodeGroup(object):
def destroy(self):
"""
- Destroys the group delegating the execution to L{AbiquoNodeDriver}.
+ Destroys the group delegating the execution to :class:`AbiquoNodeDriver`.
"""
return self.driver.ex_destroy_group(self)
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/brightbox.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/brightbox.py b/libcloud/compute/drivers/brightbox.py
index ce307ea..6c13881 100644
--- a/libcloud/compute/drivers/brightbox.py
+++ b/libcloud/compute/drivers/brightbox.py
@@ -141,14 +141,14 @@ class BrightboxNodeDriver(NodeDriver):
Reference: https://api.gb1.brightbox.com/1.0/#server_create_server
- @inherits: L{NodeDriver.create_node}
+ @inherits: :class:`NodeDriver.create_node`
- @keyword ex_userdata: User data
- @type ex_userdata: C{str}
+ :keyword ex_userdata: User data
+ :type ex_userdata: ``str``
- @keyword ex_servergroup: Name or list of server group ids to
+ :keyword ex_servergroup: Name or list of server group ids to
add server to
- @type ex_servergroup: C{str} or C{list} of C{str}
+ :type ex_servergroup: ``str`` or ``list`` of ``str``
"""
data = {
'name': kwargs['name'],
@@ -200,7 +200,7 @@ class BrightboxNodeDriver(NodeDriver):
@note: This is an API extension for use on Brightbox
- @rtype: C{list} of C{dict}
+ :rtype: ``list`` of ``dict``
"""
return self.connection.request('/%s/cloud_ips' % self.api_version) \
.object
@@ -211,10 +211,10 @@ class BrightboxNodeDriver(NodeDriver):
@note: This is an API extension for use on Brightbox
- @param reverse_dns: Reverse DNS hostname
- @type reverse_dns: C{str}
+ :param reverse_dns: Reverse DNS hostname
+ :type reverse_dns: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
params = {}
@@ -229,13 +229,13 @@ class BrightboxNodeDriver(NodeDriver):
@note: This is an API extension for use on Brightbox
- @param cloud_ip_id: The id of the cloud ip.
- @type cloud_ip_id: C{str}
+ :param cloud_ip_id: The id of the cloud ip.
+ :type cloud_ip_id: ``str``
- @param reverse_dns: Reverse DNS hostname
- @type reverse_dns: C{str}
+ :param reverse_dns: Reverse DNS hostname
+ :type reverse_dns: ``str``
- @rtype: C{dict}
+ :rtype: ``dict``
"""
response = self._put('/%s/cloud_ips/%s' % (self.api_version,
cloud_ip_id),
@@ -249,15 +249,15 @@ class BrightboxNodeDriver(NodeDriver):
@note: This is an API extension for use on Brightbox
- @param cloud_ip_id: The id of the cloud ip.
- @type cloud_ip_id: C{str}
+ :param cloud_ip_id: The id of the cloud ip.
+ :type cloud_ip_id: ``str``
- @param interface_id: The Interface ID or LoadBalancer ID to
+ :param interface_id: The Interface ID or LoadBalancer ID to
which this Cloud IP should be mapped to
- @type interface_id: C{str}
+ :type interface_id: ``str``
- @return: True if the mapping was successful.
- @rtype: C{bool}
+ :return: True if the mapping was successful.
+ :rtype: ``bool``
"""
response = self._post('/%s/cloud_ips/%s/map' % (self.api_version,
cloud_ip_id),
@@ -272,11 +272,11 @@ class BrightboxNodeDriver(NodeDriver):
@note: This is an API extension for use on Brightbox
- @param cloud_ip_id: The id of the cloud ip.
- @type cloud_ip_id: C{str}
+ :param cloud_ip_id: The id of the cloud ip.
+ :type cloud_ip_id: ``str``
- @return: True if the unmap was successful.
- @rtype: C{bool}
+ :return: True if the unmap was successful.
+ :rtype: ``bool``
"""
response = self._post('/%s/cloud_ips/%s/unmap' % (self.api_version,
cloud_ip_id))
@@ -288,11 +288,11 @@ class BrightboxNodeDriver(NodeDriver):
@note: This is an API extension for use on Brightbox
- @param cloud_ip_id: The id of the cloud ip.
- @type cloud_ip_id: C{str}
+ :param cloud_ip_id: The id of the cloud ip.
+ :type cloud_ip_id: ``str``
- @return: True if the unmap was successful.
- @rtype: C{bool}
+ :return: True if the unmap was successful.
+ :rtype: ``bool``
"""
response = self.connection.request(
'/%s/cloud_ips/%s' % (self.api_version,
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/cloudsigma.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/cloudsigma.py b/libcloud/compute/drivers/cloudsigma.py
index df7e09f..25c0f9d 100644
--- a/libcloud/compute/drivers/cloudsigma.py
+++ b/libcloud/compute/drivers/cloudsigma.py
@@ -213,7 +213,7 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
Because Cloudsigma API does not provide native reboot call,
it's emulated using stop and start.
- @inherits: L{NodeDriver.reboot_node}
+ @inherits: :class:`NodeDriver.reboot_node`
"""
node = self._get_node(node.id)
state = node.state
@@ -237,7 +237,7 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
If a node is still running, it's stopped before it's destroyed.
- @inherits: L{NodeDriver.destroy_node}
+ @inherits: :class:`NodeDriver.destroy_node`
"""
node = self._get_node(node.id)
state = node.state
@@ -262,7 +262,7 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
Return a list of available standard images (this call might take up
to 15 seconds to return).
- @inherits: L{NodeDriver.list_images}
+ @inherits: :class:`NodeDriver.list_images`
"""
response = self.connection.request(
action='/drives/standard/info').object
@@ -305,24 +305,24 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Creates a CloudSigma 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 (is not specified,
+ :keyword nic_model: e1000, rtl8139 or virtio (is not specified,
e1000 is used)
- @type nic_model: C{str}
+ :type nic_model: ``str``
- @keyword vnc_password: If not set, VNC access is disabled.
- @type vnc_password: C{bool}
+ :keyword vnc_password: If not set, VNC access is disabled.
+ :type vnc_password: ``bool``
- @keyword drive_type: Drive type (ssd|hdd). Defaults to hdd.
- @type drive_type: C{str}
+ :keyword drive_type: Drive type (ssd|hdd). Defaults to hdd.
+ :type drive_type: ``str``
"""
size = kwargs['size']
image = kwargs['image']
@@ -399,10 +399,10 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Destroy a node and all the drives associated with it.
- @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``
"""
node = self._get_node_info(node)
@@ -428,7 +428,7 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Return a list of available static IP addresses.
- @rtype: C{list} of C{str}
+ :rtype: ``list`` of ``str``
"""
response = self.connection.request(action='/resources/ip/list',
method='GET')
@@ -443,7 +443,7 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Return a list of all the available drives.
- @rtype: C{list} of C{dict}
+ :rtype: ``list`` of ``dict``
"""
response = self.connection.request(action='/drives/info', method='GET')
@@ -454,7 +454,7 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Create a new static IP address.p
- @rtype: C{list} of C{dict}
+ :rtype: ``list`` of ``dict``
"""
response = self.connection.request(action='/resources/ip/create',
method='GET')
@@ -466,10 +466,10 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Destroy a static IP address.
- @param ip_address: IP address which should be used
- @type ip_address: C{str}
+ :param ip_address: IP address which should be used
+ :type ip_address: ``str``
- @rtype: C{bool}
+ :rtype: ``bool``
"""
response = self.connection.request(
action='/resources/ip/%s/destroy' % (ip_address), method='GET')
@@ -481,10 +481,10 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
Destroy a drive with a specified uuid.
If the drive is currently mounted an exception is thrown.
- @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), method='POST')
@@ -496,13 +496,13 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
Update a node configuration.
Changing most of the parameters requires node to be stopped.
- @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',
@@ -538,10 +538,10 @@ class CloudSigmaBaseNodeDriver(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``
"""
response = self.connection.request(
action='/servers/%s/start' % (node.id),
@@ -553,10 +553,10 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Stop (shutdown) 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``
"""
response = self.connection.request(
action='/servers/%s/stop' % (node.id),
@@ -567,7 +567,7 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Stop (shutdown) a node.
- @inherits: L{CloudSigmaBaseNodeDriver.ex_stop_node}
+ @inherits: :class:`CloudSigmaBaseNodeDriver.ex_stop_node`
"""
return self.ex_stop_node(node)
@@ -575,10 +575,10 @@ class CloudSigmaBaseNodeDriver(NodeDriver):
"""
Destroy 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),