summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keystone/catalog/controllers.py11
-rw-r--r--tests/test_v3.py4
2 files changed, 15 insertions, 0 deletions
diff --git a/keystone/catalog/controllers.py b/keystone/catalog/controllers.py
index 00e382aa..0269a169 100644
--- a/keystone/catalog/controllers.py
+++ b/keystone/catalog/controllers.py
@@ -158,6 +158,17 @@ class EndpointV3(controller.V3Controller):
collection_name = 'endpoints'
member_name = 'endpoint'
+ @classmethod
+ def filter_endpoint(cls, ref):
+ if 'legacy_endpoint_id' in ref:
+ ref.pop('legacy_endpoint_id')
+ return ref
+
+ @classmethod
+ def wrap_member(cls, context, ref):
+ ref = cls.filter_endpoint(ref)
+ return super(EndpointV3, cls).wrap_member(context, ref)
+
@controller.protected
def create_endpoint(self, context, endpoint):
ref = self._assign_unique_id(self._normalize_dict(endpoint))
diff --git a/tests/test_v3.py b/tests/test_v3.py
index 26d46be7..8c6b7d17 100644
--- a/tests/test_v3.py
+++ b/tests/test_v3.py
@@ -518,6 +518,10 @@ class RestfulTestCase(test_content_types.RestfulTestCase):
def assertValidEndpoint(self, entity, ref=None):
self.assertIsNotNone(entity.get('interface'))
self.assertIsNotNone(entity.get('service_id'))
+
+ # this is intended to be an unexposed implementation detail
+ self.assertNotIn('legacy_endpoint_id', entity)
+
if ref:
self.assertEqual(ref['interface'], entity['interface'])
self.assertEqual(ref['service_id'], entity['service_id'])