Initial pass at adding AU/syd support to Rackspace.

Signed-off-by: Tomaz Muraus <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/44190f4b
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/44190f4b
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/44190f4b

Branch: refs/heads/trunk
Commit: 44190f4b2ab7cebda239ef5c6fea1ee4738a4327
Parents: 4952464
Author: Alex Gaynor <[email protected]>
Authored: Fri Jun 14 14:01:01 2013 -0700
Committer: Tomaz Muraus <[email protected]>
Committed: Fri Jun 21 12:54:30 2013 +0200

----------------------------------------------------------------------
 libcloud/common/rackspace.py               |  4 +++-
 libcloud/compute/drivers/rackspace.py      | 12 +++++++++---
 libcloud/dns/drivers/rackspace.py          | 12 +++++++++++-
 libcloud/dns/providers.py                  |  2 ++
 libcloud/dns/types.py                      |  1 +
 libcloud/loadbalancer/drivers/rackspace.py | 10 +++++++++-
 libcloud/loadbalancer/providers.py         |  2 ++
 libcloud/loadbalancer/types.py             |  1 +
 libcloud/storage/drivers/cloudfiles.py     |  4 +++-
 9 files changed, 41 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/common/rackspace.py
----------------------------------------------------------------------
diff --git a/libcloud/common/rackspace.py b/libcloud/common/rackspace.py
index d0802d7..d05bbd9 100644
--- a/libcloud/common/rackspace.py
+++ b/libcloud/common/rackspace.py
@@ -19,8 +19,10 @@ Common settings for Rackspace Cloud Servers and Cloud Files
 
 AUTH_URL_US = 'https://auth.api.rackspacecloud.com/v1.1/'
 AUTH_URL_UK = 'https://lon.auth.api.rackspacecloud.com/v1.1/'
+AUTH_URL_AU = 'https://syd.auth.api.rackspacecloud.com/v1.1/'
 
 __all__ = [
     "AUTH_URL_US",
     "AUTH_URL_UK",
-    ]
+    "AUTH_URL_AU",
+]

http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/compute/drivers/rackspace.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/rackspace.py 
b/libcloud/compute/drivers/rackspace.py
index af05e0c..2d56d7f 100644
--- a/libcloud/compute/drivers/rackspace.py
+++ b/libcloud/compute/drivers/rackspace.py
@@ -23,7 +23,7 @@ from libcloud.compute.drivers.openstack import 
OpenStack_1_1_Connection,\
     OpenStack_1_1_NodeDriver
 
 from libcloud.common.rackspace import (
-    AUTH_URL_US, AUTH_URL_UK)
+    AUTH_URL_US, AUTH_URL_UK, AUTH_URL_AU)
 
 
 ENDPOINT_ARGS_MAP = {
@@ -35,7 +35,10 @@ ENDPOINT_ARGS_MAP = {
             'region': 'ORD'},
     'lon': {'service_type': 'compute',
             'name': 'cloudServersOpenStack',
-            'region': 'LON'}
+            'region': 'LON'},
+    'syd': {'service_type': 'compute',
+            'name': 'cloudServersOpenStack',
+            'region': 'SYD'},
 }
 
 
@@ -151,7 +154,7 @@ class RackspaceNodeDriver(OpenStack_1_1_NodeDriver):
         @type datacenter: C{str}
         """
 
-        if datacenter not in ['dfw', 'ord', 'lon']:
+        if datacenter not in ['dfw', 'ord', 'lon', 'syd']:
             raise ValueError('Invalid datacenter: %s' % (datacenter))
 
         if datacenter in ['dfw', 'ord']:
@@ -160,6 +163,9 @@ class RackspaceNodeDriver(OpenStack_1_1_NodeDriver):
         elif datacenter == 'lon':
             self.connectionCls.auth_url = AUTH_URL_UK
             self.api_name = 'rackspacenovalon'
+        elif datacenter == 'syd':
+            self.connectionCls.auth_url = AUTH_URL_AU
+            self.api_name = 'rackspacenovasyd'
 
         self.connectionCls._auth_version = '2.0'
         self.connectionCls.get_endpoint_args = \

http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/dns/drivers/rackspace.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/rackspace.py 
b/libcloud/dns/drivers/rackspace.py
index dd30171..a19706b 100644
--- a/libcloud/dns/drivers/rackspace.py
+++ b/libcloud/dns/drivers/rackspace.py
@@ -25,7 +25,7 @@ import copy
 from libcloud.common.base import PollingConnection
 from libcloud.common.types import LibcloudError
 from libcloud.utils.misc import merge_valid_keys, get_new_obj
-from libcloud.common.rackspace import AUTH_URL_US, AUTH_URL_UK
+from libcloud.common.rackspace import AUTH_URL_US, AUTH_URL_UK, AUTH_URL_AU
 from libcloud.compute.drivers.openstack import OpenStack_1_1_Connection
 from libcloud.compute.drivers.openstack import OpenStack_1_1_Response
 
@@ -127,6 +127,10 @@ class RackspaceUKDNSConnection(RackspaceDNSConnection):
     auth_url = AUTH_URL_UK
 
 
+class RackspaceAUDNSConnection(RackspaceDNSConnection):
+    auth_url = AUTH_URL_AU
+
+
 class RackspaceDNSDriver(DNSDriver, OpenStackDriverMixin):
     website = 'http://www.rackspace.com/'
 
@@ -392,3 +396,9 @@ class RackspaceUKDNSDriver(RackspaceDNSDriver):
     name = 'Rackspace DNS (UK)'
     type = Provider.RACKSPACE_UK
     connectionCls = RackspaceUKDNSConnection
+
+
+class RackspaceAUDNSDriver(RackspaceDNSDriver):
+    name = 'Rackspace DNS (AU)'
+    type = Provider.RACKSPACE_AU
+    connectionCls = RackspaceAUDNSConnection

http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/dns/providers.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/providers.py b/libcloud/dns/providers.py
index bdd704e..bb9a858 100644
--- a/libcloud/dns/providers.py
+++ b/libcloud/dns/providers.py
@@ -28,6 +28,8 @@ DRIVERS = {
         ('libcloud.dns.drivers.rackspace', 'RackspaceUSDNSDriver'),
     Provider.RACKSPACE_UK:
         ('libcloud.dns.drivers.rackspace', 'RackspaceUKDNSDriver'),
+    Provider.RACKSPACE_AU:
+        ('libcloud.dns.drivers.rackspace', 'RackspaceAUDNSDriver'),
     Provider.HOSTVIRTUAL:
         ('libcloud.dns.drivers.hostvirtual', 'HostVirtualDNSDriver'),
     Provider.ROUTE53:

http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/dns/types.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/types.py b/libcloud/dns/types.py
index 7acb1e4..f989edb 100644
--- a/libcloud/dns/types.py
+++ b/libcloud/dns/types.py
@@ -33,6 +33,7 @@ class Provider(object):
     ZERIGO = 'zerigo'
     RACKSPACE_US = 'rackspace_us'
     RACKSPACE_UK = 'rackspace_uk'
+    RACKSPACE_AU = 'rackspace_au'
     ROUTE53 = 'route53'
     HOSTVIRTUAL = 'hostvirtual'
     GANDI = 'gandi'

http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/loadbalancer/drivers/rackspace.py
----------------------------------------------------------------------
diff --git a/libcloud/loadbalancer/drivers/rackspace.py 
b/libcloud/loadbalancer/drivers/rackspace.py
index a21fdfc..324377a 100644
--- a/libcloud/loadbalancer/drivers/rackspace.py
+++ b/libcloud/loadbalancer/drivers/rackspace.py
@@ -29,7 +29,7 @@ from libcloud.common.base import JsonResponse, 
PollingConnection
 from libcloud.loadbalancer.types import State, MemberCondition
 from libcloud.common.openstack import OpenStackBaseConnection,\
     OpenStackDriverMixin
-from libcloud.common.rackspace import (AUTH_URL_US, AUTH_URL_UK)
+from libcloud.common.rackspace import AUTH_URL_US, AUTH_URL_UK, AUTH_URL_AU
 
 
 class RackspaceResponse(JsonResponse):
@@ -299,6 +299,10 @@ class RackspaceUKConnection(RackspaceConnection):
     auth_url = AUTH_URL_UK
 
 
+class RackspaceAUConnection(RackspaceConnection):
+    auth_url = AUTH_URL_AU
+
+
 class RackspaceLBDriver(Driver, OpenStackDriverMixin):
     connectionCls = RackspaceConnection
     api_name = 'rackspace_lb'
@@ -1536,3 +1540,7 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin):
 
 class RackspaceUKLBDriver(RackspaceLBDriver):
     connectionCls = RackspaceUKConnection
+
+
+class RackspaceAULBDriver(RackspaceLBDriver):
+    connectionCls = RackspaceAUConnection

http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/loadbalancer/providers.py
----------------------------------------------------------------------
diff --git a/libcloud/loadbalancer/providers.py 
b/libcloud/loadbalancer/providers.py
index cf2411d..b1918ab 100644
--- a/libcloud/loadbalancer/providers.py
+++ b/libcloud/loadbalancer/providers.py
@@ -28,6 +28,8 @@ DRIVERS = {
             ('libcloud.loadbalancer.drivers.rackspace', 'RackspaceLBDriver'),
         Provider.RACKSPACE_UK:
             ('libcloud.loadbalancer.drivers.rackspace', 'RackspaceUKLBDriver'),
+        Provider.RACKSPACE_AU:
+            ('libcloud.loadbalancer.drivers.rackspace', 'RackspaceAULBDriver'),
         Provider.GOGRID:
             ('libcloud.loadbalancer.drivers.gogrid', 'GoGridLBDriver'),
         Provider.NINEFOLD:

http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/loadbalancer/types.py
----------------------------------------------------------------------
diff --git a/libcloud/loadbalancer/types.py b/libcloud/loadbalancer/types.py
index 95f4a9f..4a77197 100644
--- a/libcloud/loadbalancer/types.py
+++ b/libcloud/loadbalancer/types.py
@@ -36,6 +36,7 @@ class Provider(object):
     GOGRID = 'gogrid'
     NINEFOLD = 'ninefold'
     RACKSPACE_UK = 'rackspace_uk'
+    RACKSPACE_AU = 'rackspace_au'
     BRIGHTBOX = 'brightbox'
     ELB = 'elb'
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/44190f4b/libcloud/storage/drivers/cloudfiles.py
----------------------------------------------------------------------
diff --git a/libcloud/storage/drivers/cloudfiles.py 
b/libcloud/storage/drivers/cloudfiles.py
index ef04bf0..d738459 100644
--- a/libcloud/storage/drivers/cloudfiles.py
+++ b/libcloud/storage/drivers/cloudfiles.py
@@ -49,7 +49,7 @@ from libcloud.common.openstack import OpenStackBaseConnection
 from libcloud.common.openstack import OpenStackDriverMixin
 
 from libcloud.common.rackspace import (
-    AUTH_URL_US, AUTH_URL_UK)
+    AUTH_URL_US, AUTH_URL_UK, AUTH_URL_AU)
 
 CDN_HOST = 'cdn.clouddrive.com'
 API_VERSION = 'v1.0'
@@ -799,6 +799,8 @@ class CloudFilesStorageDriver(StorageDriver, 
OpenStackDriverMixin):
             kwargs['auth_url'] = AUTH_URL_US
         elif self.datacenter == 'lon':
             kwargs['auth_url'] = AUTH_URL_UK
+        elif self.datacenter == 'syd':
+            kwargs['auth_url'] = AUTH_URL_AU
 
         kwargs.update(self.openstack_connection_kwargs())
         return kwargs

Reply via email to