From 59c5006e3a13350da8947b040365858afda82f93 Mon Sep 17 00:00:00 2001 From: Mathieu Bultel Date: Wed, 7 Oct 2020 11:47:04 +0200 Subject: [PATCH] Add both validations path for inflight validation The ceph external deploy tasks is using validation modules via mistral. We need to setup the correct new path for mistral in order to get the module. (warn.py) Change-Id: Ide21daaac9a558561d0943cc0a380952cf7e29b3 Resolves: rhbz#1885828 (cherry picked from commit d2b373dc1d7a0cc58aa595d77c9f31e4f8194e66) --- tripleo_common/actions/ansible.py | 34 ++++++++++++++----- tripleo_common/constants.py | 6 ++-- .../tests/utils/test_validations.py | 2 +- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/tripleo_common/actions/ansible.py b/tripleo_common/actions/ansible.py index 3a6530717..5c6fdd60e 100644 --- a/tripleo_common/actions/ansible.py +++ b/tripleo_common/actions/ansible.py @@ -46,31 +46,46 @@ def write_default_ansible_cfg(work_dir, ansible_config_path = os.path.join(work_dir, 'ansible.cfg') shutil.copy(base_ansible_cfg, ansible_config_path) - modules_path = ('/root/.ansible/plugins/modules:' - '/usr/share/ansible/tripleo-plugins/modules:' - '/usr/share/ansible/plugins/modules:' - '%s/library' % constants.DEFAULT_VALIDATIONS_BASEDIR) + modules_path = ( + '/root/.ansible/plugins/modules:' + '/usr/share/ansible/tripleo-plugins/modules:' + '/usr/share/ansible/plugins/modules:' + '{}/library:' + '{}/library'.format(constants.DEFAULT_VALIDATIONS_BASEDIR, + constants.DEFAULT_VALIDATIONS_LEGACY_BASEDIR)) lookups_path = ( '/root/.ansible/plugins/lookup:' '/usr/share/ansible/tripleo-plugins/lookup:' '/usr/share/ansible/plugins/lookup:' - '%s/lookup_plugins' % constants.DEFAULT_VALIDATIONS_BASEDIR) + '{}/lookup_plugins:' + '{}/lookup_plugins'.format( + constants.DEFAULT_VALIDATIONS_BASEDIR, + constants.DEFAULT_VALIDATIONS_LEGACY_BASEDIR)) callbacks_path = ( '~/.ansible/plugins/callback:' '/usr/share/ansible/tripleo-plugins/callback:' '/usr/share/ansible/plugins/callback:' - '%s/callback_plugins' % constants.DEFAULT_VALIDATIONS_BASEDIR) + '{}/callback_plugins:' + '{}/callback_plugins'.format( + constants.DEFAULT_VALIDATIONS_BASEDIR, + constants.DEFAULT_VALIDATIONS_LEGACY_BASEDIR)) callbacks_whitelist = ','.join(['tripleo', 'profile_tasks']) action_plugins_path = ( '~/.ansible/plugins/action:' '/usr/share/ansible/plugins/action:' '/usr/share/ansible/tripleo-plugins/action:' - '%s/action_plugins' % constants.DEFAULT_VALIDATIONS_BASEDIR) + '{}/action_plugins:' + '{}/action_plugins'.format( + constants.DEFAULT_VALIDATIONS_BASEDIR, + constants.DEFAULT_VALIDATIONS_LEGACY_BASEDIR)) filter_plugins_path = ( '~/.ansible/plugins/filter:' '/usr/share/ansible/plugins/filter:' '/usr/share/ansible/tripleo-plugins/filter:' - '%s/filter_plugins' % constants.DEFAULT_VALIDATIONS_BASEDIR) + '{}/filter_plugins:' + '{}/filter_plugins'.format( + constants.DEFAULT_VALIDATIONS_BASEDIR, + constants.DEFAULT_VALIDATIONS_LEGACY_BASEDIR)) roles_path = ('%(work_dir)s/roles:' '/root/.ansible/roles:' '/usr/share/ansible/tripleo-roles:' @@ -79,7 +94,8 @@ def write_default_ansible_cfg(work_dir, '%(ooo_val_path)s/roles:' '%(work_dir)s' % { 'work_dir': work_dir, - 'ooo_val_path': constants.DEFAULT_VALIDATIONS_BASEDIR + 'ooo_val_path': + constants.DEFAULT_VALIDATIONS_LEGACY_BASEDIR }) config = configparser.ConfigParser() diff --git a/tripleo_common/constants.py b/tripleo_common/constants.py index 778c85707..fb3bfbcbe 100644 --- a/tripleo_common/constants.py +++ b/tripleo_common/constants.py @@ -57,10 +57,12 @@ DEFAULT_PLAN_ENV_KEY = 'parameter_defaults' DEFAULT_TEMPLATES_PATH = '/usr/share/openstack-tripleo-heat-templates/' #: The path to the base directory of tripleo-validations -DEFAULT_VALIDATIONS_BASEDIR = '/usr/share/openstack-tripleo-validations' +DEFAULT_VALIDATIONS_BASEDIR = "/usr/share/ansible" +DEFAULT_VALIDATIONS_LEGACY_BASEDIR = "/usr/share/openstack-tripleo-validations" # The path to the tripleo validations installed on the undercloud -DEFAULT_VALIDATIONS_PATH = DEFAULT_VALIDATIONS_BASEDIR + '/playbooks/' +DEFAULT_VALIDATIONS_PATH = "{}/validation-playbooks/".format( + DEFAULT_VALIDATIONS_BASEDIR) # The path to the local CA certificate installed on the undercloud LOCAL_CACERT_PATH = '/etc/pki/ca-trust/source/anchors/cm-local-ca.pem' diff --git a/tripleo_common/tests/utils/test_validations.py b/tripleo_common/tests/utils/test_validations.py index 92a95418f..6de4fc512 100644 --- a/tripleo_common/tests/utils/test_validations.py +++ b/tripleo_common/tests/utils/test_validations.py @@ -262,7 +262,7 @@ class RunValidationTest(base.TestCase): 'validation_path', 'identity_file', 'plan', - '/usr/share/openstack-tripleo-validations' + '/usr/share/ansible' ) mock_download_validation.assert_called_once_with( mock_get_object_client(), 'plan', 'validation')