From 132891b9887d99766702e34d71886aa47b3df295 Mon Sep 17 00:00:00 2001 From: lvdongbing Date: Mon, 8 Aug 2016 22:57:45 -0400 Subject: [PATCH] Auto set first policy as default policy Change-Id: I6bd5a8f9718ac9a282c3bd409ae261072a88b8b7 --- bilean/engine/flows/flow.py | 10 +++++++--- bilean/engine/service.py | 4 ++++ bilean/version.py | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/bilean/engine/flows/flow.py b/bilean/engine/flows/flow.py index b0e4c96..c5f25ce 100644 --- a/bilean/engine/flows/flow.py +++ b/bilean/engine/flows/flow.py @@ -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) diff --git a/bilean/engine/service.py b/bilean/engine/service.py index 8da41c7..9466005 100644 --- a/bilean/engine/service.py +++ b/bilean/engine/service.py @@ -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() diff --git a/bilean/version.py b/bilean/version.py index 3dd873e..7ad12b1 100644 --- a/bilean/version.py +++ b/bilean/version.py @@ -14,4 +14,4 @@ import pbr.version -version_info = pbr.version.VersionInfo('nova') +version_info = pbr.version.VersionInfo('bilean')