From 8c189da4aaff9821f1436cfa400b639d3617a3d9 Mon Sep 17 00:00:00 2001 From: Frederic Date: Wed, 26 Aug 2020 10:37:39 +0200 Subject: [PATCH] Fix merging functional requirement params Fixes #138 --- stackl/core/core/handler/stack_handler.py | 25 ++++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/stackl/core/core/handler/stack_handler.py b/stackl/core/core/handler/stack_handler.py index 28999bbe..9e204d09 100644 --- a/stackl/core/core/handler/stack_handler.py +++ b/stackl/core/core/handler/stack_handler.py @@ -65,6 +65,8 @@ def _create_stack_instance( infra_target].cloud_provider merged_secrets = {**secrets_of_target, **svc_doc.secrets} + + fr_params = {} for fr in svc_doc.functional_requirements: stack_instance_status = StackInstanceStatus( functional_requirement=fr, @@ -75,12 +77,13 @@ def _create_stack_instance( stack_instance_statuses.append(stack_instance_status) fr_doc = self.document_manager.get_functional_requirement( fr) - merged_capabilities = { - **capabilities_of_target, - **fr_doc.params, - **svc_doc.params - } + fr_params = {**fr_params, **fr_doc.params} merged_secrets = {**merged_secrets, **fr_doc.secrets} + merged_capabilities = { + **capabilities_of_target, + **fr_params, + **svc_doc.params + } service_definition.provisioning_parameters = { **merged_capabilities, **service_definition.opa_outputs, @@ -136,6 +139,7 @@ def _update_stack_instance(self, stack_instance: StackInstance, item): service_definition.infrastructure_target].agent merged_secrets = {**secrets_of_target, **svc_doc.secrets} + fr_params = {} for fr in svc_doc.functional_requirements: if not item.disable_invocation: stack_instance_status = StackInstanceStatus( @@ -148,12 +152,13 @@ def _update_stack_instance(self, stack_instance: StackInstance, item): stack_instance_statuses.append(stack_instance_status) fr_doc = self.document_manager.get_functional_requirement( fr) - merged_capabilities = { - **capabilities_of_target, - **fr_doc.params, - **svc_doc.params - } + fr_params = {**fr_params, **fr_doc.params} merged_secrets = {**merged_secrets, **fr_doc.secrets} + merged_capabilities = { + **capabilities_of_target, + **fr_params, + **svc_doc.params + } service_definition.provisioning_parameters = { **merged_capabilities, **opa_outputs,