From 3a71d9510b8123d87f5881917a01bb830530f517 Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Thu, 28 Aug 2014 19:36:29 -0500 Subject: [PATCH] JSON Home data is required For the initial implementation, the JSON Home data was optional. Now that JSON Home is implemented, JSON Home data is required. bp json-home Change-Id: I5af70401fba892166cd107264e9d5eafe6bcbd03 --- keystone/common/router.py | 41 ++++++++++++++++----------------------- keystone/common/wsgi.py | 19 +++++++++--------- 2 files changed, 26 insertions(+), 34 deletions(-) diff --git a/keystone/common/router.py b/keystone/common/router.py index 11a2a901d4..ce4e834d57 100644 --- a/keystone/common/router.py +++ b/keystone/common/router.py @@ -59,29 +59,22 @@ class Router(wsgi.ComposableRouter): action='delete_%s' % self.key, conditions=dict(method=['DELETE'])) - if self._resource_descriptions is not None: - # Add the collection resource and entity resource to the resource - # descriptions. + # Add the collection resource and entity resource to the resource + # descriptions. - collection_rel = json_home.build_v3_resource_relation( - self.collection_key) - self._resource_descriptions.append( - (collection_rel, - { - 'href': collection_path, - } - )) + collection_rel = json_home.build_v3_resource_relation( + self.collection_key) + rel_data = {'href': collection_path, } + self._resource_descriptions.append((collection_rel, rel_data)) - if self._is_entity_implemented: - entity_rel = json_home.build_v3_resource_relation(self.key) - id_str = '%s_id' % self.key - id_param_rel = json_home.build_v3_parameter_relation(id_str) - self._resource_descriptions.append( - (entity_rel, - { - 'href-template': entity_path, - 'href-vars': { - id_str: id_param_rel, - }, - } - )) + if self._is_entity_implemented: + entity_rel = json_home.build_v3_resource_relation(self.key) + id_str = '%s_id' % self.key + id_param_rel = json_home.build_v3_parameter_relation(id_str) + entity_rel_data = { + 'href-template': entity_path, + 'href-vars': { + id_str: id_param_rel, + }, + } + self._resource_descriptions.append((entity_rel, entity_rel_data)) diff --git a/keystone/common/wsgi.py b/keystone/common/wsgi.py index c2542ec857..ac5462713c 100644 --- a/keystone/common/wsgi.py +++ b/keystone/common/wsgi.py @@ -630,10 +630,10 @@ class RoutersBase(object): Use self._add_resource() to map routes for a resource. """ - def _add_resource(self, mapper, controller, path, + def _add_resource(self, mapper, controller, path, rel, get_action=None, head_action=None, get_head_action=None, put_action=None, post_action=None, patch_action=None, - delete_action=None, get_post_action=None, rel=None, + delete_action=None, get_post_action=None, path_vars=None): if get_head_action: mapper.connect(path, controller=controller, action=get_head_action, @@ -660,16 +660,15 @@ class RoutersBase(object): mapper.connect(path, controller=controller, action=get_post_action, conditions=dict(method=['GET', 'POST'])) - if rel: - resource_data = dict() + resource_data = dict() - if path_vars: - resource_data['href-template'] = path - resource_data['href-vars'] = path_vars - else: - resource_data['href'] = path + if path_vars: + resource_data['href-template'] = path + resource_data['href-vars'] = path_vars + else: + resource_data['href'] = path - self.v3_resources.append((rel, resource_data)) + self.v3_resources.append((rel, resource_data)) class V3ExtensionRouter(ExtensionRouter, RoutersBase):