summaryrefslogtreecommitdiffstats
path: root/keystone/identity/controllers.py
diff options
context:
space:
mode:
authorxingzhou <xingzhou@cn.ibm.com>2013-07-31 11:25:53 +0800
committerxingzhou <xingzhou@cn.ibm.com>2013-08-01 13:21:12 +0800
commit05c8c487b549041be44275af6c90998d9fbf565e (patch)
tree5fb7d73465ea842383e5086069b8e04f373edeff /keystone/identity/controllers.py
parentf1ac78c8992432e5f6d5c29f24f202870cb14a97 (diff)
downloadkeystone-05c8c487b549041be44275af6c90998d9fbf565e.tar.gz
keystone-05c8c487b549041be44275af6c90998d9fbf565e.tar.xz
keystone-05c8c487b549041be44275af6c90998d9fbf565e.zip
V3 API need to check mandatory field when creating resources
When creating items like project, role through V3 API, if name field is missing, the server will return 500 internal error or 409 conflict error, shall return 400 bad request error instead Change-Id: I9deddcd4cf801306c16555b59bba7fdfab6556a7 Fixes: Bug 1136342
Diffstat (limited to 'keystone/identity/controllers.py')
-rw-r--r--keystone/identity/controllers.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/keystone/identity/controllers.py b/keystone/identity/controllers.py
index 12fb8145..7ca1f8bf 100644
--- a/keystone/identity/controllers.py
+++ b/keystone/identity/controllers.py
@@ -403,6 +403,8 @@ class DomainV3(controller.V3Controller):
@controller.protected
def create_domain(self, context, domain):
+ self._require_attribute(domain, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(domain))
ref = self.identity_api.create_domain(ref['id'], ref)
return DomainV3.wrap_member(context, ref)
@@ -544,6 +546,8 @@ class ProjectV3(controller.V3Controller):
@controller.protected
def create_project(self, context, project):
+ self._require_attribute(project, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(project))
ref = self._normalize_domain_id(context, ref)
ref = self.identity_api.create_project(ref['id'], ref)
@@ -592,6 +596,8 @@ class UserV3(controller.V3Controller):
@controller.protected
def create_user(self, context, user):
+ self._require_attribute(user, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(user))
ref = self._normalize_domain_id(context, ref)
ref = self.identity_api.create_user(ref['id'], ref)
@@ -663,6 +669,8 @@ class GroupV3(controller.V3Controller):
@controller.protected
def create_group(self, context, group):
+ self._require_attribute(group, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(group))
ref = self._normalize_domain_id(context, ref)
ref = self.identity_api.create_group(ref['id'], ref)
@@ -713,6 +721,8 @@ class RoleV3(controller.V3Controller):
@controller.protected
def create_role(self, context, role):
+ self._require_attribute(role, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(role))
ref = self.identity_api.create_role(ref['id'], ref)
return RoleV3.wrap_member(context, ref)