Update Rackspace loadbalancer driver to use "region" argument.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/236a022f Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/236a022f Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/236a022f Branch: refs/heads/trunk Commit: 236a022f12ad5554d686be20f9148a9c6228df57 Parents: 18baa68 Author: Tomaz Muraus <[email protected]> Authored: Mon Oct 14 23:45:55 2013 +0200 Committer: Tomaz Muraus <[email protected]> Committed: Mon Oct 14 23:45:55 2013 +0200 ---------------------------------------------------------------------- libcloud/loadbalancer/drivers/rackspace.py | 106 ++++++------ libcloud/loadbalancer/providers.py | 12 +- libcloud/loadbalancer/types.py | 7 +- libcloud/test/loadbalancer/test_rackspace.py | 188 ++++++++++------------ 4 files changed, 141 insertions(+), 172 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/236a022f/libcloud/loadbalancer/drivers/rackspace.py ---------------------------------------------------------------------- diff --git a/libcloud/loadbalancer/drivers/rackspace.py b/libcloud/loadbalancer/drivers/rackspace.py index 656de3b..6ee086d 100644 --- a/libcloud/loadbalancer/drivers/rackspace.py +++ b/libcloud/loadbalancer/drivers/rackspace.py @@ -24,12 +24,27 @@ from libcloud.utils.py3 import httplib from libcloud.utils.misc import reverse_dict from libcloud.loadbalancer.base import LoadBalancer, Member, Driver, Algorithm from libcloud.loadbalancer.base import DEFAULT_ALGORITHM +from libcloud.compute.drivers.rackspace import RackspaceConnection from libcloud.common.types import LibcloudError 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.openstack import OpenStackDriverMixin +from libcloud.common.rackspace import AUTH_URL + +ENDPOINT_ARGS_MAP = { + 'dfw': {'service_type': 'rax:load-balancer', + 'name': 'cloudLoadBalancers', + 'region': 'DFW'}, + 'ord': {'service_type': 'rax:load-balancer', + 'name': 'cloudLoadBalancers', + 'region': 'ORD'}, + 'lon': {'service_type': 'rax:load-balancer', + 'name': 'cloudLoadBalancers', + 'region': 'LON'}, + 'syd': {'service_type': 'rax:load-balancer', + 'name': 'cloudLoadBalancers', + 'region': 'SYD'}, +} class RackspaceResponse(JsonResponse): @@ -222,20 +237,12 @@ class RackspaceAccessRule(object): return as_dict -class RackspaceConnection(OpenStackBaseConnection, PollingConnection): +class RackspaceConnection(RackspaceConnection, PollingConnection): responseCls = RackspaceResponse - auth_url = AUTH_URL_US + auth_url = AUTH_URL poll_interval = 2 timeout = 80 - def __init__(self, user_id, key, secure=True, ex_force_region='ord', - **kwargs): - super(RackspaceConnection, self).__init__(user_id, key, secure, - **kwargs) - self.api_version = 'v1.0' - self.accept_format = 'application/json' - self._ex_force_region = ex_force_region - def request(self, action, params=None, data='', headers=None, method='GET'): if not headers: @@ -264,39 +271,8 @@ class RackspaceConnection(OpenStackBaseConnection, PollingConnection): return state == 'ACTIVE' - def get_endpoint(self): - """ - FIXME: - Dirty, dirty hack. Loadbalancers so not show up in the auth 1.1 service - catalog, so we build it from the servers url. - """ - - if self._auth_version == "1.1": - ep = self.service_catalog.get_endpoint(name="cloudServers") - - return self._construct_loadbalancer_endpoint_from_servers_endpoint( - ep) - elif "2.0" in self._auth_version: - ep = self.service_catalog.get_endpoint(name="cloudServers", - service_type="compute", - region=None) - - return self._construct_loadbalancer_endpoint_from_servers_endpoint( - ep) - else: - raise LibcloudError( - "Auth version %s not supported" % self._auth_version) - - def _construct_loadbalancer_endpoint_from_servers_endpoint(self, ep): - if 'publicURL' in ep: - loadbalancer_prefix = "%s.loadbalancers" % self._ex_force_region - return ep['publicURL'].replace("servers", loadbalancer_prefix) - else: - raise LibcloudError('Could not find specified endpoint') - - -class RackspaceUKConnection(RackspaceConnection): - auth_url = AUTH_URL_UK + def encode_data(self, data): + return data class RackspaceLBDriver(Driver, OpenStackDriverMixin): @@ -332,16 +308,21 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin): _ALGORITHM_TO_VALUE_MAP = reverse_dict(_VALUE_TO_ALGORITHM_MAP) - def __init__(self, *args, **kwargs): - OpenStackDriverMixin.__init__(self, *args, **kwargs) - self._ex_force_region = kwargs.pop('ex_force_region', None) - super(RackspaceLBDriver, self).__init__(*args, **kwargs) + def __init__(self, key, secret=None, secure=True, host=None, port=None, + region='ord', **kwargs): + ex_force_region = kwargs.pop('ex_force_region', None) + if ex_force_region: + # For backward compatibility + region = ex_force_region + OpenStackDriverMixin.__init__(self, **kwargs) + super(RackspaceLBDriver, self).__init__(key=key, secret=secret, + secure=secure, host=host, + port=port, region=region) def _ex_connection_class_kwargs(self): + endpoint_args = ENDPOINT_ARGS_MAP[self.region] kwargs = self.openstack_connection_kwargs() - if self._ex_force_region: - kwargs['ex_force_region'] = self._ex_force_region - + kwargs['get_endpoint_args'] = endpoint_args return kwargs def list_protocols(self): @@ -417,6 +398,7 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin): balancer_attrs.update({ 'nodes': [self._member_attributes(member) for member in members], }) + #balancer_attrs['nodes'] = ['fu'] balancer_object = {"loadBalancer": balancer_attrs} resp = self.connection.request('/loadbalancers', @@ -1145,7 +1127,8 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin): :param balancer: Balancer to create the access rule for. :type balancer: :class:`LoadBalancer` - :param rules: List of :class:`RackspaceAccessRule` to add to the balancer. + :param rules: List of :class:`RackspaceAccessRule` to add to the + balancer. :type rules: ``list`` of :class:`RackspaceAccessRule` :return: The created access rules. @@ -1193,7 +1176,8 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin): :param balancer: Balancer to create the access rule for. :type balancer: :class:`LoadBalancer` - :param rules: List of :class:`RackspaceAccessRule` to add to the balancer. + :param rules: List of :class:`RackspaceAccessRule` to add to + the balancer. :type rules: ``list`` of :class:`RackspaceAccessRule` :return: Returns whether the create request was accepted. @@ -1258,8 +1242,8 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin): :param balancer: Balancer to remove the access rules from. :type balancer: :class:`LoadBalancer` - :param rules: List of :class:`RackspaceAccessRule` objects to remove from the - balancer. + :param rules: List of :class:`RackspaceAccessRule` objects to remove + from the balancer. :type rules: ``list`` of :class:`RackspaceAccessRule` :return: Updated Balancer. @@ -1282,8 +1266,8 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin): :param balancer: Balancer to remove the access rules from. :type balancer: :class:`LoadBalancer` - :param rules: List of :class:`RackspaceAccessRule` objects to remove from the - balancer. + :param rules: List of :class:`RackspaceAccessRule` objects to remove + from the balancer. :type rules: ``list`` of :class:`RackspaceAccessRule` :return: Returns whether the destroy request was accepted. @@ -1535,4 +1519,6 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin): class RackspaceUKLBDriver(RackspaceLBDriver): - connectionCls = RackspaceUKConnection + def __init__(self, *args, **kwargs): + kwargs['region'] = 'lon' + super(RackspaceUKLBDriver, self).__init__(*args, **kwargs) http://git-wip-us.apache.org/repos/asf/libcloud/blob/236a022f/libcloud/loadbalancer/providers.py ---------------------------------------------------------------------- diff --git a/libcloud/loadbalancer/providers.py b/libcloud/loadbalancer/providers.py index 54ce72b..f3d9dec 100644 --- a/libcloud/loadbalancer/providers.py +++ b/libcloud/loadbalancer/providers.py @@ -24,10 +24,8 @@ __all__ = [ ] DRIVERS = { - Provider.RACKSPACE_US: + Provider.RACKSPACE: ('libcloud.loadbalancer.drivers.rackspace', 'RackspaceLBDriver'), - Provider.RACKSPACE_UK: - ('libcloud.loadbalancer.drivers.rackspace', 'RackspaceUKLBDriver'), Provider.GOGRID: ('libcloud.loadbalancer.drivers.gogrid', 'GoGridLBDriver'), Provider.NINEFOLD: @@ -39,7 +37,13 @@ DRIVERS = { Provider.CLOUDSTACK: ('libcloud.loadbalancer.drivers.cloudstack', 'CloudStackLBDriver'), Provider.GCE: - ('libcloud.loadbalancer.drivers.gce', 'GCELBDriver') + ('libcloud.loadbalancer.drivers.gce', 'GCELBDriver'), + + # Deprecated + Provider.RACKSPACE_US: + ('libcloud.loadbalancer.drivers.rackspace', 'RackspaceLBDriver'), + Provider.RACKSPACE_UK: + ('libcloud.loadbalancer.drivers.rackspace', 'RackspaceUKLBDriver'), } http://git-wip-us.apache.org/repos/asf/libcloud/blob/236a022f/libcloud/loadbalancer/types.py ---------------------------------------------------------------------- diff --git a/libcloud/loadbalancer/types.py b/libcloud/loadbalancer/types.py index 133bf7e..6be53e5 100644 --- a/libcloud/loadbalancer/types.py +++ b/libcloud/loadbalancer/types.py @@ -32,15 +32,18 @@ class LibcloudLBImmutableError(LibcloudLBError): class Provider(object): - RACKSPACE_US = 'rackspace_us' + RACKSPACE = 'rackspace' GOGRID = 'gogrid' NINEFOLD = 'ninefold' - RACKSPACE_UK = 'rackspace_uk' BRIGHTBOX = 'brightbox' ELB = 'elb' CLOUDSTACK = 'cloudstack' GCE = 'gce' + # Deprecated + RACKSPACE_US = 'rackspace_us' + RACKSPACE_UK = 'rackspace_uk' + class State(object): """ http://git-wip-us.apache.org/repos/asf/libcloud/blob/236a022f/libcloud/test/loadbalancer/test_rackspace.py ---------------------------------------------------------------------- diff --git a/libcloud/test/loadbalancer/test_rackspace.py b/libcloud/test/loadbalancer/test_rackspace.py index 5708f06..5d66ad2 100644 --- a/libcloud/test/loadbalancer/test_rackspace.py +++ b/libcloud/test/loadbalancer/test_rackspace.py @@ -33,7 +33,8 @@ from libcloud.common.types import LibcloudError from libcloud.test import unittest from libcloud.test import MockHttpTestCase -from libcloud.test.file_fixtures import LoadBalancerFileFixtures, OpenStackFixtures +from libcloud.test.file_fixtures import LoadBalancerFileFixtures +from libcloud.test.file_fixtures import OpenStackFixtures class RackspaceLBTests(unittest.TestCase): @@ -48,7 +49,7 @@ class RackspaceLBTests(unittest.TestCase): self.driver.connection._populate_hosts_and_request_paths() def test_force_auth_token_kwargs(self): - base_url = 'https://ord.loadbalancer.api.rackspacecloud.com/v1.0/slug' + base_url = 'https://ord.loadbalancer.api.rackspacecloud.com/v1.0/11111' kwargs = { 'ex_force_auth_token': 'some-auth-token', 'ex_force_base_url': base_url @@ -58,7 +59,7 @@ class RackspaceLBTests(unittest.TestCase): self.assertEqual(kwargs['ex_force_auth_token'], driver.connection.auth_token) - self.assertEqual('/v1.0/slug', + self.assertEqual('/v1.0/11111', driver.connection.request_path) def test_force_auth_url_kwargs(self): @@ -906,20 +907,17 @@ class RackspaceLBMockHttp(MockHttpTestCase): fixtures = LoadBalancerFileFixtures('rackspace') auth_fixtures = OpenStackFixtures() - def _v1_0(self, method, url, body, headers): - headers = {'x-server-management-url': 'https://servers.api.rackspacecloud.com/v1.0/slug', - 'x-auth-token': 'FE011C19-CF86-4F87-BE5D-9229145D7A06', - 'x-cdn-management-url': 'https://cdn.clouddrive.com/v1/MossoCloudFS_FE011C19-CF86-4F87-BE5D-9229145D7A06', - 'x-storage-token': 'FE011C19-CF86-4F87-BE5D-9229145D7A06', - 'x-storage-url': 'https://storage4.clouddrive.com/v1/MossoCloudFS_FE011C19-CF86-4F87-BE5D-9229145D7A06'} - return (httplib.NO_CONTENT, "", headers, httplib.responses[httplib.NO_CONTENT]) + def _v2_0_tokens(self, method, url, body, headers): + body = self.fixtures.load('_v2_0__auth.json') + return (httplib.OK, body, headers, + httplib.responses[httplib.OK]) - def _v1_0_slug_loadbalancers_protocols(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_protocols(self, method, url, body, headers): body = self.fixtures.load('v1_slug_loadbalancers_protocols.json') return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED]) - def _v1_0_slug_loadbalancers_algorithms(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_algorithms(self, method, url, body, headers): if method == "GET": body = self.fixtures.load('v1_slug_loadbalancers_algorithms.json') return (httplib.ACCEPTED, body, {}, @@ -927,13 +925,14 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers(self, method, url, body, headers): + def _v1_0_11111_loadbalancers(self, method, url, body, headers): if method == "GET": body = self.fixtures.load('v1_slug_loadbalancers.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) elif method == "POST": - body_json = json.loads(body) - loadbalancer_json = body_json['loadBalancer'] + json_body = json.loads(body) + + loadbalancer_json = json_body['loadBalancer'] member_1_json, member_2_json = loadbalancer_json['nodes'] self.assertEqual(loadbalancer_json['protocol'], 'HTTP') @@ -960,24 +959,24 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_EX_MEMBER_ADDRESS(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_EX_MEMBER_ADDRESS(self, method, url, body, headers): body = self.fixtures.load('v1_slug_loadbalancers_nodeaddress.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) - def _v1_0_slug_loadbalancers_8155(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8155(self, method, url, body, headers): if method == "DELETE": return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8290(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8290(self, method, url, body, headers): if method == "GET": body = self.fixtures.load('v1_slug_loadbalancers_8290.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8290_nodes(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8290_nodes(self, method, url, body, headers): if method == "GET": body = self.fixtures.load('v1_slug_loadbalancers_8290_nodes.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) @@ -1002,14 +1001,14 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_8291(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8291(self, method, url, body, headers): if method == "GET": body = self.fixtures.load('v1_slug_loadbalancers_8291.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8291_nodes(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8291_nodes(self, method, url, body, headers): if method == "POST": json_body = json.loads(body) json_node = json_body['nodes'][0] @@ -1020,14 +1019,14 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_8292(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8292(self, method, url, body, headers): if method == "GET": body = self.fixtures.load('v1_slug_loadbalancers_8292.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8292_nodes(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8292_nodes(self, method, url, body, headers): if method == "POST": json_body = json.loads(body) json_node_1 = json_body['nodes'][0] @@ -1040,7 +1039,7 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_8290_nodes_30944(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8290_nodes_30944(self, method, url, body, headers): if method == "PUT": json_body = json.loads(body) self.assertEqual('ENABLED', json_body['condition']) @@ -1051,36 +1050,35 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_8290_healthmonitor(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8290_healthmonitor(self, method, url, body, headers): if method == "DELETE": return (httplib.ACCEPTED, '', {}, httplib.responses[httplib.ACCEPTED]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8290_connectionthrottle(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8290_connectionthrottle(self, method, url, body, headers): if method == 'DELETE': return (httplib.ACCEPTED, '', {}, httplib.responses[httplib.ACCEPTED]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8290_connectionlogging(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8290_connectionlogging(self, method, url, body, headers): # Connection Logging uses a PUT to disable connection logging if method == 'PUT': json_body = json.loads(body) - self.assertFalse(json_body["connectionLogging"]["enabled"]) return (httplib.ACCEPTED, '', {}, httplib.responses[httplib.ACCEPTED]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8290_sessionpersistence(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8290_sessionpersistence(self, method, url, body, headers): if method == 'DELETE': return (httplib.ACCEPTED, '', {}, httplib.responses[httplib.ACCEPTED]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8290_errorpage(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_8290_errorpage(self, method, url, body, headers): if method == 'GET': body = self.fixtures.load('v1_slug_loadbalancers_8290_errorpage.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) @@ -1093,70 +1091,70 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_18940(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_18940(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_18940_ex_public_ips.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_18945(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_18945(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_18945_ex_public_ips.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_18940_errorpage(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_18940_errorpage(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_18940_errorpage.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_18940_accesslist(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_18940_accesslist(self, method, url, body, headers): if method == 'GET': body = self.fixtures.load('v1_slug_loadbalancers_18940_accesslist.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_18941(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_18941(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_18941_ex_private_ips.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94692(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94692(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_94692_weighted_round_robin.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94693(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94693(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_94693_weighted_least_connections.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94694(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94694(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_94694_unknown_algorithm.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94695(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94695(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_94695_full_details.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94695_healthmonitor(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94695_healthmonitor(self, method, url, body, headers): if method == 'PUT': json_body = json.loads(body) @@ -1169,7 +1167,7 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94695_connectionthrottle(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94695_connectionthrottle(self, method, url, body, headers): if method == 'PUT': json_body = json.loads(body) @@ -1182,7 +1180,7 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94695_connectionlogging(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94695_connectionlogging(self, method, url, body, headers): if method == 'PUT': json_body = json.loads(body) @@ -1192,7 +1190,7 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94695_sessionpersistence(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94695_sessionpersistence(self, method, url, body, headers): if method == 'PUT': json_body = json.loads(body) @@ -1203,7 +1201,7 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94695_errorpage(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94695_errorpage(self, method, url, body, headers): if method == 'GET': body = self.fixtures.load("error_page_default.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) @@ -1212,14 +1210,14 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94696(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94696(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_94696_http_health_monitor.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94696_healthmonitor(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94696_healthmonitor(self, method, url, body, headers): if method == 'PUT': json_body = json.loads(body) @@ -1235,21 +1233,21 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94697(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94697(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_94697_https_health_monitor.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94698(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94698(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_94698_with_access_list.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94698_accesslist(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94698_accesslist(self, method, url, body, headers): if method == 'GET': body = self.fixtures.load('v1_slug_loadbalancers_94698_accesslist.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) @@ -1263,7 +1261,7 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94699(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94699(self, method, url, body, headers): if method == 'GET': # Use the same fixture for batch deletes as for single deletes body = self.fixtures.load('v1_slug_loadbalancers_94698_with_access_list.json') @@ -1275,7 +1273,7 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94699_accesslist(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94699_accesslist(self, method, url, body, headers): if method == 'DELETE': fixture = 'v1_slug_loadbalancers_94698_with_access_list.json' fixture_json = json.loads(self.fixtures.load(fixture)) @@ -1300,20 +1298,20 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_94698_accesslist_1007(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94698_accesslist_1007(self, method, url, body, headers): if method == 'DELETE': return (httplib.ACCEPTED, '', {}, httplib.responses[httplib.ACCEPTED]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94700(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94700(self, method, url, body, headers): if method == "GET": body = self.fixtures.load("v1_slug_loadbalancers_94700_http_health_monitor_no_body_regex.json") return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_94700_healthmonitor(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_94700_healthmonitor(self, method, url, body, headers): if method == 'PUT': json_body = json.loads(body) @@ -1329,10 +1327,11 @@ class RackspaceLBMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_0_slug_loadbalancers_3130(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_3130(self, method, url, body, headers): """ update_balancer(b, protocol='HTTPS'), then get_balancer('3130') """ if method == "PUT": - self.assertDictEqual(json.loads(body), {'protocol': 'HTTPS'}) + json_body = json.loads(body) + self.assertDictEqual(json_body, {'protocol': 'HTTPS'}) return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED]) elif method == "GET": response_body = json.loads(self.fixtures.load("v1_slug_loadbalancers_3xxx.json")) @@ -1341,10 +1340,11 @@ class RackspaceLBMockHttp(MockHttpTestCase): return (httplib.OK, json.dumps(response_body), {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_3131(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_3131(self, method, url, body, headers): """ update_balancer(b, port=443), then get_balancer('3131') """ if method == "PUT": - self.assertDictEqual(json.loads(body), {'port': 1337}) + json_body = json.loads(body) + self.assertDictEqual(json_body, {'port': 1337}) return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED]) elif method == "GET": response_body = json.loads(self.fixtures.load("v1_slug_loadbalancers_3xxx.json")) @@ -1353,10 +1353,11 @@ class RackspaceLBMockHttp(MockHttpTestCase): return (httplib.OK, json.dumps(response_body), {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_3132(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_3132(self, method, url, body, headers): """ update_balancer(b, name='new_lb_name'), then get_balancer('3132') """ if method == "PUT": - self.assertDictEqual(json.loads(body), {'name': 'new_lb_name'}) + json_body = json.loads(body) + self.assertDictEqual(json_body, {'name': 'new_lb_name'}) return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED]) elif method == "GET": response_body = json.loads(self.fixtures.load("v1_slug_loadbalancers_3xxx.json")) @@ -1365,10 +1366,11 @@ class RackspaceLBMockHttp(MockHttpTestCase): return (httplib.OK, json.dumps(response_body), {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_3133(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_3133(self, method, url, body, headers): """ update_balancer(b, algorithm='ROUND_ROBIN'), then get_balancer('3133') """ if method == "PUT": - self.assertDictEqual(json.loads(body), {'algorithm': 'ROUND_ROBIN'}) + json_body = json.loads(body) + self.assertDictEqual(json_body, {'algorithm': 'ROUND_ROBIN'}) return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED]) elif method == "GET": response_body = json.loads(self.fixtures.load("v1_slug_loadbalancers_3xxx.json")) @@ -1377,16 +1379,17 @@ class RackspaceLBMockHttp(MockHttpTestCase): return (httplib.OK, json.dumps(response_body), {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_3134(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_3134(self, method, url, body, headers): """ update.balancer(b, algorithm='HAVE_MERCY_ON_OUR_SERVERS') """ if method == "PUT": return (httplib.BAD_REQUEST, "", {}, httplib.responses[httplib.BAD_REQUEST]) raise NotImplementedError - def _v1_0_slug_loadbalancers_3135(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_3135(self, method, url, body, headers): """ update_balancer(b, protocol='IMAPv3'), then get_balancer('3135') """ if method == "PUT": - self.assertDictEqual(json.loads(body), {'protocol': 'IMAPv2'}) + json_body = json.loads(body) + self.assertDictEqual(json_body, {'protocol': 'IMAPv2'}) return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED]) elif method == "GET": response_body = json.loads(self.fixtures.load("v1_slug_loadbalancers_3xxx.json")) @@ -1395,10 +1398,11 @@ class RackspaceLBMockHttp(MockHttpTestCase): return (httplib.OK, json.dumps(response_body), {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_3136(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_3136(self, method, url, body, headers): """ update_balancer(b, protocol='IMAPv3'), then get_balancer('3136') """ if method == "PUT": - self.assertDictEqual(json.loads(body), {'protocol': 'IMAPv3'}) + json_body = json.loads(body) + self.assertDictEqual(json_body, {'protocol': 'IMAPv3'}) return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED]) elif method == "GET": response_body = json.loads(self.fixtures.load("v1_slug_loadbalancers_3xxx.json")) @@ -1407,10 +1411,11 @@ class RackspaceLBMockHttp(MockHttpTestCase): return (httplib.OK, json.dumps(response_body), {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_3137(self, method, url, body, headers): + def _v1_0_11111_loadbalancers_3137(self, method, url, body, headers): """ update_balancer(b, protocol='IMAPv3'), then get_balancer('3137') """ if method == "PUT": - self.assertDictEqual(json.loads(body), {'protocol': 'IMAPv4'}) + json_body = json.loads(body) + self.assertDictEqual(json_body, {'protocol': 'IMAPv4'}) return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED]) elif method == "GET": response_body = json.loads(self.fixtures.load("v1_slug_loadbalancers_3xxx.json")) @@ -1419,46 +1424,30 @@ class RackspaceLBMockHttp(MockHttpTestCase): return (httplib.OK, json.dumps(response_body), {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_0_slug_loadbalancers_8290_usage_current(self, method, url, body, + def _v1_0_11111_loadbalancers_8290_usage_current(self, method, url, body, headers): if method == 'GET': body = self.fixtures.load('v1_0_slug_loadbalancers_8290_usage_current.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) raise NotImplementedError - def _v1_1_auth(self, method, url, body, headers): - headers = {'content-type': 'application/json; charset=UTF-8'} - body = self.auth_fixtures.load('_v1_1__auth.json') - return (httplib.OK, body, headers, httplib.responses[httplib.OK]) - - def _v2_0_tokens(self, method, url, body, headers): - body = self.fixtures.load('auth_2_0.json') - headers = { - 'content-type': 'application/json' - } - return (httplib.OK, body, headers, - httplib.responses[httplib.OK]) - class RackspaceLBWithVIPMockHttp(MockHttpTestCase): fixtures = LoadBalancerFileFixtures('rackspace') auth_fixtures = OpenStackFixtures() - def _v1_0(self, method, url, body, headers): - headers = {'x-server-management-url': 'https://servers.api.rackspacecloud.com/v1.0/slug', - 'x-auth-token': 'FE011C19-CF86-4F87-BE5D-9229145D7A06', - 'x-cdn-management-url': 'https://cdn.clouddrive.com/v1/MossoCloudFS_FE011C19-CF86-4F87-BE5D-9229145D7A06', - 'x-storage-token': 'FE011C19-CF86-4F87-BE5D-9229145D7A06', - 'x-storage-url': 'https://storage4.clouddrive.com/v1/MossoCloudFS_FE011C19-CF86-4F87-BE5D-9229145D7A06'} - return (httplib.NO_CONTENT, "", headers, httplib.responses[httplib.NO_CONTENT]) + def _v2_0_tokens(self, method, url, body, headers): + body = self.fixtures.load('_v2_0__auth.json') + return (httplib.OK, body, headers, + httplib.responses[httplib.OK]) - def _v1_0_slug_loadbalancers(self, method, url, body, headers): + def _v1_0_11111_loadbalancers(self, method, url, body, headers): if method == "GET": body = self.fixtures.load('v1_slug_loadbalancers.json') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) elif method == "POST": - body_json = json.loads(body) - loadbalancer_json = body_json['loadBalancer'] + json_body = json.loads(body) + loadbalancer_json = json_body['loadBalancer'] self.assertEqual(loadbalancer_json['virtualIps'][0]['id'], '12af') @@ -1468,18 +1457,5 @@ class RackspaceLBWithVIPMockHttp(MockHttpTestCase): raise NotImplementedError - def _v1_1_auth(self, method, url, body, headers): - headers = {'content-type': 'application/json; charset=UTF-8'} - body = self.auth_fixtures.load('_v1_1__auth.json') - return (httplib.OK, body, headers, httplib.responses[httplib.OK]) - - def _v2_0_tokens(self, method, url, body, headers): - body = self.fixtures.load('auth_2_0.json') - headers = { - 'content-type': 'application/json' - } - return (httplib.OK, body, headers, - httplib.responses[httplib.OK]) - if __name__ == "__main__": sys.exit(unittest.main())
