aboutsummaryrefslogtreecommitdiffstats
path: root/keystone-moon/keystone/common/json_home.py
diff options
context:
space:
mode:
authorWuKong <rebirthmonkey@gmail.com>2015-06-30 18:47:29 +0200
committerWuKong <rebirthmonkey@gmail.com>2015-06-30 18:47:29 +0200
commitb8c756ecdd7cced1db4300935484e8c83701c82e (patch)
tree87e51107d82b217ede145de9d9d59e2100725bd7 /keystone-moon/keystone/common/json_home.py
parentc304c773bae68fb854ed9eab8fb35c4ef17cf136 (diff)
migrate moon code from github to opnfv
Change-Id: Ice53e368fd1114d56a75271aa9f2e598e3eba604 Signed-off-by: WuKong <rebirthmonkey@gmail.com>
Diffstat (limited to 'keystone-moon/keystone/common/json_home.py')
-rw-r--r--keystone-moon/keystone/common/json_home.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/keystone-moon/keystone/common/json_home.py b/keystone-moon/keystone/common/json_home.py
new file mode 100644
index 00000000..215d596a
--- /dev/null
+++ b/keystone-moon/keystone/common/json_home.py
@@ -0,0 +1,76 @@
+# Copyright 2014 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+
+import six
+
+
+def build_v3_resource_relation(resource_name):
+ return ('http://docs.openstack.org/api/openstack-identity/3/rel/%s' %
+ resource_name)
+
+
+def build_v3_extension_resource_relation(extension_name, extension_version,
+ resource_name):
+ return (
+ 'http://docs.openstack.org/api/openstack-identity/3/ext/%s/%s/rel/%s' %
+ (extension_name, extension_version, resource_name))
+
+
+def build_v3_parameter_relation(parameter_name):
+ return ('http://docs.openstack.org/api/openstack-identity/3/param/%s' %
+ parameter_name)
+
+
+def build_v3_extension_parameter_relation(extension_name, extension_version,
+ parameter_name):
+ return (
+ 'http://docs.openstack.org/api/openstack-identity/3/ext/%s/%s/param/'
+ '%s' % (extension_name, extension_version, parameter_name))
+
+
+class Parameters(object):
+ """Relationships for Common parameters."""
+
+ DOMAIN_ID = build_v3_parameter_relation('domain_id')
+ ENDPOINT_ID = build_v3_parameter_relation('endpoint_id')
+ GROUP_ID = build_v3_parameter_relation('group_id')
+ POLICY_ID = build_v3_parameter_relation('policy_id')
+ PROJECT_ID = build_v3_parameter_relation('project_id')
+ REGION_ID = build_v3_parameter_relation('region_id')
+ ROLE_ID = build_v3_parameter_relation('role_id')
+ SERVICE_ID = build_v3_parameter_relation('service_id')
+ USER_ID = build_v3_parameter_relation('user_id')
+
+
+class Status(object):
+ """Status values supported."""
+
+ DEPRECATED = 'deprecated'
+ EXPERIMENTAL = 'experimental'
+ STABLE = 'stable'
+
+ @classmethod
+ def is_supported(cls, status):
+ return status in [cls.DEPRECATED, cls.EXPERIMENTAL, cls.STABLE]
+
+
+def translate_urls(json_home, new_prefix):
+ """Given a JSON Home document, sticks new_prefix on each of the urls."""
+
+ for dummy_rel, resource in six.iteritems(json_home['resources']):
+ if 'href' in resource:
+ resource['href'] = new_prefix + resource['href']
+ elif 'href-template' in resource:
+ resource['href-template'] = new_prefix + resource['href-template']