Author: tomaz
Date: Thu Jul 7 16:38:41 2011
New Revision: 1143911
URL: http://svn.apache.org/viewvc?rev=1143911&view=rev
Log:
Add new load-balancer driver for Rackspace UK.
Modified:
libcloud/trunk/libcloud/loadbalancer/drivers/rackspace.py
libcloud/trunk/libcloud/loadbalancer/providers.py
libcloud/trunk/test/loadbalancer/test_rackspace.py
Modified: libcloud/trunk/libcloud/loadbalancer/drivers/rackspace.py
URL:
http://svn.apache.org/viewvc/libcloud/trunk/libcloud/loadbalancer/drivers/rackspace.py?rev=1143911&r1=1143910&r2=1143911&view=diff
==============================================================================
--- libcloud/trunk/libcloud/loadbalancer/drivers/rackspace.py (original)
+++ libcloud/trunk/libcloud/loadbalancer/drivers/rackspace.py Thu Jul 7
16:38:41 2011
@@ -24,10 +24,11 @@ from libcloud.utils import reverse_dict
from libcloud.common.base import Response
from libcloud.loadbalancer.base import LoadBalancer, Member, Driver, Algorithm
from libcloud.loadbalancer.base import DEFAULT_ALGORITHM
-from libcloud.loadbalancer.types import Provider, State
-from libcloud.common.rackspace import (AUTH_HOST_US,
+from libcloud.loadbalancer.types import State
+from libcloud.common.rackspace import (AUTH_HOST_US, AUTH_HOST_UK,
RackspaceBaseConnection)
+
class RackspaceResponse(Response):
def success(self):
@@ -39,6 +40,7 @@ class RackspaceResponse(Response):
else:
return json.loads(self.body)
+
class RackspaceConnection(RackspaceBaseConnection):
responseCls = RackspaceResponse
auth_host = AUTH_HOST_US
@@ -65,6 +67,10 @@ class RackspaceConnection(RackspaceBaseC
params=params, data=data, method=method, headers=headers)
+class RackspaceUKConnection(RackspaceConnection):
+ auth_host = AUTH_HOST_UK
+
+
class RackspaceLBDriver(Driver):
connectionCls = RackspaceConnection
api_name = 'rackspace_lb'
@@ -176,3 +182,7 @@ class RackspaceLBDriver(Driver):
ip=el["address"],
port=el["port"])
return lbmember
+
+
+class RackspaceUKLBDriver(RackspaceLBDriver):
+ connectionCls = RackspaceUKConnection
Modified: libcloud/trunk/libcloud/loadbalancer/providers.py
URL:
http://svn.apache.org/viewvc/libcloud/trunk/libcloud/loadbalancer/providers.py?rev=1143911&r1=1143910&r2=1143911&view=diff
==============================================================================
--- libcloud/trunk/libcloud/loadbalancer/providers.py (original)
+++ libcloud/trunk/libcloud/loadbalancer/providers.py Thu Jul 7 16:38:41 2011
@@ -25,6 +25,8 @@ __all__ = [
DRIVERS = {
Provider.RACKSPACE_US:
('libcloud.loadbalancer.drivers.rackspace', 'RackspaceLBDriver'),
+ Provider.RACKSPACE_UK:
+ ('libcloud.loadbalancer.drivers.rackspace', 'RackspaceUKLBDriver'),
Provider.GOGRID:
('libcloud.loadbalancer.drivers.gogrid', 'GoGridLBDriver'),
Provider.NINEFOLD:
Modified: libcloud/trunk/test/loadbalancer/test_rackspace.py
URL:
http://svn.apache.org/viewvc/libcloud/trunk/test/loadbalancer/test_rackspace.py?rev=1143911&r1=1143910&r2=1143911&view=diff
==============================================================================
--- libcloud/trunk/test/loadbalancer/test_rackspace.py (original)
+++ libcloud/trunk/test/loadbalancer/test_rackspace.py Thu Jul 7 16:38:41 2011
@@ -24,6 +24,7 @@ except ImportError:
from libcloud.loadbalancer.base import Member, Algorithm
from libcloud.loadbalancer.drivers.rackspace import RackspaceLBDriver
+from libcloud.loadbalancer.drivers.rackspace import RackspaceUKLBDriver
from test import MockHttp
from test.file_fixtures import LoadBalancerFileFixtures
@@ -97,6 +98,16 @@ class RackspaceLBTests(unittest.TestCase
self.assertTrue(ret)
+
+class RackspaceUKLBTests(RackspaceLBTests):
+
+ def setUp(self):
+ RackspaceLBDriver.connectionCls.conn_classes = (None,
+ RackspaceLBMockHttp)
+ RackspaceLBMockHttp.type = None
+ self.driver = RackspaceUKLBDriver('user', 'key')
+
+
class RackspaceLBMockHttp(MockHttp, unittest.TestCase):
fixtures = LoadBalancerFileFixtures('rackspace')