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 db5079c..c47e657 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')