Auto set first policy as default policy

Change-Id: I6bd5a8f9718ac9a282c3bd409ae261072a88b8b7
This commit is contained in:
lvdongbing 2016-08-08 22:57:45 -04:00
parent 3223e42c21
commit 132891b988
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')