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
This commit is contained in:
Takashi Kajinami 2020-06-23 21:51:46 +09:00
parent a4261cadb2
commit bced646931
3 changed files with 23 additions and 17 deletions

View File

@ -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,
)

View File

@ -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:

View File

@ -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)