From bced646931dc5f44908201818ee1d108ef4dcc5a Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Tue, 23 Jun 2020 21:51:46 +0900 Subject: [PATCH] Eliminate the usage of kwargs in update_deployment_plan This patch makes sure that explicit arguments are defined for the update_deployment_plan method. With this change, update_deployment_plan should raise TypeError when the method is called with wrong arguments, and help us with detecting interface mismatch more easily, compared to KeyError it currently raises. This patch also removes validate_stack parameter from update deployment plan, which is always False. Change-Id: I7dd35e64a32b99dd018ef8835d51ebb26fce8051 --- .../tests/workflows/test_plan_management.py | 12 +++------ tripleoclient/v1/overcloud_deploy.py | 1 - tripleoclient/workflows/plan_management.py | 27 ++++++++++++++----- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/tripleoclient/tests/workflows/test_plan_management.py b/tripleoclient/tests/workflows/test_plan_management.py index b300ab37f..bac53fc75 100644 --- a/tripleoclient/tests/workflows/test_plan_management.py +++ b/tripleoclient/tests/workflows/test_plan_management.py @@ -241,8 +241,7 @@ class TestPlanUpdateWorkflows(base.TestCommand): self.app.client_manager, 'test-overcloud', '/tht-root/', - keep_env=True, - validate_stack=False) + keep_env=True) mock_empty_container.assert_called_once_with( self.object_store, 'test-overcloud') @@ -274,7 +273,6 @@ class TestPlanUpdateWorkflows(base.TestCommand): extra_vars={ "container": "test-overcloud", "generate_passwords": True, - "validate": False }, verbosity=1, ) @@ -290,8 +288,7 @@ class TestPlanUpdateWorkflows(base.TestCommand): plan_management.update_plan_from_templates( self.app.client_manager, 'test-overcloud', - '/tht-root/', - validate_stack=False) + '/tht-root/') mock_empty_container.assert_called_once_with( self.object_store, 'test-overcloud') @@ -311,7 +308,6 @@ class TestPlanUpdateWorkflows(base.TestCommand): extra_vars={ "container": "test-overcloud", "generate_passwords": True, - "validate": False }, verbosity=1, ) @@ -333,8 +329,7 @@ class TestPlanUpdateWorkflows(base.TestCommand): plan_management.update_plan_from_templates( self.app.client_manager, 'test-overcloud', - '/tht-root/', - validate_stack=False) + '/tht-root/') # A dictionary without the "passwords" key is provided in # the _load_passwords method. mock_yaml_safe_load.return_value = {} @@ -349,7 +344,6 @@ class TestPlanUpdateWorkflows(base.TestCommand): extra_vars={ "container": "test-overcloud", "generate_passwords": True, - "validate": False }, verbosity=1, ) diff --git a/tripleoclient/v1/overcloud_deploy.py b/tripleoclient/v1/overcloud_deploy.py index 27d7e50c4..e7f10cd5b 100644 --- a/tripleoclient/v1/overcloud_deploy.py +++ b/tripleoclient/v1/overcloud_deploy.py @@ -400,7 +400,6 @@ class DeployOvercloud(command.Command): parsed_args.plan_environment_file, parsed_args.networks_file, type(self)._keep_env_on_update, - validate_stack=False, verbosity_level=utils.playbook_verbosity(self=self) ) else: diff --git a/tripleoclient/workflows/plan_management.py b/tripleoclient/workflows/plan_management.py index 84949e3ce..c479c43ca 100644 --- a/tripleoclient/workflows/plan_management.py +++ b/tripleoclient/workflows/plan_management.py @@ -107,7 +107,23 @@ def delete_deployment_plan(clients, container): raise RuntimeError(result) -def update_deployment_plan(clients, verbosity_level=0, **workflow_input): +def update_deployment_plan(clients, container, generate_passwords, + verbosity_level=0): + """Update a deployment plan. + + :param clients: Application client object. + :type clients: Object + + :param container: Container name to pull from. + :type container: String + + :param generate_passwords: Whether to generate password + :type generate_passwords: Boolean + + :param verbosity_level: Verbosity level used in playbook execution + :type verbosity_level: Integer + """ + with utils.TempDirs() as tmp: utils.run_ansible_playbook( "cli-update-deployment-plan.yaml", @@ -115,9 +131,8 @@ def update_deployment_plan(clients, verbosity_level=0, **workflow_input): workdir=tmp, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, extra_vars={ - "container": workflow_input['container'], - "validate": workflow_input['validate_stack'], - "generate_passwords": workflow_input["generate_passwords"], + "container": container, + "generate_passwords": generate_passwords, }, verbosity=verbosity_level ) @@ -158,7 +173,7 @@ def create_plan_from_templates(clients, name, tht_root, roles_file=None, def update_plan_from_templates(clients, name, tht_root, roles_file=None, generate_passwords=True, plan_env_file=None, networks_file=None, keep_env=False, - validate_stack=True, verbosity_level=1): + verbosity_level=1): swift_client = clients.tripleoclient.object_store passwords = None keep_file_contents = {} @@ -212,8 +227,6 @@ def update_plan_from_templates(clients, name, tht_root, roles_file=None, update_deployment_plan(clients, container=name, generate_passwords=generate_passwords, - source_url=None, - validate_stack=validate_stack, verbosity_level=verbosity_level)