Add service_name to URL discovery
The catalog was recently enhanced to allow filtering based on the service_name so this should be passed on to endpoint filtering. Change-Id: If08fcdba9719f6aacdcbbb6b951117f4f544f9ca
This commit is contained in:
		| @@ -44,6 +44,7 @@ class BaseAuthPlugin(object): | ||||
|         will be generated by the clients and should be used by plugins: | ||||
|  | ||||
|         - ``service_type``: what sort of service is required. | ||||
|         - ``service_name``: the name of the service in the catalog. | ||||
|         - ``interface``: what visibility the endpoint should have. | ||||
|         - ``region_name``: the region the endpoint exists in. | ||||
|  | ||||
|   | ||||
| @@ -92,7 +92,7 @@ class BaseIdentityPlugin(base.BaseAuthPlugin): | ||||
|         return self.auth_ref | ||||
|  | ||||
|     def get_endpoint(self, session, service_type=None, interface=None, | ||||
|                      region_name=None, **kwargs): | ||||
|                      region_name=None, service_name=None, **kwargs): | ||||
|         """Return a valid endpoint for a service. | ||||
|  | ||||
|         If a valid token is not present then a new one will be fetched using | ||||
| @@ -106,6 +106,8 @@ class BaseIdentityPlugin(base.BaseAuthPlugin): | ||||
|                                  Defaults to `public`. | ||||
|         :param string region_name: The region the endpoint should exist in. | ||||
|                                    (optional) | ||||
|         :param string service_name: The name of the service in the catalog. | ||||
|                                    (optional) | ||||
|  | ||||
|         :raises HttpError: An error from an invalid HTTP response. | ||||
|  | ||||
| @@ -123,7 +125,8 @@ class BaseIdentityPlugin(base.BaseAuthPlugin): | ||||
|         service_catalog = self.get_access(session).service_catalog | ||||
|         return service_catalog.url_for(service_type=service_type, | ||||
|                                        endpoint_type=interface, | ||||
|                                        region_name=region_name) | ||||
|                                        region_name=region_name, | ||||
|                                        service_name=service_name) | ||||
|  | ||||
|     def invalidate(self): | ||||
|         self.auth_ref = None | ||||
|   | ||||
| @@ -175,7 +175,9 @@ class V2IdentityPlugin(utils.TestCase): | ||||
|         self.assertEqual(httpretty.last_request().path, path) | ||||
|  | ||||
|     def test_service_url(self): | ||||
|         endpoint_filter = {'service_type': 'compute', 'interface': 'admin'} | ||||
|         endpoint_filter = {'service_type': 'compute', | ||||
|                            'interface': 'admin', | ||||
|                            'service_name': 'nova'} | ||||
|         self._do_service_url_test('http://nova/novapi/admin', endpoint_filter) | ||||
|  | ||||
|     def test_service_url_defaults_to_public(self): | ||||
|   | ||||
| @@ -61,7 +61,8 @@ class V3IdentityPlugin(utils.TestCase): | ||||
|             "region": "RegionOne", | ||||
|             "interface": "admin" | ||||
|         }], | ||||
|         "type": "compute" | ||||
|         "type": "compute", | ||||
|         "name": "nova", | ||||
|     }, { | ||||
|         "endpoints": [{ | ||||
|             "url": "http://glance/glanceapi/public", | ||||
| @@ -328,7 +329,9 @@ class V3IdentityPlugin(utils.TestCase): | ||||
|         self.assertEqual(httpretty.last_request().path, path) | ||||
|  | ||||
|     def test_service_url(self): | ||||
|         endpoint_filter = {'service_type': 'compute', 'interface': 'admin'} | ||||
|         endpoint_filter = {'service_type': 'compute', | ||||
|                            'interface': 'admin', | ||||
|                            'service_name': 'nova'} | ||||
|         self._do_service_url_test('http://nova/novapi/admin', endpoint_filter) | ||||
|  | ||||
|     def test_service_url_defaults_to_public(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jamie Lennox
					Jamie Lennox