You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2013/09/28 13:17:47 UTC

[5/6] Migrate API docstrings to Sphinx format.

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/cloudstack.py b/libcloud/compute/drivers/cloudstack.py
index 8d0306e..c8bef98 100644
--- a/libcloud/compute/drivers/cloudstack.py
+++ b/libcloud/compute/drivers/cloudstack.py
@@ -147,11 +147,11 @@ class CloudStackNetwork(object):
 class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
     """Driver for the CloudStack API.
 
-    @cvar host: The host where the API can be reached.
-    @cvar path: The path where the API can be reached.
-    @cvar async_poll_frequency: How often (in seconds) to poll for async
+    :cvar host: The host where the API can be reached.
+    :cvar path: The path where the API can be reached.
+    :cvar async_poll_frequency: How often (in seconds) to poll for async
                                 job completion.
-    @type async_poll_frequency: C{int}"""
+    :type async_poll_frequency: ``int``"""
 
     name = 'CloudStack'
     api_name = 'cloudstack'
@@ -173,13 +173,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
     def __init__(self, key, secret=None, secure=True, host=None,
                  path=None, port=None, *args, **kwargs):
         """
-        @inherits: L{NodeDriver.__init__}
+        @inherits: :class:`NodeDriver.__init__`
 
-        @param    host: The host where the API can be reached. (required)
-        @type     host: C{str}
+        :param    host: The host where the API can be reached. (required)
+        :type     host: ``str``
 
-        @param    path: The host where the API can be reached. (required)
-        @type     path: C{str}
+        :param    path: The host where the API can be reached. (required)
+        :type     path: ``str``
         """
         host = host if host else self.host
 
@@ -218,7 +218,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
 
     def list_locations(self):
         """
-        @rtype C{list} of L{NodeLocation}
+        :rtype ``list`` of :class:`NodeLocation`
         """
         locs = self._sync_request('listZones')
         locations = []
@@ -228,8 +228,8 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
 
     def list_nodes(self):
         """
-        @inherits: L{NodeDriver.list_nodes}
-        @rtype: C{list} of L{CloudStackNode}
+        @inherits: :class:`NodeDriver.list_nodes`
+        :rtype: ``list`` of :class:`CloudStackNode`
         """
         vms = self._sync_request('listVirtualMachines')
         addrs = self._sync_request('listPublicIpAddresses')
@@ -321,7 +321,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
 
     def list_sizes(self, location=None):
         """
-        @rtype C{list} of L{NodeSize}
+        :rtype ``list`` of :class:`NodeSize`
         """
         szs = self._sync_request('listServiceOfferings')
         sizes = []
@@ -334,22 +334,22 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Create a new node
 
-        @inherits: L{NodeDriver.create_node}
+        @inherits: :class:`NodeDriver.create_node`
 
-        @keyword    ex_keyname:  Name of existing keypair
-        @type       ex_keyname:  C{str}
+        :keyword    ex_keyname:  Name of existing keypair
+        :type       ex_keyname:  ``str``
 
-        @keyword    ex_userdata: String containing user data
-        @type       ex_userdata: C{str}
+        :keyword    ex_userdata: String containing user data
+        :type       ex_userdata: ``str``
 
-        @keyword    networks: The server is launched into a set of Networks.
-        @type       networks: L{CloudStackNetwork}
+        :keyword    networks: The server is launched into a set of Networks.
+        :type       networks: :class:`CloudStackNetwork`
 
-        @keyword    ex_security_groups: List of security groups to assign to
+        :keyword    ex_security_groups: List of security groups to assign to
                                         the node
-        @type       ex_security_groups: C{list} of C{str}
+        :type       ex_security_groups: ``list`` of ``str``
 
-        @rtype:     L{CloudStackNode}
+        :rtype:     :class:`CloudStackNode`
         """
 
         server_params = self._create_args_to_params(None, **kwargs)
@@ -431,20 +431,20 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
 
     def destroy_node(self, node):
         """
-        @inherits: L{NodeDriver.reboot_node}
-        @type node: L{CloudStackNode}
+        @inherits: :class:`NodeDriver.reboot_node`
+        :type node: :class:`CloudStackNode`
 
-        @rtype: C{boolean}
+        :rtype: ``bool``
         """
         res = self._async_request('destroyVirtualMachine', id=node.id)
         return True
 
     def reboot_node(self, node):
         """
-        @inherits: L{NodeDriver.reboot_node}
-        @type node: L{CloudStackNode}
+        @inherits: :class:`NodeDriver.reboot_node`
+        :type node: :class:`CloudStackNode`
 
-        @rtype: C{boolean}
+        :rtype: ``bool``
         """
         res = self._async_request('rebootVirtualMachine', id=node.id)
         return True
@@ -453,16 +453,16 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Starts/Resumes a stopped virtual machine
 
-        @type node: L{CloudStackNode}
+        :type node: :class:`CloudStackNode`
 
-        @param id: The ID of the virtual machine (required)
-        @type  id: C{uuid}
+        :param id: The ID of the virtual machine (required)
+        :type  id: ``str``
 
-        @param hostid: destination Host ID to deploy the VM to
+        :param hostid: destination Host ID to deploy the VM to
                        parameter available for root admin only
-        @type  hostid: C{uuid}
+        :type  hostid: ``str``
 
-        @rtype C{str}
+        :rtype ``str``
         """
         res = self._async_request('startVirtualMachine', id=node.id)
         return res['virtualmachine']['state']
@@ -471,18 +471,18 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Stops/Suspends a running virtual machine
 
-        @type node: L{CloudStackNode}
+        :type node: :class:`CloudStackNode`
 
-        @param id: The ID of the virtual machine
-        @type  id: C{uuid}
+        :param id: The ID of the virtual machine
+        :type  id: ``str``
 
-        @param forced: Force stop the VM
+        :param forced: Force stop the VM
                        (vm is marked as Stopped even when command
                         fails to be send to the backend).
                        The caller knows the VM is stopped.
-        @type  forced: C{bool}
+        :type  forced: ``bool``
 
-        @rtype C{str}
+        :rtype ``str``
         """
         res = self._async_request('stopVirtualMachine', id=node.id)
         return res['virtualmachine']['state']
@@ -491,7 +491,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Fetch a list of all available disk offerings.
 
-        @rtype: C{list} of L{CloudStackDiskOffering}
+        :rtype: ``list`` of :class:`CloudStackDiskOffering`
         """
 
         diskOfferings = []
@@ -511,7 +511,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         List the available networks
 
-        @rtype C{list} of L{CloudStackNetwork}
+        :rtype ``list`` of :class:`CloudStackNetwork`
         """
 
         nets = self._sync_request('listNetworks')['network']
@@ -563,17 +563,17 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
 
     def destroy_volume(self, volume):
         """
-        @rtype: C{boolean}
+        :rtype: ``bool``
         """
         self._sync_request('deleteVolume', id=volume.id)
         return True
 
     def attach_volume(self, node, volume, device=None):
         """
-        @inherits: L{NodeDriver.attach_volume}
-        @type node: L{CloudStackNode}
+        @inherits: :class:`NodeDriver.attach_volume`
+        :type node: :class:`CloudStackNode`
 
-        @rtype: C{boolean}
+        :rtype: ``bool``
         """
         # TODO Add handling for device name
         self._async_request('attachVolume', id=volume.id,
@@ -582,7 +582,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
 
     def detach_volume(self, volume):
         """
-        @rtype: C{boolean}
+        :rtype: ``bool``
         """
         self._async_request('detachVolume', id=volume.id)
         return True
@@ -591,7 +591,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         List all volumes
 
-        @rtype: C{list} of L{StorageVolume}
+        :rtype: ``list`` of :class:`StorageVolume`
         """
         list_volumes = []
         volumes = self._sync_request('listVolumes')
@@ -606,7 +606,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Lists all Public IP Addresses.
 
-        @rtype: C{list} of L{CloudStackAddress}
+        :rtype: ``list`` of :class:`CloudStackAddress`
         """
         res = self._sync_request('listPublicIpAddresses')
         ips = []
@@ -618,10 +618,10 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Allocate a public IP.
 
-        @param location: Zone
-        @type  location: L{NodeLocation}
+        :param location: Zone
+        :type  location: :class:`NodeLocation`
 
-        @rtype: L{CloudStackAddress}
+        :rtype: :class:`CloudStackAddress`
         """
         if location is None:
             location = self.list_locations()[0]
@@ -635,10 +635,10 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Release a public IP.
 
-        @param address: CloudStackAddress which should be used
-        @type  address: L{CloudStackAddress}
+        :param address: CloudStackAddress which should be used
+        :type  address: :class:`CloudStackAddress`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         res = self._async_request('disassociateIpAddress', id=address.id)
         return res['success']
@@ -647,7 +647,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Lists all Port Forwarding Rules
 
-        @rtype: C{list} of L{CloudStackPortForwardingRule}
+        :rtype: ``list`` of :class:`CloudStackPortForwardingRule`
         """
         rules = []
         result = self._sync_request('listPortForwardingRules')
@@ -675,22 +675,22 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Creates a Port Forwarding Rule, used for Source NAT
 
-        @param  address: IP address of the Source NAT
-        @type   address: L{CloudStackAddress}
+        :param  address: IP address of the Source NAT
+        :type   address: :class:`CloudStackAddress`
 
-        @param  private_port: Port of the virtual machine
-        @type   private_port: C{int}
+        :param  private_port: Port of the virtual machine
+        :type   private_port: ``int``
 
-        @param  protocol: Protocol of the rule
-        @type   protocol: C{str}
+        :param  protocol: Protocol of the rule
+        :type   protocol: ``str``
 
-        @param  public_port: Public port on the Source NAT address
-        @type   public_port: C{int}
+        :param  public_port: Public port on the Source NAT address
+        :type   public_port: ``int``
 
-        @param  node: The virtual machine
-        @type   node: L{CloudStackNode}
+        :param  node: The virtual machine
+        :type   node: :class:`CloudStackNode`
 
-        @rtype: L{CloudStackPortForwardingRule}
+        :rtype: :class:`CloudStackPortForwardingRule`
         """
         args = {
             'ipaddressid': address.id,
@@ -717,13 +717,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Remove a Port forwarding rule.
 
-        @param node: Node used in the rule
-        @type  node: L{CloudStackNode}
+        :param node: Node used in the rule
+        :type  node: :class:`CloudStackNode`
 
-        @param rule: Forwarding rule which should be used
-        @type  rule: L{CloudStackPortForwardingRule}
+        :param rule: Forwarding rule which should be used
+        :type  rule: :class:`CloudStackPortForwardingRule`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
 
         node.extra['port_forwarding_rules'].remove(rule)
@@ -736,22 +736,22 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         "Add a NAT/firewall forwarding rule.
 
-        @param      node: Node which should be used
-        @type       node: L{CloudStackNode}
+        :param      node: Node which should be used
+        :type       node: :class:`CloudStackNode`
 
-        @param      address: CloudStackAddress which should be used
-        @type       address: L{CloudStackAddress}
+        :param      address: CloudStackAddress which should be used
+        :type       address: :class:`CloudStackAddress`
 
-        @param      protocol: Protocol which should be used (TCP or UDP)
-        @type       protocol: C{str}
+        :param      protocol: Protocol which should be used (TCP or UDP)
+        :type       protocol: ``str``
 
-        @param      start_port: Start port which should be used
-        @type       start_port: C{int}
+        :param      start_port: Start port which should be used
+        :type       start_port: ``int``
 
-        @param      end_port: End port which should be used
-        @type       end_port: C{int}
+        :param      end_port: End port which should be used
+        :type       end_port: ``int``
 
-        @rtype:     L{CloudStackForwardingRule}
+        :rtype:     :class:`CloudStackForwardingRule`
         """
 
         protocol = protocol.upper()
@@ -777,13 +777,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Remove a NAT/firewall forwarding rule.
 
-        @param node: Node which should be used
-        @type  node: L{CloudStackNode}
+        :param node: Node which should be used
+        :type  node: :class:`CloudStackNode`
 
-        @param rule: Forwarding rule which should be used
-        @type  rule: L{CloudStackForwardingRule}
+        :param rule: Forwarding rule which should be used
+        :type  rule: :class:`CloudStackForwardingRule`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
 
         node.extra['ip_forwarding_rules'].remove(rule)
@@ -794,48 +794,48 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         List Registered SSH Key Pairs
 
-        @param     projectid: list objects by project
-        @type      projectid: C{uuid}
+        :param     projectid: list objects by project
+        :type      projectid: ``str``
 
-        @param     page: The page to list the keypairs from
-        @type      page: C{int}
+        :param     page: The page to list the keypairs from
+        :type      page: ``int``
 
-        @param     keyword: List by keyword
-        @type      keyword: C{str}
+        :param     keyword: List by keyword
+        :type      keyword: ``str``
 
-        @param     listall: If set to false, list only resources
+        :param     listall: If set to false, list only resources
                             belonging to the command's caller;
                             if set to true - list resources that
                             the caller is authorized to see.
                             Default value is false
 
-        @type      listall: C{bool}
+        :type      listall: ``bool``
 
-        @param     pagesize: The number of results per page
-        @type      pagesize: C{int}
+        :param     pagesize: The number of results per page
+        :type      pagesize: ``int``
 
-        @param     account: List resources by account.
+        :param     account: List resources by account.
                             Must be used with the domainId parameter
-        @type      account: C{str}
+        :type      account: ``str``
 
-        @param     isrecursive: Defaults to false, but if true,
+        :param     isrecursive: Defaults to false, but if true,
                                 lists all resources from
                                 the parent specified by the
                                 domainId till leaves.
-        @type      isrecursive: C{bool}
+        :type      isrecursive: ``bool``
 
-        @param     fingerprint: A public key fingerprint to look for
-        @type      fingerprint: C{str}
+        :param     fingerprint: A public key fingerprint to look for
+        :type      fingerprint: ``str``
 
-        @param     name: A key pair name to look for
-        @type      name: C{str}
+        :param     name: A key pair name to look for
+        :type      name: ``str``
 
-        @param     domainid: List only resources belonging to
+        :param     domainid: List only resources belonging to
                                      the domain specified
-        @type      domainid: C{uuid}
+        :type      domainid: ``str``
 
-        @return:   A list of keypair dictionaries
-        @rtype:    L{dict}
+        :return:   A list of keypair dictionaries
+        :rtype:    :class:`dict`
         """
 
         extra_args = kwargs.copy()
@@ -846,23 +846,23 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Creates a SSH KeyPair, returns fingerprint and private key
 
-        @param     name: Name of the keypair (required)
-        @type      name: C{str}
+        :param     name: Name of the keypair (required)
+        :type      name: ``str``
 
-        @param     projectid: An optional project for the ssh key
-        @type      projectid: C{str}
+        :param     projectid: An optional project for the ssh key
+        :type      projectid: ``str``
 
-        @param     domainid: An optional domainId for the ssh key.
+        :param     domainid: An optional domainId for the ssh key.
                              If the account parameter is used,
                              domainId must also be used.
-        @type      domainid: C{str}
+        :type      domainid: ``str``
 
-        @param     account: An optional account for the ssh key.
+        :param     account: An optional account for the ssh key.
                             Must be used with domainId.
-        @type      account: C{str}
+        :type      account: ``str``
 
-        @return:   A keypair dictionary
-        @rtype:    C{dict}
+        :return:   A keypair dictionary
+        :rtype:    ``dict``
         """
         extra_args = kwargs.copy()
 
@@ -878,21 +878,21 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Deletes an existing SSH KeyPair
 
-        @param     name: Name of the keypair (required)
-        @type      name: C{str}
+        :param     name: Name of the keypair (required)
+        :type      name: ``str``
 
-        @param     projectid: The project associated with keypair
-        @type      projectid: C{uuid}
+        :param     projectid: The project associated with keypair
+        :type      projectid: ``str``
 
-        @param     domainid : The domain ID associated with the keypair
-        @type      domainid: C{uuid}
+        :param     domainid : The domain ID associated with the keypair
+        :type      domainid: ``str``
 
-        @param     account : The account associated with the keypair.
+        :param     account : The account associated with the keypair.
                              Must be used with the domainId parameter.
-        @type      account: C{str}
+        :type      account: ``str``
 
-        @return:   True of False based on success of Keypair deletion
-        @rtype:    C{bool}
+        :return:   True of False based on success of Keypair deletion
+        :rtype:    ``bool``
         """
 
         extra_args = kwargs.copy()
@@ -904,13 +904,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Imports a new public key where the public key is passed in as a string
 
-        @param     name: The name of the public key to import.
-        @type      name: C{str}
+        :param     name: The name of the public key to import.
+        :type      name: ``str``
 
-        @param     key_material: The contents of a public key file.
-        @type      key_material: C{str}
+        :param     key_material: The contents of a public key file.
+        :type      key_material: ``str``
 
-        @rtype: C{dict}
+        :rtype: ``dict``
         """
         res = self._sync_request('registerSSHKeyPair', name=name,
                                  publickey=key_material)
@@ -923,13 +923,13 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Imports a new public key where the public key is passed via a filename
 
-        @param     name: The name of the public key to import.
-        @type      name: C{str}
+        :param     name: The name of the public key to import.
+        :type      name: ``str``
 
-        @param     keyfile: The filename with path of the public key to import.
-        @type      keyfile: C{str}
+        :param     keyfile: The filename with path of the public key to import.
+        :type      keyfile: ``str``
 
-        @rtype: C{dict}
+        :rtype: ``dict``
         """
         with open(os.path.expanduser(keyfile)) as fh:
             content = fh.read()
@@ -939,50 +939,50 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Lists Security Groups
 
-        @param domainid: List only resources belonging to the domain specified
-        @type  domainid: C{uuid}
+        :param domainid: List only resources belonging to the domain specified
+        :type  domainid: ``str``
 
-        @param account: List resources by account. Must be used with
+        :param account: List resources by account. Must be used with
                                                    the domainId parameter.
-        @type  account: C{str}
+        :type  account: ``str``
 
-        @param listall: If set to false, list only resources belonging to
+        :param listall: If set to false, list only resources belonging to
                                          the command's caller; if set to true
                                          list resources that the caller is
                                          authorized to see.
                                          Default value is false
-        @type  listall: C{bool}
+        :type  listall: ``bool``
 
-        @param pagesize: Number of entries per page
-        @type  pagesize: C{int}
+        :param pagesize: Number of entries per page
+        :type  pagesize: ``int``
 
-        @param keyword: List by keyword
-        @type  keyword: C{str}
+        :param keyword: List by keyword
+        :type  keyword: ``str``
 
-        @param tags: List resources by tags (key/value pairs)
-        @type  tags: C{dict}
+        :param tags: List resources by tags (key/value pairs)
+        :type  tags: ``dict``
 
-        @param id: list the security group by the id provided
-        @type  id: C{uuid}
+        :param id: list the security group by the id provided
+        :type  id: ``str``
 
-        @param securitygroupname: lists security groups by name
-        @type  securitygroupname: C{str}
+        :param securitygroupname: lists security groups by name
+        :type  securitygroupname: ``str``
 
-        @param virtualmachineid: lists security groups by virtual machine id
-        @type  virtualmachineid: C{uuid}
+        :param virtualmachineid: lists security groups by virtual machine id
+        :type  virtualmachineid: ``str``
 
-        @param projectid: list objects by project
-        @type  projectid: C{uuid}
+        :param projectid: list objects by project
+        :type  projectid: ``str``
 
-        @param isrecursive: (boolean) defaults to false, but if true,
+        :param isrecursive: (boolean) defaults to false, but if true,
                                       lists all resources from the parent
                                       specified by the domainId till leaves.
-        @type  isrecursive: C{bool}
+        :type  isrecursive: ``bool``
 
-        @param page: (integer)
-        @type  page: C{int}
+        :param page: (integer)
+        :type  page: ``int``
 
-        @rtype C{list}
+        :rtype ``list``
         """
         extra_args = kwargs
         return self._sync_request('listSecurityGroups',
@@ -992,25 +992,25 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Creates a new Security Group
 
-        @param name: name of the security group (required)
-        @type  name: C{str}
+        :param name: name of the security group (required)
+        :type  name: ``str``
 
-        @param account: An optional account for the security group.
+        :param account: An optional account for the security group.
                         Must be used with domainId.
-        @type  account: C{str}
+        :type  account: ``str``
 
-        @param domainid: An optional domainId for the security group.
+        :param domainid: An optional domainId for the security group.
                          If the account parameter is used,
                          domainId must also be used.
-        @type  domainid: C{uuid}
+        :type  domainid: ``str``
 
-        @param description: The description of the security group
-        @type  description: C{str}
+        :param description: The description of the security group
+        :type  description: ``str``
 
-        @param projectid: Deploy vm for the project
-        @type  projectid: C{uuid}
+        :param projectid: Deploy vm for the project
+        :type  projectid: ``str``
 
-        @rtype: C{dict}
+        :rtype: ``dict``
         """
 
         extra_args = kwargs.copy()
@@ -1026,26 +1026,26 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Deletes a given Security Group
 
-        @param domainid: The domain ID of account owning
+        :param domainid: The domain ID of account owning
                          the security group
-        @type  domainid: C{uuid}
+        :type  domainid: ``str``
 
-        @param id: The ID of the security group.
+        :param id: The ID of the security group.
                    Mutually exclusive with name parameter
-        @type  id: C{uuid}
+        :type  id: ``str``
 
-        @param name: The ID of the security group.
+        :param name: The ID of the security group.
                      Mutually exclusive with id parameter
-        @type name: C{str}
+        :type name: ``str``
 
-        @param account: The account of the security group.
+        :param account: The account of the security group.
                         Must be specified with domain ID
-        @type  account: C{str}
+        :type  account: ``str``
 
-        @param projectid:  The project of the security group
-        @type  projectid:  C{uuid}
+        :param projectid:  The project of the security group
+        :type  projectid:  ``str``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
 
         return self._sync_request('deleteSecurityGroup', name=name)['success']
@@ -1056,50 +1056,50 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Creates a new Security Group Ingress rule
 
-        @param domainid: An optional domainId for the security group.
+        :param domainid: An optional domainId for the security group.
                          If the account parameter is used,
                          domainId must also be used.
-        @type domainid: C{uuid}
+        :type domainid: ``str``
 
-        @param startport: Start port for this ingress rule
-        @type  startport: C{int}
+        :param startport: Start port for this ingress rule
+        :type  startport: ``int``
 
-        @param securitygroupid: The ID of the security group.
+        :param securitygroupid: The ID of the security group.
                                 Mutually exclusive with securityGroupName
                                 parameter
-        @type  securitygroupid: C{uuid}
+        :type  securitygroupid: ``str``
 
-        @param cidrlist: The cidr list associated
-        @type  cidrlist: C{list}
+        :param cidrlist: The cidr list associated
+        :type  cidrlist: ``list``
 
-        @param usersecuritygrouplist: user to security group mapping
-        @type  usersecuritygrouplist: C{map}
+        :param usersecuritygrouplist: user to security group mapping
+        :type  usersecuritygrouplist: ``dict``
 
-        @param securitygroupname: The name of the security group.
+        :param securitygroupname: The name of the security group.
                                   Mutually exclusive with
                                   securityGroupName parameter
-        @type  securitygroupname: C{str}
+        :type  securitygroupname: ``str``
 
-        @param account: An optional account for the security group.
+        :param account: An optional account for the security group.
                         Must be used with domainId.
-        @type  account: C{str}
+        :type  account: ``str``
 
-        @param icmpcode: Error code for this icmp message
-        @type  icmpcode: C{int}
+        :param icmpcode: Error code for this icmp message
+        :type  icmpcode: ``int``
 
-        @param protocol: TCP is default. UDP is the other supported protocol
-        @type  protocol: C{str}
+        :param protocol: TCP is default. UDP is the other supported protocol
+        :type  protocol: ``str``
 
-        @param icmptype: type of the icmp message being sent
-        @type  icmptype: C{int}
+        :param icmptype: type of the icmp message being sent
+        :type  icmptype: ``int``
 
-        @param projectid: An optional project of the security group
-        @type  projectid: C{uuid}
+        :param projectid: An optional project of the security group
+        :type  projectid: ``str``
 
-        @param endport: end port for this ingress rule
-        @type  endport: C{int}
+        :param endport: end port for this ingress rule
+        :type  endport: ``int``
 
-        @rtype: C{list}
+        :rtype: ``list``
         """
 
         protocol = protocol.upper()
@@ -1122,16 +1122,16 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, NodeDriver):
         """
         Registers an existing ISO by URL.
 
-        @param      name: Name which should be used
-        @type       name: C{str}
+        :param      name: Name which should be used
+        :type       name: ``str``
 
-        @param      url: Url should be used
-        @type       url: C{str}
+        :param      url: Url should be used
+        :type       url: ``str``
 
-        @param      location: Location which should be used
-        @type       location: L{NodeLocation}
+        :param      location: Location which should be used
+        :type       location: :class:`NodeLocation`
 
-        @rtype: C{str}
+        :rtype: ``str``
         """
         if location is None:
             location = self.list_locations()[0]

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/digitalocean.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/digitalocean.py b/libcloud/compute/drivers/digitalocean.py
index 09ace5f..426b019 100644
--- a/libcloud/compute/drivers/digitalocean.py
+++ b/libcloud/compute/drivers/digitalocean.py
@@ -57,7 +57,7 @@ class DigitalOceanConnection(ConnectionUserAndKey):
         """
         Add parameters that are necessary for every request
 
-        This method adds C{api_key} and C{api_responseFormat} to
+        This method adds ``client_id`` and ``api_key`` to
         the request.
         """
         params['client_id'] = self.user_id
@@ -101,12 +101,12 @@ class DigitalOceanNodeDriver(NodeDriver):
         """
         Create a node.
 
-        @keyword    ex_ssh_key_ids: A list of ssh key ids which will be added
+        :keyword    ex_ssh_key_ids: A list of ssh key ids which will be added
                                    to the server. (optional)
-        @type       ex_ssh_key_ids: C{list} of C{str}
+        :type       ex_ssh_key_ids: ``list`` of ``str``
 
-        @return: The newly created node.
-        @rtype: L{Node}
+        :return: The newly created node.
+        :rtype: :class:`Node`
         """
         params = {'name': name, 'size_id': size.id, 'image_id': image.id,
                   'region_id': location.id}
@@ -129,8 +129,8 @@ class DigitalOceanNodeDriver(NodeDriver):
         """
         List all the available SSH keys.
 
-        @return: Available SSH keys.
-        @rtype: C{list} of L{SSHKey}
+        :return: Available SSH keys.
+        :rtype: ``list`` of :class:`SSHKey`
         """
         data = self.connection.request('/ssh_keys').object['ssh_keys']
         return list(map(self._to_ssh_key, data))
@@ -139,11 +139,11 @@ class DigitalOceanNodeDriver(NodeDriver):
         """
         Create a new SSH key.
 
-        @param      name: Key name (required)
-        @type       name: C{str}
+        :param      name: Key name (required)
+        :type       name: ``str``
 
-        @param      name: Valid public key string (required)
-        @type       name: C{str}
+        :param      name: Valid public key string (required)
+        :type       name: ``str``
         """
         params = {'name': name, 'ssh_pub_key': ssh_key_pub}
         data = self.connection.request('/ssh_keys/new/', method='GET',
@@ -155,8 +155,8 @@ class DigitalOceanNodeDriver(NodeDriver):
         """
         Delete an existing SSH key.
 
-        @param      key_id: SSH key id (required)
-        @type       key_id: C{str}
+        :param      key_id: SSH key id (required)
+        :type       key_id: ``str``
         """
         res = self.connection.request('/ssh_keys/%s/destroy/' % (key_id))
         return res.status == httplib.OK

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/dreamhost.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dreamhost.py b/libcloud/compute/drivers/dreamhost.py
index 6322a43..d0a2396 100644
--- a/libcloud/compute/drivers/dreamhost.py
+++ b/libcloud/compute/drivers/dreamhost.py
@@ -135,10 +135,10 @@ class DreamhostNodeDriver(NodeDriver):
     def create_node(self, **kwargs):
         """Create a new Dreamhost node
 
-        @inherits: L{NodeDriver.create_node}
+        @inherits: :class:`NodeDriver.create_node`
 
-        @keyword    ex_movedata: Copy all your existing users to this new PS
-        @type       ex_movedata: C{str}
+        :keyword    ex_movedata: Copy all your existing users to this new PS
+        :type       ex_movedata: ``str``
         """
         size = kwargs['size'].ram
         params = {

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/dummy.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dummy.py b/libcloud/compute/drivers/dummy.py
index 1241098..3c92813 100644
--- a/libcloud/compute/drivers/dummy.py
+++ b/libcloud/compute/drivers/dummy.py
@@ -69,10 +69,10 @@ class DummyNodeDriver(NodeDriver):
 
     def __init__(self, creds):
         """
-        @param  creds: Credentials
-        @type   creds: C{str}
+        :param  creds: Credentials
+        :type   creds: ``str``
 
-        @rtype: C{None}
+        :rtype: ``None``
         """
         self.creds = creds
         try:
@@ -115,9 +115,9 @@ class DummyNodeDriver(NodeDriver):
     def get_uuid(self, unique_field=None):
         """
 
-        @param  unique_field: Unique field
-        @type   unique_field: C{bool}
-        @rtype: L{UUID}
+        :param  unique_field: Unique field
+        :type   unique_field: ``bool``
+        :rtype: :class:`UUID`
         """
         return str(uuid.uuid4())
 
@@ -148,7 +148,7 @@ class DummyNodeDriver(NodeDriver):
         >>> sorted([node.name for node in driver.list_nodes()])
         ['dummy-1', 'dummy-2', 'dummy-3']
 
-        @inherits: L{NodeDriver.list_nodes}
+        @inherits: :class:`NodeDriver.list_nodes`
         """
         return self.nl
 
@@ -172,7 +172,7 @@ class DummyNodeDriver(NodeDriver):
 
         Please note, dummy nodes never recover from the reboot.
 
-        @inherits: L{NodeDriver.reboot_node}
+        @inherits: :class:`NodeDriver.reboot_node`
         """
 
         node.state = NodeState.REBOOTING
@@ -195,7 +195,7 @@ class DummyNodeDriver(NodeDriver):
         >>> [node for node in driver.list_nodes() if node.name == 'dummy-1']
         []
 
-        @inherits: L{NodeDriver.destroy_node}
+        @inherits: :class:`NodeDriver.destroy_node`
         """
 
         node.state = NodeState.TERMINATED
@@ -211,7 +211,7 @@ class DummyNodeDriver(NodeDriver):
         >>> sorted([image.name for image in driver.list_images()])
         ['Slackware 4', 'Ubuntu 9.04', 'Ubuntu 9.10']
 
-        @inherits: L{NodeDriver.list_images}
+        @inherits: :class:`NodeDriver.list_images`
         """
         return [
             NodeImage(id=1, name="Ubuntu 9.10", driver=self),
@@ -228,7 +228,7 @@ class DummyNodeDriver(NodeDriver):
         >>> sorted([size.ram for size in driver.list_sizes()])
         [128, 512, 4096, 8192]
 
-        @inherits: L{NodeDriver.list_images}
+        @inherits: :class:`NodeDriver.list_images`
         """
 
         return [
@@ -271,7 +271,7 @@ class DummyNodeDriver(NodeDriver):
         >>> sorted([loc.name + " in " + loc.country for loc in driver.list_locations()])
         ['Island Datacenter in FJ', 'London Loft in GB', "Paul's Room in US"]
 
-        @inherits: L{NodeDriver.list_locations}
+        @inherits: :class:`NodeDriver.list_locations`
         """
         return [
             NodeLocation(id=1,
@@ -307,7 +307,7 @@ class DummyNodeDriver(NodeDriver):
         >>> sorted([node.name for node in driver.list_nodes()])
         ['dummy-1', 'dummy-2', 'dummy-4']
 
-        @inherits: L{NodeDriver.create_node}
+        @inherits: :class:`NodeDriver.create_node`
         """
         l = len(self.nl) + 1
         n = Node(id=l,

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index 58471aa..9d45fb7 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -612,10 +612,10 @@ class BaseEC2NodeDriver(NodeDriver):
         nodes that should be returned. Only the nodes
         with the corresponding node ids will be returned.
 
-        @param      ex_node_ids: List of C{node.id}
-        @type       ex_node_ids: C{list} of C{str}
+        :param      ex_node_ids: List of ``node.id``
+        :type       ex_node_ids: ``list`` of ``str``
 
-        @rtype: C{list} of L{Node}
+        :rtype: ``list`` of :class:`Node`
         """
         params = {'Action': 'DescribeInstances'}
         if ex_node_ids:
@@ -656,10 +656,10 @@ class BaseEC2NodeDriver(NodeDriver):
         images that should be returned. Only the images
         with the corresponding image ids will be returned.
 
-        @param      ex_image_ids: List of C{NodeImage.id}
-        @type       ex_image_ids: C{list} of C{str}
+        :param      ex_image_ids: List of ``NodeImage.id``
+        :type       ex_image_ids: ``list`` of ``str``
 
-        @rtype: C{list} of L{NodeImage}
+        :rtype: ``list`` of :class:`NodeImage`
         """
         params = {'Action': 'DescribeImages'}
 
@@ -725,11 +725,11 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @param      name: The name of the keypair to Create. This must be
+        :param      name: The name of the keypair to Create. This must be
             unique, otherwise an InvalidKeyPair.Duplicate exception is raised.
-        @type       name: C{str}
+        :type       name: ``str``
 
-        @rtype: C{dict}
+        :rtype: ``dict``
         """
         params = {
             'Action': 'CreateKeyPair',
@@ -751,14 +751,14 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @param      name: The name of the public key to import. This must be
+        :param      name: The name of the public key to import. This must be
          unique, otherwise an InvalidKeyPair.Duplicate exception is raised.
-        @type       name: C{str}
+        :type       name: ``str``
 
-        @param     key_material: The contents of a public key file.
-        @type      key_material: C{str}
+        :param     key_material: The contents of a public key file.
+        :type      key_material: ``str``
 
-        @rtype: C{dict}
+        :rtype: ``dict``
         """
         base64key = base64.b64encode(b(key_material))
 
@@ -784,14 +784,14 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @param      name: The name of the public key to import. This must be
+        :param      name: The name of the public key to import. This must be
          unique, otherwise an InvalidKeyPair.Duplicate exception is raised.
-        @type       name: C{str}
+        :type       name: ``str``
 
-        @param     keyfile: The filename with path of the public key to import.
-        @type      keyfile: C{str}
+        :param     keyfile: The filename with path of the public key to import.
+        :type      keyfile: ``str``
 
-        @rtype: C{dict}
+        :rtype: ``dict``
         """
         with open(os.path.expanduser(keyfile)) as fh:
             content = fh.read()
@@ -818,7 +818,7 @@ class BaseEC2NodeDriver(NodeDriver):
         """
         Lists all the keypair names and fingerprints.
 
-        @rtype: C{list} of C{dict}
+        :rtype: ``list`` of ``dict``
         """
         params = {
             'Action': 'DescribeKeyPairs'
@@ -845,7 +845,7 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @rtype: C{list} of C{str}
+        :rtype: ``list`` of ``str``
         """
         return [k['keyName'] for k in self.ex_list_keypairs()]
 
@@ -861,10 +861,10 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @param      name: The name of the keypair to describe.
-        @type       name: C{str}
+        :param      name: The name of the keypair to describe.
+        :type       name: ``str``
 
-        @rtype: C{dict}
+        :rtype: ``dict``
         """
 
         params = {
@@ -889,7 +889,7 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @rtype: C{list} of C{str}
+        :rtype: ``list`` of ``str``
         """
         params = {'Action': 'DescribeSecurityGroups'}
         response = self.connection.request(self.path, params=params).object
@@ -909,15 +909,15 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @param      name: The name of the security group to Create.
+        :param      name: The name of the security group to Create.
                           This must be unique.
-        @type       name: C{str}
+        :type       name: ``str``
 
-        @param      description: Human readable description of a Security
+        :param      description: Human readable description of a Security
         Group.
-        @type       description: C{str}
+        :type       description: ``str``
 
-        @rtype: C{str}
+        :rtype: ``str``
         """
         params = {'Action': 'CreateSecurityGroup',
                   'GroupName': name,
@@ -931,22 +931,22 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @param      name: The name of the security group to edit
-        @type       name: C{str}
+        :param      name: The name of the security group to edit
+        :type       name: ``str``
 
-        @param      from_port: The beginning of the port range to open
-        @type       from_port: C{str}
+        :param      from_port: The beginning of the port range to open
+        :type       from_port: ``str``
 
-        @param      to_port: The end of the port range to open
-        @type       to_port: C{str}
+        :param      to_port: The end of the port range to open
+        :type       to_port: ``str``
 
-        @param      cidr_ip: The ip to allow traffic for.
-        @type       cidr_ip: C{str}
+        :param      cidr_ip: The ip to allow traffic for.
+        :type       cidr_ip: ``str``
 
-        @param      protocol: tcp/udp/icmp
-        @type       protocol: C{str}
+        :param      protocol: tcp/udp/icmp
+        :type       protocol: ``str``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
 
         params = {'Action': 'AuthorizeSecurityGroupIngress',
@@ -971,10 +971,10 @@ class BaseEC2NodeDriver(NodeDriver):
 
         @note: This is a non-standard extension API, and only works for EC2.
 
-        @param      name: The name of the security group to edit
-        @type       name: C{str}
+        :param      name: The name of the security group to edit
+        :type       name: ``str``
 
-        @rtype: C{list} of C{str}
+        :rtype: ``list`` of ``str``
         """
 
         results = []
@@ -1018,17 +1018,17 @@ class BaseEC2NodeDriver(NodeDriver):
 
     def ex_list_availability_zones(self, only_available=True):
         """
-        Return a list of L{ExEC2AvailabilityZone} objects for the
+        Return a list of :class:`ExEC2AvailabilityZone` objects for the
         current region.
 
         Note: This is an extension method and is only available for EC2
         driver.
 
-        @keyword  only_available: If true, return only availability zones
+        :keyword  only_available: If true, return only availability zones
                                   with state 'available'
-        @type     only_available: C{str}
+        :type     only_available: ``str``
 
-        @rtype: C{list} of L{ExEC2AvailabilityZone}
+        :rtype: ``list`` of :class:`ExEC2AvailabilityZone`
         """
         params = {'Action': 'DescribeAvailabilityZones'}
 
@@ -1066,11 +1066,11 @@ class BaseEC2NodeDriver(NodeDriver):
         """
         Return a dictionary of tags for a resource (Node or StorageVolume).
 
-        @param  resource: resource which should be used
-        @type   resource: L{Node} or L{StorageVolume}
+        :param  resource: resource which should be used
+        :type   resource: :class:`Node` or :class:`StorageVolume`
 
-        @return: dict Node tags
-        @rtype: C{dict}
+        :return: dict Node tags
+        :rtype: ``dict``
         """
         params = {'Action': 'DescribeTags',
                   'Filter.0.Name': 'resource-id',
@@ -1096,14 +1096,14 @@ class BaseEC2NodeDriver(NodeDriver):
         """
         Create tags for a resource (Node or StorageVolume).
 
-        @param resource: Resource to be tagged
-        @type resource: L{Node} or L{StorageVolume}
+        :param resource: Resource to be tagged
+        :type resource: :class:`Node` or :class:`StorageVolume`
 
-        @param tags: A dictionary or other mapping of strings to strings,
+        :param tags: A dictionary or other mapping of strings to strings,
                      associating tag names with tag values.
-        @type tags: C{dict}
+        :type tags: ``dict``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         if not tags:
             return
@@ -1124,14 +1124,14 @@ class BaseEC2NodeDriver(NodeDriver):
         """
         Delete tags from a resource.
 
-        @param resource: Resource to be tagged
-        @type resource: L{Node} or L{StorageVolume}
+        :param resource: Resource to be tagged
+        :type resource: :class:`Node` or :class:`StorageVolume`
 
-        @param tags: A dictionary or other mapping of strings to strings,
+        :param tags: A dictionary or other mapping of strings to strings,
                      specifying the tag names and tag values to be deleted.
-        @type tags: C{dict}
+        :type tags: ``dict``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         if not tags:
             return
@@ -1162,12 +1162,12 @@ class BaseEC2NodeDriver(NodeDriver):
         Return all the Elastic IP addresses for this account
         optionally, return only the allocated addresses
 
-        @param    only_allocated: If true, return only those addresses
+        :param    only_allocated: If true, return only those addresses
                                   that are associated with an instance
-        @type     only_allocated: C{str}
+        :type     only_allocated: ``str``
 
-        @return:   list list of elastic ips for this particular account.
-        @rtype: C{list} of C{str}
+        :return:   list list of elastic ips for this particular account.
+        :rtype: ``list`` of ``str``
         """
         params = {'Action': 'DescribeAddresses'}
 
@@ -1196,13 +1196,13 @@ class BaseEC2NodeDriver(NodeDriver):
         """
         Associate an IP address with a particular node.
 
-        @param      node: Node instance
-        @type       node: L{Node}
+        :param      node: Node instance
+        :type       node: :class:`Node`
 
-        @param      elastic_ip_address: IP address which should be used
-        @type       elastic_ip_address: C{str}
+        :param      elastic_ip_address: IP address which should be used
+        :type       elastic_ip_address: ``str``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         params = {'Action': 'AssociateAddress'}
 
@@ -1215,12 +1215,12 @@ class BaseEC2NodeDriver(NodeDriver):
         """
         Return Elastic IP addresses for all the nodes in the provided list.
 
-        @param      nodes: List of C{Node} instances
-        @type       nodes: C{list} of L{Node}
+        :param      nodes: List of :class:`Node` instances
+        :type       nodes: ``list`` of :class:`Node`
 
-        @return: Dictionary where a key is a node ID and the value is a
+        :return: Dictionary where a key is a node ID and the value is a
             list with the Elastic IP addresses associated with this node.
-        @rtype: C{dict}
+        :rtype: ``dict``
         """
         if not nodes:
             return {}
@@ -1255,11 +1255,11 @@ class BaseEC2NodeDriver(NodeDriver):
         """
         Return a list of Elastic IP addresses associated with this node.
 
-        @param      node: Node instance
-        @type       node: L{Node}
+        :param      node: Node instance
+        :type       node: :class:`Node`
 
-        @return: list Elastic IP addresses attached to this node.
-        @rtype: C{list} of C{str}
+        :return: list Elastic IP addresses attached to this node.
+        :rtype: ``list`` of ``str``
         """
         node_elastic_ips = self.ex_describe_addresses([node])
         return node_elastic_ips[node.id]
@@ -1269,14 +1269,14 @@ class BaseEC2NodeDriver(NodeDriver):
         Modify node attributes.
         A list of valid attributes can be found at http://goo.gl/gxcj8
 
-        @param      node: Node instance
-        @type       node: L{Node}
+        :param      node: Node instance
+        :type       node: :class:`Node`
 
-        @param      attributes: Dictionary with node attributes
-        @type       attributes: C{dict}
+        :param      attributes: Dictionary with node attributes
+        :type       attributes: ``dict``
 
-        @return: True on success, False otherwise.
-        @rtype: C{bool}
+        :return: True on success, False otherwise.
+        :rtype: ``bool``
         """
         attributes = attributes or {}
         attributes.update({'InstanceId': node.id})
@@ -1295,14 +1295,14 @@ class BaseEC2NodeDriver(NodeDriver):
         Change the node size.
         Note: Node must be turned of before changing the size.
 
-        @param      node: Node instance
-        @type       node: L{Node}
+        :param      node: Node instance
+        :type       node: :class:`Node`
 
-        @param      new_size: NodeSize intance
-        @type       new_size: L{NodeSize}
+        :param      new_size: NodeSize intance
+        :type       new_size: :class:`NodeSize`
 
-        @return: True on success, False otherwise.
-        @rtype: C{bool}
+        :return: True on success, False otherwise.
+        :rtype: ``bool``
         """
         if 'instancetype' in node.extra:
             current_instance_type = node.extra['instancetype']
@@ -1319,35 +1319,35 @@ class BaseEC2NodeDriver(NodeDriver):
 
         Reference: http://bit.ly/8ZyPSy [docs.amazonwebservices.com]
 
-        @inherits: L{NodeDriver.create_node}
+        @inherits: :class:`NodeDriver.create_node`
 
-        @keyword    ex_mincount: Minimum number of instances to launch
-        @type       ex_mincount: C{int}
+        :keyword    ex_mincount: Minimum number of instances to launch
+        :type       ex_mincount: ``int``
 
-        @keyword    ex_maxcount: Maximum number of instances to launch
-        @type       ex_maxcount: C{int}
+        :keyword    ex_maxcount: Maximum number of instances to launch
+        :type       ex_maxcount: ``int``
 
-        @keyword    ex_security_groups: A list of names of security groups to
+        :keyword    ex_security_groups: A list of names of security groups to
                                         assign to the node.
-        @type       ex_security_groups:   C{list}
+        :type       ex_security_groups:   ``list``
 
-        @keyword    ex_keyname: The name of the key pair
-        @type       ex_keyname: C{str}
+        :keyword    ex_keyname: The name of the key pair
+        :type       ex_keyname: ``str``
 
-        @keyword    ex_userdata: User data
-        @type       ex_userdata: C{str}
+        :keyword    ex_userdata: User data
+        :type       ex_userdata: ``str``
 
-        @keyword    ex_clienttoken: Unique identifier to ensure idempotency
-        @type       ex_clienttoken: C{str}
+        :keyword    ex_clienttoken: Unique identifier to ensure idempotency
+        :type       ex_clienttoken: ``str``
 
-        @keyword    ex_blockdevicemappings: C{list} of C{dict} block device
+        :keyword    ex_blockdevicemappings: ``list`` of ``dict`` block device
                     mappings. Example:
                     [{'DeviceName': '/dev/sda1', 'Ebs.VolumeSize': 10},
                      {'DeviceName': '/dev/sdb', 'VirtualName': 'ephemeral0'}]
-        @type       ex_blockdevicemappings: C{list} of C{dict}
+        :type       ex_blockdevicemappings: ``list`` of ``dict``
 
-        @keyword    ex_iamprofile: Name or ARN of IAM profile
-        @type       ex_iamprofile: C{str}
+        :keyword    ex_iamprofile: Name or ARN of IAM profile
+        :type       ex_iamprofile: ``str``
         """
         image = kwargs["image"]
         size = kwargs["size"]
@@ -1456,10 +1456,10 @@ class BaseEC2NodeDriver(NodeDriver):
         Start the node by passing in the node object, does not work with
         instance store backed instances
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         params = {'Action': 'StartInstances'}
         params.update(self._pathlist('InstanceId', [node.id]))
@@ -1471,10 +1471,10 @@ class BaseEC2NodeDriver(NodeDriver):
         Stop the node by passing in the node object, does not work with
         instance store backed instances
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         params = {'Action': 'StopInstances'}
         params.update(self._pathlist('InstanceId', [node.id]))
@@ -1607,10 +1607,10 @@ class EucNodeDriver(BaseEC2NodeDriver):
     def __init__(self, key, secret=None, secure=True, host=None,
                  path=None, port=None):
         """
-        @inherits: L{EC2NodeDriver.__init__}
+        @inherits: :class:`EC2NodeDriver.__init__`
 
-        @param    path: The host where the API can be reached.
-        @type     path: C{str}
+        :param    path: The host where the API can be reached.
+        :type     path: ``str``
         """
         super(EucNodeDriver, self).__init__(key, secret, secure, host, port)
         if path is None:
@@ -1655,7 +1655,7 @@ class NimbusNodeDriver(BaseEC2NodeDriver):
         """
         Nimbus doesn't support elastic IPs, so this is a passthrough.
 
-        @inherits: L{EC2NodeDriver.ex_describe_addresses}
+        @inherits: :class:`EC2NodeDriver.ex_describe_addresses`
         """
         nodes_elastic_ip_mappings = {}
         for node in nodes:
@@ -1667,6 +1667,6 @@ class NimbusNodeDriver(BaseEC2NodeDriver):
         """
         Nimbus doesn't support creating tags, so this is a passthrough.
 
-        @inherits: L{EC2NodeDriver.ex_create_tags}
+        @inherits: :class:`EC2NodeDriver.ex_create_tags`
         """
         pass

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/ecp.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ecp.py b/libcloud/compute/drivers/ecp.py
index aa77440..343ee86 100644
--- a/libcloud/compute/drivers/ecp.py
+++ b/libcloud/compute/drivers/ecp.py
@@ -131,7 +131,7 @@ class ECPNodeDriver(NodeDriver):
         """
         Returns a list of all running Nodes
 
-        @rtype: C{list} of L{Node}
+        :rtype: ``list`` of :class:`Node`
         """
 
         #Make the call
@@ -190,7 +190,7 @@ class ECPNodeDriver(NodeDriver):
         """
         Shuts down a VM and then starts it again.
 
-        @inherits: L{NodeDriver.reboot_node}
+        @inherits: :class:`NodeDriver.reboot_node`
         """
 
         #Turn the VM off
@@ -232,7 +232,7 @@ class ECPNodeDriver(NodeDriver):
         """
         Shuts down and deletes a VM.
 
-        @inherits: L{NodeDriver.destroy_node}
+        @inherits: :class:`NodeDriver.destroy_node`
         """
 
         #Shut down first
@@ -274,7 +274,7 @@ class ECPNodeDriver(NodeDriver):
         """
         Returns a list of all package templates aka appiances aka images.
 
-        @inherits: L{NodeDriver.list_images}
+        @inherits: :class:`NodeDriver.list_images`
         """
 
         #Make the call
@@ -296,7 +296,7 @@ class ECPNodeDriver(NodeDriver):
         """
         Returns a list of all hardware templates
 
-        @inherits: L{NodeDriver.list_sizes}
+        @inherits: :class:`NodeDriver.list_sizes`
         """
 
         #Make the call
@@ -322,7 +322,7 @@ class ECPNodeDriver(NodeDriver):
         """
         This feature does not exist in ECP. Returns hard coded dummy location.
 
-        @rtype: C{list} of L{NodeLocation}
+        :rtype: ``list`` of :class:`NodeLocation`
         """
         return [NodeLocation(id=1,
                              name="Cloud",
@@ -334,17 +334,17 @@ class ECPNodeDriver(NodeDriver):
         """
         Creates a virtual machine.
 
-        @keyword    name:   String with a name for this new node (required)
-        @type       name:   C{str}
+        :keyword    name:   String with a name for this new node (required)
+        :type       name:   ``str``
 
-        @keyword    size:   The size of resources allocated to this node .
+        :keyword    size:   The size of resources allocated to this node .
                             (required)
-        @type       size:   L{NodeSize}
+        :type       size:   :class:`NodeSize`
 
-        @keyword    image:  OS Image to boot on node. (required)
-        @type       image:  L{NodeImage}
+        :keyword    image:  OS Image to boot on node. (required)
+        :type       image:  :class:`NodeImage`
 
-        @rtype: L{Node}
+        :rtype: :class:`Node`
         """
 
         #Find out what network to put the VM on.

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/elasticstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/elasticstack.py b/libcloud/compute/drivers/elasticstack.py
index 603fdf7..cced69c 100644
--- a/libcloud/compute/drivers/elasticstack.py
+++ b/libcloud/compute/drivers/elasticstack.py
@@ -226,24 +226,24 @@ class ElasticStackBaseNodeDriver(NodeDriver):
     def create_node(self, **kwargs):
         """Creates a ElasticStack instance
 
-        @inherits: L{NodeDriver.create_node}
+        @inherits: :class:`NodeDriver.create_node`
 
-        @keyword    name: String with a name for this new node (required)
-        @type       name: C{str}
+        :keyword    name: String with a name for this new node (required)
+        :type       name: ``str``
 
-        @keyword    smp: Number of virtual processors or None to calculate
+        :keyword    smp: Number of virtual processors or None to calculate
                          based on the cpu speed
-        @type       smp: C{int}
+        :type       smp: ``int``
 
-        @keyword    nic_model: e1000, rtl8139 or virtio
+        :keyword    nic_model: e1000, rtl8139 or virtio
                                (if not specified, e1000 is used)
-        @type       nic_model: C{str}
+        :type       nic_model: ``str``
 
-        @keyword    vnc_password: If set, the same password is also used for
+        :keyword    vnc_password: If set, the same password is also used for
                                   SSH access with user toor,
                                   otherwise VNC access is disabled and
                                   no SSH login is possible.
-        @type       vnc_password: C{str}
+        :type       vnc_password: ``str``
         """
         size = kwargs['size']
         image = kwargs['image']
@@ -327,13 +327,13 @@ class ElasticStackBaseNodeDriver(NodeDriver):
         """
         Changes the configuration of the running server
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
-        @param      kwargs: keyword arguments
-        @type       kwargs: C{dict}
+        :param      kwargs: keyword arguments
+        :type       kwargs: ``dict``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         valid_keys = ('^name$', '^parent$', '^cpu$', '^smp$', '^mem$',
                       '^boot$', '^nic:0:model$', '^nic:0:dhcp',
@@ -370,12 +370,12 @@ class ElasticStackBaseNodeDriver(NodeDriver):
         """
         Create a new node, and start deployment.
 
-        @inherits: L{NodeDriver.deploy_node}
+        @inherits: :class:`NodeDriver.deploy_node`
 
-        @keyword    enable_root: If true, root password will be set to
+        :keyword    enable_root: If true, root password will be set to
                                  vnc_password (this will enable SSH access)
                                  and default 'toor' account will be deleted.
-        @type       enable_root: C{bool}
+        :type       enable_root: ``bool``
         """
         image = kwargs['image']
         vnc_password = kwargs.get('vnc_password', None)
@@ -420,10 +420,10 @@ class ElasticStackBaseNodeDriver(NodeDriver):
         """
         Sends the ACPI power-down event
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         response = self.connection.request(
             action='/servers/%s/shutdown' % (node.id),
@@ -435,10 +435,10 @@ class ElasticStackBaseNodeDriver(NodeDriver):
         """
         Deletes a drive
 
-        @param      drive_uuid: Drive uuid which should be used
-        @type       drive_uuid: C{str}
+        :param      drive_uuid: Drive uuid which should be used
+        :type       drive_uuid: ``str``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         response = self.connection.request(
             action='/drives/%s/destroy' % (drive_uuid),

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f01e0637/libcloud/compute/drivers/gandi.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/gandi.py b/libcloud/compute/drivers/gandi.py
index 57bb5ae..e5593b4 100644
--- a/libcloud/compute/drivers/gandi.py
+++ b/libcloud/compute/drivers/gandi.py
@@ -90,7 +90,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
 
     def __init__(self, *args, **kwargs):
         """
-        @inherits: L{NodeDriver.__init__}
+        @inherits: :class:`NodeDriver.__init__`
         """
         super(BaseGandiDriver, self).__init__(*args, **kwargs)
 
@@ -182,7 +182,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         deploy_node is not implemented for gandi driver
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         raise NotImplementedError(
             'deploy_node not implemented for gandi driver')
@@ -191,30 +191,30 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Create a new Gandi node
 
-        @keyword    name:   String with a name for this new node (required)
-        @type       name:   C{str}
+        :keyword    name:   String with a name for this new node (required)
+        :type       name:   ``str``
 
-        @keyword    image:  OS Image to boot on node. (required)
-        @type       image:  L{NodeImage}
+        :keyword    image:  OS Image to boot on node. (required)
+        :type       image:  :class:`NodeImage`
 
-        @keyword    location: Which data center to create a node in. If empty,
+        :keyword    location: Which data center to create a node in. If empty,
                               undefined behavior will be selected. (optional)
-        @type       location: L{NodeLocation}
+        :type       location: :class:`NodeLocation`
 
-        @keyword    size:   The size of resources allocated to this node.
+        :keyword    size:   The size of resources allocated to this node.
                             (required)
-        @type       size:   L{NodeSize}
+        :type       size:   :class:`NodeSize`
 
-        @keyword    login: user name to create for login on machine (required)
-        @type       login: C{str}
+        :keyword    login: user name to create for login on machine (required)
+        :type       login: ``str``
 
-        @keyword    password: password for user that'll be created (required)
-        @type       password: C{str}
+        :keyword    password: password for user that'll be created (required)
+        :type       password: ``str``
 
-        @keyword    inet_family: version of ip to use, default 4 (optional)
-        @type       inet_family: C{int}
+        :keyword    inet_family: version of ip to use, default 4 (optional)
+        :type       inet_family: ``int``
 
-        @rtype: L{Node}
+        :rtype: :class:`Node`
         """
 
         if kwargs.get('login') is None or kwargs.get('password') is None:
@@ -369,7 +369,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
     def list_volumes(self):
         """
 
-        @rtype: C{list} of L{StorageVolume}
+        :rtype: ``list`` of :class:`StorageVolume`
         """
         res = self.connection.request('hosting.disk.list', {})
         return self._to_volumes(res.object)
@@ -401,13 +401,13 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Detaches a volume from a node.
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
-        @param      volume: Volume to be detached
-        @type       volume: L{StorageVolume}
+        :param      volume: Volume to be detached
+        :type       volume: :class:`StorageVolume`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         op = self.connection.request('hosting.vm.disk_detach',
                                      int(node.id), int(volume.id))
@@ -456,7 +456,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Specific method to list network interfaces
 
-        @rtype: C{list} of L{GandiNetworkInterface}
+        :rtype: ``list`` of :class:`GandiNetworkInterface`
         """
         ifaces = self.connection.request('hosting.iface.list').object
         ips = self.connection.request('hosting.ip.list').object
@@ -486,7 +486,7 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Specific method to list all disk
 
-        @rtype: C{list} of L{GandiDisk}
+        :rtype: ``list`` of :class:`GandiDisk`
         """
         res = self.connection.request('hosting.disk.list', {})
         return self._to_disks(res.object)
@@ -495,13 +495,13 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Specific method to attach a disk to a node
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
-        @param      disk: Disk which should be used
-        @type       disk: L{GandiDisk}
+        :param      disk: Disk which should be used
+        :type       disk: :class:`GandiDisk`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         op = self.connection.request('hosting.vm.disk_attach',
                                      int(node.id), int(disk.id))
@@ -513,13 +513,13 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Specific method to detach a disk from a node
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
-        @param      disk: Disk which should be used
-        @type       disk: L{GandiDisk}
+        :param      disk: Disk which should be used
+        :type       disk: :class:`GandiDisk`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         op = self.connection.request('hosting.vm.disk_detach',
                                      int(node.id), int(disk.id))
@@ -531,14 +531,14 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Specific method to attach an interface to a node
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
 
-        @param      iface: Network interface which should be used
-        @type       iface: L{GandiNetworkInterface}
+        :param      iface: Network interface which should be used
+        :type       iface: :class:`GandiNetworkInterface`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         op = self.connection.request('hosting.vm.iface_attach',
                                      int(node.id), int(iface.id))
@@ -550,14 +550,14 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Specific method to detach an interface from a node
 
-        @param      node: Node which should be used
-        @type       node: L{Node}
+        :param      node: Node which should be used
+        :type       node: :class:`Node`
 
 
-        @param      iface: Network interface which should be used
-        @type       iface: L{GandiNetworkInterface}
+        :param      iface: Network interface which should be used
+        :type       iface: :class:`GandiNetworkInterface`
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         op = self.connection.request('hosting.vm.iface_detach',
                                      int(node.id), int(iface.id))
@@ -569,13 +569,13 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """
         Specific method to make a snapshot of a disk
 
-        @param      disk: Disk which should be used
-        @type       disk: L{GandiDisk}
+        :param      disk: Disk which should be used
+        :type       disk: :class:`GandiDisk`
 
-        @param      name: Name which should be used
-        @type       name: C{str}
+        :param      name: Name which should be used
+        :type       name: ``str``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         if not disk.extra.get('can_snapshot'):
             raise GandiException(1021, 'Disk %s can\'t snapshot' % disk.id)
@@ -595,16 +595,16 @@ class GandiNodeDriver(BaseGandiDriver, NodeDriver):
         """Specific method to update size or name of a disk
         WARNING: if a server is attached it'll be rebooted
 
-        @param      disk: Disk which should be used
-        @type       disk: L{GandiDisk}
+        :param      disk: Disk which should be used
+        :type       disk: :class:`GandiDisk`
 
-        @param      new_size: New size
-        @type       new_size: C{int}
+        :param      new_size: New size
+        :type       new_size: ``int``
 
-        @param      new_name: New name
-        @type       new_name: C{str}
+        :param      new_name: New name
+        :type       new_name: ``str``
 
-        @rtype: C{bool}
+        :rtype: ``bool``
         """
         params = {}
         if new_size: