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 2012/10/22 20:33:01 UTC
svn commit: r1400989 - in /libcloud/trunk/libcloud/compute: deployment.py
drivers/ec2.py drivers/ibm_sce.py drivers/openstack.py drivers/rackspace.py
drivers/vcloud.py
Author: tomaz
Date: Mon Oct 22 18:33:01 2012
New Revision: 1400989
URL: http://svn.apache.org/viewvc?rev=1400989&view=rev
Log:
Update docstrings and fix pep8 issues. Contributed by Ilgiz Islamgulov.
Modified:
libcloud/trunk/libcloud/compute/deployment.py
libcloud/trunk/libcloud/compute/drivers/ec2.py
libcloud/trunk/libcloud/compute/drivers/ibm_sce.py
libcloud/trunk/libcloud/compute/drivers/openstack.py
libcloud/trunk/libcloud/compute/drivers/rackspace.py
libcloud/trunk/libcloud/compute/drivers/vcloud.py
Modified: libcloud/trunk/libcloud/compute/deployment.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/deployment.py?rev=1400989&r1=1400988&r2=1400989&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/deployment.py (original)
+++ libcloud/trunk/libcloud/compute/deployment.py Mon Oct 22 18:33:01 2012
@@ -91,7 +91,7 @@ class FileDeployment(Deployment):
@keyword source: Local path of file to be installed
@type target: C{str}
- @keyword target: Path to install file on node
+ @keyword target: Path to install file on node
"""
self.source = source
self.target = target
Modified: libcloud/trunk/libcloud/compute/drivers/ec2.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/ec2.py?rev=1400989&r1=1400988&r2=1400989&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/ec2.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/ec2.py Mon Oct 22 18:33:01 2012
@@ -650,7 +650,7 @@ class EC2NodeDriver(NodeDriver):
@note: This is a non-standard extension API, and only works for EC2.
- @rtype: C{list}
+ @rtype: C{list} of C{str}
"""
params = {
@@ -743,8 +743,8 @@ class EC2NodeDriver(NodeDriver):
@param from_port: The beginning of the port range to open
@type from_port: C{str}
- @param end_port: The end of the port range to open
- @type end_port: C{str}
+ @param to_port: The end of the port range to open
+ @type to_port: C{str}
@param cidr_ip: The ip to allow traffic for.
@type cidr_ip: C{str}
@@ -752,7 +752,7 @@ class EC2NodeDriver(NodeDriver):
@param protocol: tcp/udp/icmp
@type protocol: C{str}
- @rtype: C{boolean}
+ @rtype: C{bool}
"""
params = {'Action': 'AuthorizeSecurityGroupIngress',
@@ -762,7 +762,8 @@ class EC2NodeDriver(NodeDriver):
'ToPort': str(to_port),
'CidrIp': cidr_ip}
try:
- resp = self.connection.request(self.path, params=params.copy()).object
+ resp = self.connection.request(
+ self.path, params=params.copy()).object
return bool(findtext(element=resp, xpath='return',
namespace=NAMESPACE))
except Exception:
Modified: libcloud/trunk/libcloud/compute/drivers/ibm_sce.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/ibm_sce.py?rev=1400989&r1=1400988&r2=1400989&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/ibm_sce.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/ibm_sce.py Mon Oct 22 18:33:01 2012
@@ -129,7 +129,8 @@ class VolumeOffering(object):
class Address(object):
"""
A reserved IP address that can be attached to an instance.
- Properties: id, ip, state, options(location, type, created_time, state, hostname, instance_ids, vlan, owner,
+ Properties: id, ip, state, options(location, type, created_time, state,
+ hostname, instance_ids, vlan, owner,
mode, offering_id)
"""
def __init__(self, id, ip, state, options):
@@ -264,6 +265,7 @@ class IBMNodeDriver(NodeDriver):
@type kwargs.target_location_id: C{str}
@return: The newly created L{StorageVolume}.
+ @rtype: L{StorageVolume}
"""
data = {}
data.update({'name': name})
@@ -273,14 +275,16 @@ class IBMNodeDriver(NodeDriver):
data.update({'format': kwargs['format']})
if (('offering_id' in kwargs) and (kwargs['offering_id'] is not None)):
data.update({'offeringID': kwargs['offering_id']})
- if (('storage_area_id' in kwargs) and (kwargs['storage_area_id'] is not None)):
+ if (('storage_area_id' in kwargs) and
+ (kwargs['storage_area_id'] is not None)):
data.update({'storageAreaID': kwargs['storage_area_id']})
if 'source_disk_id' in kwargs:
data.update({'sourceDiskID': kwargs['source_disk_id']})
data.update({'type': 'clone'})
if 'target_location_id' in kwargs:
data.update({'targetLocationID': kwargs['target_location_id']})
- resp = self.connection.request(action=REST_BASE + '/storage',
+ resp = self.connection.request(
+ action=REST_BASE + '/storage',
headers={'Content-Type': 'application/x-www-form-urlencoded'},
method='POST',
data=data).object
@@ -293,16 +297,18 @@ class IBMNodeDriver(NodeDriver):
@param name: Name of the image to be created (required)
@type name: C{str}
- @param description: Description of the image to be created (optional)
- @type description: L{str}
+ @param description: Description of the image to be created
+ @type description: C{str}
- @keyword kwarge.image_id: The ID of the source image if cloning the image
- @type kwargs.image_id: C{str}
+ @keyword image_id: The ID of the source image if cloning the image
+ @type image_id: C{str}
- @keyword kwargs.volume_id: The ID of the storage volume if importing the image
- @type kwargs.volume_id: C{str}
+ @keyword volume_id: The ID of the storage volume if
+ importing the image
+ @type volume_id: C{str}
@return: The newly created L{NodeImage}.
+ @rtype: L{NodeImage}
"""
data = {}
data.update({'name': name})
@@ -312,7 +318,8 @@ class IBMNodeDriver(NodeDriver):
data.update({'imageId': kwargs['image_id']})
if (('volume_id' in kwargs) and (kwargs['volume_id'] is not None)):
data.update({'volumeId': kwargs['volume_id']})
- resp = self.connection.request(action=REST_BASE + '/offerings/image',
+ resp = self.connection.request(
+ action=REST_BASE + '/offerings/image',
headers={'Content-Type': 'application/x-www-form-urlencoded'},
method='POST',
data=data).object
@@ -331,7 +338,7 @@ class IBMNodeDriver(NodeDriver):
@param volume: Volume to be destroyed
@type volume: L{StorageVolume}
- @return: C{bool}
+ @rtype: C{bool}
"""
url = REST_BASE + '/storage/%s' % (volume.id)
status = int(self.connection.request(action=url,
@@ -348,7 +355,7 @@ class IBMNodeDriver(NodeDriver):
@param volume: Volume to attach
@type volume: L{StorageVolume}
- @return: C{bool}
+ @rtype: C{bool}
"""
url = REST_BASE + '/instances/%s' % (node.id)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
@@ -363,10 +370,13 @@ class IBMNodeDriver(NodeDriver):
"""
Detaches a volume from a node.
+ @param node: Node which should be used
+ @type node: L{Node}
+
@param volume: Volume to be detached
@type volume: L{StorageVolume}
- @returns C{bool}
+ @rtype: C{bool}
"""
url = REST_BASE + '/instances/%s' % (node.id)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
@@ -400,17 +410,17 @@ class IBMNodeDriver(NodeDriver):
"""
List storage volumes.
- @return: C{list} of L{StorageVolume} objects
+ @rtype: C{list} of L{StorageVolume}
"""
return self._to_volumes(
self.connection.request(REST_BASE + '/storage').object)
def list_sizes(self, location=None):
"""
- Returns a generic list of sizes. See list_images() for a list of supported
- sizes for specific images. In particular, you need to have a size that
- matches the architecture (32-bit vs 64-bit) of the virtual machine image
- operating system.
+ Returns a generic list of sizes. See list_images() for a list of
+ supported sizes for specific images. In particular, you need to have
+ a size that matches the architecture (32-bit vs 64-bit) of the virtual
+ machine image operating system.
@inherits: L{NodeDriver.list_sizes}
"""
@@ -435,15 +445,14 @@ class IBMNodeDriver(NodeDriver):
None, None, None, None, self.connection.driver)]
def list_locations(self):
- """
- List the data center locations
- """
return self._to_locations(
self.connection.request(REST_BASE + '/locations').object)
def ex_list_storage_offerings(self):
"""
List the storage center offerings
+
+ @rtype: C{list} of L{VolumeOffering}
"""
return self._to_volume_offerings(
self.connection.request(REST_BASE + '/offerings/storage').object)
@@ -453,12 +462,16 @@ class IBMNodeDriver(NodeDriver):
Allocate a new reserved IP address
@param location_id: Target data center
- @type location_id: L{str}
+ @type location_id: C{str}
+
@param offering_id: Offering ID for address to create
- @type offering_id: L{str}
+ @type offering_id: C{str}
+
@param vlan_id: ID of target VLAN
- @type vlan_id: L{str}
- @return: L{Address} object
+ @type vlan_id: C{str}
+
+ @return: L{Address} object
+ @rtype: L{Address}
"""
url = REST_BASE + '/addresses'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
@@ -475,8 +488,11 @@ class IBMNodeDriver(NodeDriver):
"""
List the reserved IP addresses
- @param resource_id: If this is supplied only a single address will be returned (optional)
- @type resource_id: L{str}
+ @param resource_id: If this is supplied only a single address will
+ be returned (optional)
+ @type resource_id: C{str}
+
+ @rtype: C{list} of L{Address}
"""
url = REST_BASE + '/addresses'
if resource_id:
@@ -494,6 +510,7 @@ class IBMNodeDriver(NodeDriver):
@type volume: L{StorageVolume}
@return: C{bool} The success of the operation
+ @rtype: C{bool}
"""
url = REST_BASE + '/storage/%s' % (volume.id)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
@@ -509,7 +526,9 @@ class IBMNodeDriver(NodeDriver):
Delete a reserved IP address
@param resource_id: The address to delete (required)
- @type resource_id: L{str}
+ @type resource_id: C{str}
+
+ @rtype: C{bool}
"""
url = REST_BASE + '/addresses/' + resource_id
status = int(self.connection.request(action=url,
@@ -522,7 +541,7 @@ class IBMNodeDriver(NodeDriver):
Block until storage volume state changes to the given value
@param volume: Storage volume.
- @type node: C{StorageVolume}
+ @type volume: L{StorageVolume}
@param state: The target state to wait for
@type state: C{int}
@@ -535,7 +554,7 @@ class IBMNodeDriver(NodeDriver):
(default is 1200)
@type timeout: C{int}
- @return: C{StorageVolume}
+ @rtype: L{StorageVolume}
"""
start = time.time()
end = start + timeout
@@ -565,16 +584,17 @@ class IBMNodeDriver(NodeDriver):
public_ips.append(ip)
return Node(
- id=instance.findtext('ID'),
- name=instance.findtext('Name'),
- state=self.NODE_STATE_MAP[int(instance.findtext('Status'))],
- public_ips=public_ips,
- private_ips=[],
- driver=self.connection.driver
+ id=instance.findtext('ID'),
+ name=instance.findtext('Name'),
+ state=self.NODE_STATE_MAP[int(instance.findtext('Status'))],
+ public_ips=public_ips,
+ private_ips=[],
+ driver=self.connection.driver
)
def _to_images(self, object):
- # Converts data retrieved from SCE /offerings/image REST call to a NodeImage
+ # Converts data retrieved from SCE /offerings/image REST call to
+ # a NodeImage
return [self._to_image(image) for image in object.findall('Image')]
def _to_image(self, image):
@@ -663,12 +683,12 @@ class IBMNodeDriver(NodeDriver):
def _to_volume(self, object):
# Converts an SCE Volume to a Libcloud StorageVolume
extra = {'state': object.findtext('State'),
- 'location': object.findtext('Location'),
- 'instanceID': object.findtext('instanceID'),
- 'owner': object.findtext('Owner'),
- 'format': object.findtext('Format'),
- 'createdTime': object.findtext('CreatedTime'),
- 'storageAreaID': object.findtext('StorageArea/ID')}
+ 'location': object.findtext('Location'),
+ 'instanceID': object.findtext('instanceID'),
+ 'owner': object.findtext('Owner'),
+ 'format': object.findtext('Format'),
+ 'createdTime': object.findtext('CreatedTime'),
+ 'storageAreaID': object.findtext('StorageArea/ID')}
return StorageVolume(object.findtext('ID'),
object.findtext('Name'),
object.findtext('Size'),
@@ -683,9 +703,9 @@ class IBMNodeDriver(NodeDriver):
# Converts an SCE DescribeVolumeOfferingsResponse/Offerings XML object
# to an SCE VolumeOffering
extra = {'label': object.findtext('Label'),
- 'supported_sizes': object.findtext('SupportedSizes'),
- 'formats': object.findall('SupportedFormats/Format/ID'),
- 'price': object.findall('Price')}
+ 'supported_sizes': object.findtext('SupportedSizes'),
+ 'formats': object.findall('SupportedFormats/Format/ID'),
+ 'price': object.findall('Price')}
return VolumeOffering(object.findtext('ID'),
object.findtext('Name'),
object.findtext('Location'),
@@ -701,14 +721,14 @@ class IBMNodeDriver(NodeDriver):
# Converts an SCE DescribeAddressesResponse/Address XML object to
# an Address object
extra = {'location': object.findtext('Location'),
- 'type': object.findtext('Label'),
- 'created_time': object.findtext('SupportedSizes'),
- 'hostname': object.findtext('Hostname'),
- 'instance_ids': object.findtext('InstanceID'),
- 'vlan': object.findtext('VLAN'),
- 'owner': object.findtext('owner'),
- 'mode': object.findtext('Mode'),
- 'offering_id': object.findtext('OfferingID')}
+ 'type': object.findtext('Label'),
+ 'created_time': object.findtext('SupportedSizes'),
+ 'hostname': object.findtext('Hostname'),
+ 'instance_ids': object.findtext('InstanceID'),
+ 'vlan': object.findtext('VLAN'),
+ 'owner': object.findtext('owner'),
+ 'mode': object.findtext('Mode'),
+ 'offering_id': object.findtext('OfferingID')}
return Address(object.findtext('ID'),
object.findtext('IP'),
object.findtext('State'),
Modified: libcloud/trunk/libcloud/compute/drivers/openstack.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/openstack.py?rev=1400989&r1=1400988&r2=1400989&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/openstack.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/openstack.py Mon Oct 22 18:33:01 2012
@@ -953,7 +953,7 @@ class OpenStack_1_1_NodeDriver(OpenStack
@type ex_metadata: C{dict}
@keyword ex_files: File Path => File contents to create on
- the node
+ the no de
@type ex_files: C{dict}
@keyword ex_keyname: Name of existing public key to inject into
@@ -966,7 +966,7 @@ class OpenStack_1_1_NodeDriver(OpenStack
@type ex_userdata: C{str}
@keyword networks: The server is launched into a set of Networks.
- @type networks: C{OpenStackNetwork}
+ @type networks: L{OpenStackNetwork}
"""
server_params = self._create_args_to_params(None, **kwargs)
@@ -1249,6 +1249,12 @@ class OpenStack_1_1_NodeDriver(OpenStack
"""
Create a new Network
+ @param name: Name of network which should be used
+ @type name: C{str}
+
+ @param cidr: cidr of network which should be used
+ @type cidr: C{str}
+
@rtype: L{OpenStackNetwork}
"""
return self._to_network(self.connection.request(
@@ -1260,7 +1266,10 @@ class OpenStack_1_1_NodeDriver(OpenStack
"""
Get a list of NodeNetorks that are available.
- @rtype: L{bool}
+ @param network: Network which should be used
+ @type network: L{OpenStackNetwork}
+
+ @rtype: C{bool}
"""
resp = self.connection.request('/os-networksv2/%s' % (network.id),
method='DELETE')
Modified: libcloud/trunk/libcloud/compute/drivers/rackspace.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/rackspace.py?rev=1400989&r1=1400988&r2=1400989&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/rackspace.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/rackspace.py Mon Oct 22 18:33:01 2012
@@ -17,9 +17,9 @@ Rackspace driver
"""
from libcloud.compute.types import Provider, LibcloudError
from libcloud.compute.base import NodeLocation
-from libcloud.compute.drivers.openstack import OpenStack_1_0_Connection, \
+from libcloud.compute.drivers.openstack import OpenStack_1_0_Connection,\
OpenStack_1_0_NodeDriver, OpenStack_1_0_Response
-from libcloud.compute.drivers.openstack import OpenStack_1_1_Connection, \
+from libcloud.compute.drivers.openstack import OpenStack_1_1_Connection,\
OpenStack_1_1_NodeDriver
from libcloud.common.rackspace import (
@@ -27,15 +27,15 @@ from libcloud.common.rackspace import (
ENDPOINT_ARGS_MAP = {
- 'dfw': {'service_type': 'compute',
- 'name': 'cloudServersOpenStack',
- 'region': 'DFW'},
- 'ord': {'service_type': 'compute',
- 'name': 'cloudServersOpenStack',
- 'region': 'ORD'},
- 'lon': {'service_type': 'compute',
- 'name': 'cloudServersOpenStack',
- 'region': 'LON'}
+ 'dfw': {'service_type': 'compute',
+ 'name': 'cloudServersOpenStack',
+ 'region': 'DFW'},
+ 'ord': {'service_type': 'compute',
+ 'name': 'cloudServersOpenStack',
+ 'region': 'ORD'},
+ 'lon': {'service_type': 'compute',
+ 'name': 'cloudServersOpenStack',
+ 'region': 'LON'}
}
@@ -70,6 +70,12 @@ class RackspaceFirstGenNodeDriver(OpenSt
def __init__(self, key, secret=None, secure=True, host=None, port=None,
region='us', **kwargs):
+ """
+ @inherits: L{NodeDriver.__init__}
+
+ @param region: Region ID which should be used
+ @type region: C{str}
+ """
if region not in ['us', 'uk']:
raise ValueError('Invalid region: %s' % (region))
@@ -81,8 +87,10 @@ class RackspaceFirstGenNodeDriver(OpenSt
self.region = region
super(RackspaceFirstGenNodeDriver, self).__init__(key=key,
- secret=secret, secure=secure, host=host,
- port=port, **kwargs)
+ secret=secret,
+ secure=secure,
+ host=host,
+ port=port, **kwargs)
def list_locations(self):
"""
@@ -136,6 +144,12 @@ class RackspaceNodeDriver(OpenStack_1_1_
def __init__(self, key, secret=None, secure=True, host=None, port=None,
datacenter='dfw', **kwargs):
+ """
+ @inherits: L{NodeDriver.__init__}
+
+ @param datacenter: Datacenter ID which should be used
+ @type datacenter: C{str}
+ """
if datacenter not in ['dfw', 'ord', 'lon']:
raise ValueError('Invalid datacenter: %s' % (datacenter))
@@ -149,9 +163,10 @@ class RackspaceNodeDriver(OpenStack_1_1_
self.connectionCls._auth_version = '2.0'
self.connectionCls.get_endpoint_args = \
- ENDPOINT_ARGS_MAP[datacenter]
+ ENDPOINT_ARGS_MAP[datacenter]
self.datacenter = datacenter
super(RackspaceNodeDriver, self).__init__(key=key, secret=secret,
- secure=secure, host=host, port=port, **kwargs)
+ secure=secure, host=host,
+ port=port, **kwargs)
Modified: libcloud/trunk/libcloud/compute/drivers/vcloud.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/vcloud.py?rev=1400989&r1=1400988&r2=1400989&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/vcloud.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/vcloud.py Mon Oct 22 18:33:01 2012
@@ -74,7 +74,8 @@ def get_url_path(url):
class Vdc:
"""Virtual datacenter (vDC) representation"""
- def __init__(self, id, name, driver, allocation_model=None, cpu=None, memory=None, storage=None):
+ def __init__(self, id, name, driver, allocation_model=None, cpu=None,
+ memory=None, storage=None):
self.id = id
self.name = name
self.driver = driver
@@ -348,7 +349,7 @@ class VCloudNodeDriver(NodeDriver):
vCloud virtual data centers (vDCs).
@return: list of vDC objects
- @rtype: C{list} of L{VCloudVDC}
+ @rtype: C{list} of L{Vdc}
"""
if not self._vdcs:
self.connection.check_org() # make sure the org is set. # pylint: disable-msg=E1101
@@ -514,7 +515,7 @@ class VCloudNodeDriver(NodeDriver):
will be queried.
@type vdcs: L{Vdc}
- @rtype: C{list} of L{Node} objects
+ @rtype: C{list} of L{Node}
"""
if not vdcs:
vdcs = self.vdcs
@@ -893,7 +894,7 @@ class VCloud_1_5_NodeDriver(VCloudNodeDr
@type node_name: C{str}
@param vdcs: None, vDC or a list of vDCs to search in. If None all vDCs will be searched.
- @type node_name: L{VCloudVDC}
+ @type vdcs: L{Vdc}
@return: node instance or None if not found
@rtype: L{Node} or C{None}