Merge "Add required checks in all cases of policy create API"

This commit is contained in:
Zuul 2019-02-07 23:59:07 +00:00 committed by Gerrit Code Review
commit 3dc1c8a8db
1 changed files with 8 additions and 5 deletions

View File

@ -88,6 +88,11 @@ class PolicyModel(base.APIModel):
:raises BadRequest: library_policy parameter and request body both
present
"""
if id_ is not None:
(num, desc) = error_codes.get('policy_id_must_not_be_provided')
raise webservice.DataModelException(num, desc)
# case 1: parameter gives library policy UUID
if 'library_policy' in params:
if item:
@ -112,6 +117,7 @@ class PolicyModel(base.APIModel):
# case 2: item contains rules
if 'rules' in item:
self._check_create_policy_item(item)
try:
library_service.validate_policy_item(item)
# Note(thread-safety): blocking call
@ -125,7 +131,7 @@ class PolicyModel(base.APIModel):
return (policy_metadata['id'], policy_metadata)
# case 3: item does not contain rules
self._check_create_policy(id_, item)
self._check_create_policy_item(item)
name = item['name']
try:
# Note(thread-safety): blocking call
@ -140,10 +146,7 @@ class PolicyModel(base.APIModel):
return (policy_metadata['id'], policy_metadata)
def _check_create_policy(self, id_, item):
if id_ is not None:
(num, desc) = error_codes.get('policy_id_must_not_be_provided')
raise webservice.DataModelException(num, desc)
def _check_create_policy_item(self, item):
if 'name' not in item:
(num, desc) = error_codes.get('policy_name_must_be_provided')
raise webservice.DataModelException(num, desc)