From 9d5dd3bd782fa18c9af97aa099ede5ff983741da Mon Sep 17 00:00:00 2001 From: ramishra Date: Wed, 3 Feb 2021 13:20:19 +0530 Subject: [PATCH] Use extra_vars_file for json stack_data Ansible runner does not seralize nested dicts correctly and also raises argument list too long error. Change-Id: I758b5d51d4fa3ea921e032b51f06d2486f137a45 Closes-Bug: #1914369 --- .../tests/workflows/test_parameters.py | 21 +++++++++++-------- tripleoclient/workflows/parameters.py | 8 ++++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/tripleoclient/tests/workflows/test_parameters.py b/tripleoclient/tests/workflows/test_parameters.py index 5c810013b..b19bdb298 100644 --- a/tripleoclient/tests/workflows/test_parameters.py +++ b/tripleoclient/tests/workflows/test_parameters.py @@ -107,10 +107,11 @@ class TestParameterWorkflows(utils.TestCommand): workdir=mock.ANY, playbook_dir=mock.ANY, verbosity=0, + extra_vars_file={ + 'tripleo_get_flatten_params': { + 'stack_data': mock.ANY}, + 'tripleo_role_list': {'roles': mock.ANY}}, extra_vars={'num_phy_cores_per_numa_node_for_pmd': 2, - 'tripleo_get_flatten_params': { - 'stack_data': mock.ANY}, - 'tripleo_role_list': mock.ANY, 'derived_environment_path': mock.ANY} ) ] @@ -153,10 +154,11 @@ class TestParameterWorkflows(utils.TestCommand): workdir=mock.ANY, playbook_dir=mock.ANY, verbosity=0, + extra_vars_file={ + 'tripleo_get_flatten_params': { + 'stack_data': mock.ANY}, + 'tripleo_role_list': {'roles': mock.ANY}}, extra_vars={'num_phy_cores_per_numa_node_for_pmd': 2, - 'tripleo_get_flatten_params': { - 'stack_data': mock.ANY}, - 'tripleo_role_list': mock.ANY, 'derived_environment_path': mock.ANY} ), mock.call( @@ -165,10 +167,11 @@ class TestParameterWorkflows(utils.TestCommand): workdir=mock.ANY, playbook_dir='/playbook/dir-1', verbosity=0, + extra_vars_file={ + 'tripleo_get_flatten_params': { + 'stack_data': mock.ANY}, + 'tripleo_role_list': {'roles': mock.ANY}}, extra_vars={'some_opt': 0, - 'tripleo_get_flatten_params': { - 'stack_data': mock.ANY}, - 'tripleo_role_list': mock.ANY, 'derived_environment_path': mock.ANY} ) ] diff --git a/tripleoclient/workflows/parameters.py b/tripleoclient/workflows/parameters.py index abde133b3..f1f524f4c 100644 --- a/tripleoclient/workflows/parameters.py +++ b/tripleoclient/workflows/parameters.py @@ -61,8 +61,9 @@ def invoke_plan_env_workflows(clients, stack_name, plan_env_file, pb_vars ) ) - pb_vars['tripleo_get_flatten_params'] = {'stack_data': stack_data} - pb_vars['tripleo_role_list'] = role_list + pb_vars_file = {'tripleo_get_flatten_params': { + 'stack_data': stack_data}, 'tripleo_role_list': { + 'roles': role_list}} pb_vars['derived_environment_path'] = derived_environment_path playbook_dir = os.path.dirname(pb) if not playbook_dir: @@ -74,7 +75,8 @@ def invoke_plan_env_workflows(clients, stack_name, plan_env_file, workdir=tmp, playbook_dir=playbook_dir, verbosity=verbosity, - extra_vars=pb_vars + extra_vars=pb_vars, + extra_vars_file=pb_vars_file )