config: refactor how per step tasks are generated

The per step tasks generation was introduced by:
I4d864f374d6f840585fafef2c7678e55c154898e

This patch is refactoring a little bit so we can easily re-use that
interface for the other tasks.
It introduces a new constant: PER_STEP_TASKS
It's a list of tasks that are "per step" ready.

Note about the 'else' in tripleo_common/utils/config.py :
Once all tasks are adapted in THT to run per step, we will be able to move this
condition to the upper level
We include it here to allow the CI to pass until THT changed is not merged.

Change-Id: Ie03084bb599b7b06aeeb321d2a7938a908487788
(cherry picked from commit d9c82d8c79)
This commit is contained in:
Emilien Macchi 2019-12-10 10:05:30 -05:00 committed by Luke Short
parent 9916ea78f1
commit ccfa1ad194
2 changed files with 11 additions and 6 deletions

View File

@ -212,7 +212,9 @@ MISTRAL_WORK_DIR = '/var/lib/mistral'
EXCLUSIVE_NEUTRON_DRIVERS = ['ovn', 'openvswitch']
UPGRADE_STEPS_MAX = 6
DEFAULT_STEPS_MAX = 6
PER_STEP_TASKS = ['upgrade_tasks']
# Global Directories for clouds.yaml
GLOBAL_OS_DIR = '/etc/openstack'

View File

@ -250,15 +250,18 @@ class Config(object):
role_group_vars[role_name] = {}
role_group_vars[role_name].update(role[config])
else:
# NOTE(jfrancoa): Move this upgrade_tasks condition to the
# upper level once THT is adapted. We include it here to
# allow the CI to pass until THT changed is not merged.
if config == 'upgrade_tasks':
for i in range(constants.UPGRADE_STEPS_MAX):
# NOTE(emilien): Move this condition to the
# upper level once THT is adapted for all tasks to be
# run per step.
# We include it here to allow the CI to pass until THT
# changed is not merged.
if config in constants.PER_STEP_TASKS:
for i in range(constants.DEFAULT_STEPS_MAX):
filepath = os.path.join(role_path, '%s_step%s.yaml'
% (config, i))
self._write_tasks_per_step(role[config], role_name,
filepath, i)
try:
data = role[config]
except KeyError as e: