Merge "Auto set first policy as default policy"

This commit is contained in:
Jenkins 2016-08-09 03:28:50 +00:00 committed by Gerrit Code Review
commit a6fff8d084
3 changed files with 12 additions and 4 deletions

View File

@ -69,10 +69,14 @@ class CreateResourceTask(task.Task):
def execute(self, context, resource, **kwargs):
user = user_mod.User.load(context, user_id=resource.user_id)
pid = user.policy_id
try:
policy = policy_mod.Policy.load(context, policy_id=user.policy_id)
except exception.PolicyNotFound:
policy = policy_mod.Policy.load_default(context)
if pid:
policy = policy_mod.Policy.load(context, policy_id=pid)
else:
policy = policy_mod.Policy.load_default(context)
except exception.PolicyNotFound as e:
LOG.error(_LE("Error when find policy: %s"), e)
if policy is not None:
rule = policy.find_rule(context, resource.resource_type)

View File

@ -555,6 +555,10 @@ class EngineService(service.Service):
'metadata': metadata,
}
policy = policy_mod.Policy(name, **kwargs)
if not policy.is_default:
default_policy = policy_mod.Policy.load_default(cnxt)
if default_policy is None:
policy.is_default = True
policy.store(cnxt)
LOG.info(_LI("Successfully create policy (%s)."), policy.id)
return policy.to_dict()

View File

@ -14,4 +14,4 @@
import pbr.version
version_info = pbr.version.VersionInfo('nova')
version_info = pbr.version.VersionInfo('bilean')