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
