You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by rb...@apache.org on 2011/05/06 09:44:08 UTC
svn commit: r1100118 - in /incubator/libcloud/trunk/libcloud: common/base.py
compute/drivers/rackspace.py compute/providers.py compute/types.py
Author: rbogorodskiy
Date: Fri May 6 07:44:07 2011
New Revision: 1100118
URL: http://svn.apache.org/viewvc?rev=1100118&view=rev
Log:
Extend Rackspace driver to allow connection to custom OpenStack installations.
Modified:
incubator/libcloud/trunk/libcloud/common/base.py
incubator/libcloud/trunk/libcloud/compute/drivers/rackspace.py
incubator/libcloud/trunk/libcloud/compute/providers.py
incubator/libcloud/trunk/libcloud/compute/types.py
Modified: incubator/libcloud/trunk/libcloud/common/base.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/common/base.py?rev=1100118&r1=1100117&r2=1100118&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/common/base.py (original)
+++ incubator/libcloud/trunk/libcloud/common/base.py Fri May 6 07:44:07 2011
@@ -261,9 +261,14 @@ class ConnectionKey(object):
@returns: A connection
"""
host = host or self.host
- port = port or self.port[self.secure]
- kwargs = {'host': host, 'port': port}
+ # port might be included in service url, so pick it if it's present
+ if ":" in host:
+ host, port = host.split(":")
+ else:
+ port = port or self.port[self.secure]
+
+ kwargs = {'host': host, 'port': int(port)}
connection = self.conn_classes[self.secure](**kwargs)
# You can uncoment this line, if you setup a reverse proxy server
Modified: incubator/libcloud/trunk/libcloud/compute/drivers/rackspace.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/compute/drivers/rackspace.py?rev=1100118&r1=1100117&r2=1100118&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/compute/drivers/rackspace.py (original)
+++ incubator/libcloud/trunk/libcloud/compute/drivers/rackspace.py Fri May 6 07:44:07 2011
@@ -552,3 +552,14 @@ class RackspaceUKNodeDriver(RackspaceNod
def list_locations(self):
return [NodeLocation(0, 'Rackspace UK London', 'UK', self)]
+
+class OpenStackConnection(RackspaceConnection):
+
+ def __init__(self, user_id, key, secure, host, port):
+ super(OpenStackConnection, self).__init__(user_id, key, secure=False)
+ self.auth_host = host
+ self.port = (port, port)
+
+class OpenStackNodeDriver(RackspaceNodeDriver):
+ name = 'OpenStack'
+ connectionCls = OpenStackConnection
Modified: incubator/libcloud/trunk/libcloud/compute/providers.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/compute/providers.py?rev=1100118&r1=1100117&r2=1100118&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/compute/providers.py (original)
+++ incubator/libcloud/trunk/libcloud/compute/providers.py Fri May 6 07:44:07 2011
@@ -82,7 +82,9 @@ DRIVERS = {
Provider.GANDI:
('libcloud.compute.drivers.gandi', 'GandiNodeDriver'),
Provider.OPSOURCE:
- ('libcloud.compute.drivers.opsource', 'OpsourceNodeDriver')
+ ('libcloud.compute.drivers.opsource', 'OpsourceNodeDriver'),
+ Provider.OPENSTACK:
+ ('libcloud.compute.drivers.rackspace', 'OpenStackNodeDriver'),
}
def get_driver(provider):
Modified: incubator/libcloud/trunk/libcloud/compute/types.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/compute/types.py?rev=1100118&r1=1100117&r2=1100118&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/compute/types.py (original)
+++ incubator/libcloud/trunk/libcloud/compute/types.py Fri May 6 07:44:07 2011
@@ -88,6 +88,7 @@ class Provider(object):
BLUEBOX = 28
GANDI = 29
OPSOURCE = 30
+ OPENSTACK = 31
class NodeState(object):
"""