From ba854a5acd3938e13824da8ac5a439eb2a14b71b Mon Sep 17 00:00:00 2001 From: Morgan Fainberg Date: Fri, 13 Jul 2018 20:34:19 -0400 Subject: [PATCH] Add correct self-link The self-link was missing the resource id, properly add the id to the self-link now. Change-Id: I82c59fc3a02e4182147ec8090d54cfe82b8d0c61 Partial-Bug: #1776504 --- keystone/server/flask/common.py | 2 +- keystone/tests/unit/server/test_keystone_flask.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keystone/server/flask/common.py b/keystone/server/flask/common.py index 22d807d5b1..299523e725 100644 --- a/keystone/server/flask/common.py +++ b/keystone/server/flask/common.py @@ -528,7 +528,7 @@ class ResourceBase(flask_restful.Resource): @classmethod def _add_self_referential_link(cls, ref): - self_link = '/'.join([base_url(), 'v3', cls.collection_key]) + self_link = '/'.join([base_url(), 'v3', cls.collection_key, ref['id']]) ref.setdefault('links', {})['self'] = self_link @classmethod diff --git a/keystone/tests/unit/server/test_keystone_flask.py b/keystone/tests/unit/server/test_keystone_flask.py index 70589393bc..6260e53a9b 100644 --- a/keystone/tests/unit/server/test_keystone_flask.py +++ b/keystone/tests/unit/server/test_keystone_flask.py @@ -77,6 +77,8 @@ class _TestResourceWithCollectionInfo(flask_common.ResourceBase): raise exception.NotFound(target=argument_id) ref = flask.request.get_json(force=True) self._require_matching_id(ref) + # Maintain the ref id + ref['id'] = argument_id self._storage_dict[argument_id] = ref return '', 204