Inject both paths for validations roles location
We're in a weird state with validations roles in different locations.
Let's reflect it in the variables.
Also, let's point to a valid "groups.yaml" location.
Closes-Bug: #1895507
Depends-On: https://review.opendev.org/#/c/752187/
Change-Id: Iee198b04f962a3a049515d7b70584f55413bba6f
(cherry picked from commit cbb798dde1
)
This commit is contained in:
parent
72161e0a60
commit
ae5832929f
|
@ -91,10 +91,8 @@ ENABLE_SSH_ADMIN_SSH_PORT_TIMEOUT = 600
|
|||
|
||||
ADDITIONAL_ARCHITECTURES = ['ppc64le']
|
||||
|
||||
DEFAULT_VALIDATIONS_BASEDIR = (
|
||||
"/usr/share/ansible"
|
||||
if os.path.exists("/usr/share/ansible/validation-playbooks")
|
||||
else "/usr/share/openstack-tripleo-validations")
|
||||
DEFAULT_VALIDATIONS_BASEDIR = "/usr/share/ansible"
|
||||
DEFAULT_VALIDATIONS_LEGACY_BASEDIR = "/usr/share/openstack-tripleo-validations"
|
||||
|
||||
VALIDATIONS_LOG_BASEDIR = '/var/log/validations'
|
||||
|
||||
|
@ -104,14 +102,19 @@ ANSIBLE_INVENTORY = \
|
|||
'/var/lib/mistral/overcloud/tripleo-ansible-inventory.yaml'
|
||||
|
||||
ANSIBLE_VALIDATION_DIR = (
|
||||
"/usr/share/ansible/validation-playbooks"
|
||||
if os.path.exists("/usr/share/ansible/validation-playbooks")
|
||||
else "/usr/share/openstack-tripleo-validations/playbooks")
|
||||
os.path.join(DEFAULT_VALIDATIONS_LEGACY_BASEDIR, 'playbooks')
|
||||
if os.path.join(DEFAULT_VALIDATIONS_LEGACY_BASEDIR, 'playbooks')
|
||||
else "/usr/share/ansible/validation-playbooks"
|
||||
)
|
||||
|
||||
ANSIBLE_TRIPLEO_PLAYBOOKS = \
|
||||
'/usr/share/ansible/tripleo-playbooks'
|
||||
|
||||
VALIDATION_GROUPS_INFO = '%s/groups.yaml' % DEFAULT_VALIDATIONS_BASEDIR
|
||||
VALIDATION_GROUPS_INFO = (
|
||||
'/usr/share/ansible/groups.yaml'
|
||||
if os.path.exists('/usr/share/ansible/groups.yaml')
|
||||
else os.path.join(DEFAULT_VALIDATIONS_LEGACY_BASEDIR, 'groups.yaml')
|
||||
)
|
||||
|
||||
VALIDATION_GROUPS = ['no-op',
|
||||
'openshift-on-openstack',
|
||||
|
|
|
@ -51,6 +51,32 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
self.mock_log.warning = mock.MagicMock()
|
||||
python_version = sys.version_info[0]
|
||||
self.ansible_playbook_cmd = "ansible-playbook-%s" % (python_version)
|
||||
self.env = os.environ.copy()
|
||||
self.env['ANSIBLE_LIBRARY'] = \
|
||||
('/root/.ansible/plugins/modules:'
|
||||
'/usr/share/ansible/plugins/modules:'
|
||||
'/usr/share/ansible/library:'
|
||||
'/usr/share/openstack-tripleo-validations/library')
|
||||
self.env['ANSIBLE_LOOKUP_PLUGINS'] = \
|
||||
('root/.ansible/plugins/lookup:'
|
||||
'/usr/share/ansible/plugins/lookup:'
|
||||
'/usr/share/ansible/lookup_plugins:'
|
||||
'/usr/share/openstack-tripleo-validations/lookup_plugins')
|
||||
self.env['ANSIBLE_CALLBACK_PLUGINS'] = \
|
||||
('~/.ansible/plugins/callback:'
|
||||
'/usr/share/ansible/plugins/callback:'
|
||||
'/usr/share/ansible/callback_plugins:'
|
||||
'/usr/share/openstack-tripleo-validations/callback_plugins')
|
||||
self.env['ANSIBLE_ROLES_PATH'] = \
|
||||
('/root/.ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/etc/ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/usr/share/openstack-tripleo-validations/roles')
|
||||
self.env['ANSIBLE_CONFIG'] = '/tmp/fooBar.cfg'
|
||||
self.env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
|
||||
self.env['ANSIBLE_LOG_PATH'] = '/tmp/ansible.log'
|
||||
self.env['TRIPLEO_PLAN_NAME'] = 'overcloud'
|
||||
|
||||
@mock.patch('os.path.exists', return_value=False)
|
||||
@mock.patch('tripleoclient.utils.run_command_and_log')
|
||||
|
@ -74,29 +100,6 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
mock_process.stdout.read.side_effect = ["Error\n"]
|
||||
mock_run.return_value = mock_process
|
||||
|
||||
env = os.environ.copy()
|
||||
env['ANSIBLE_LIBRARY'] = \
|
||||
('/root/.ansible/plugins/modules:'
|
||||
'/usr/share/ansible/plugins/modules:'
|
||||
'/usr/share/openstack-tripleo-validations/library')
|
||||
env['ANSIBLE_LOOKUP_PLUGINS'] = \
|
||||
('root/.ansible/plugins/lookup:'
|
||||
'/usr/share/ansible/plugins/lookup:'
|
||||
'/usr/share/openstack-tripleo-validations/lookup_plugins')
|
||||
env['ANSIBLE_CALLBACK_PLUGINS'] = \
|
||||
('~/.ansible/plugins/callback:'
|
||||
'/usr/share/ansible/plugins/callback:'
|
||||
'/usr/share/openstack-tripleo-validations/callback_plugins')
|
||||
env['ANSIBLE_ROLES_PATH'] = \
|
||||
('/root/.ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/etc/ansible/roles:'
|
||||
'/usr/share/openstack-tripleo-validations/roles')
|
||||
env['ANSIBLE_CONFIG'] = '/tmp/fooBar.cfg'
|
||||
env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
|
||||
env['ANSIBLE_LOG_PATH'] = '/tmp/ansible.log'
|
||||
env['TRIPLEO_PLAN_NAME'] = 'overcloud'
|
||||
|
||||
self.assertRaises(RuntimeError,
|
||||
utils.run_ansible_playbook,
|
||||
self.mock_log,
|
||||
|
@ -110,7 +113,7 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
'-i', 'localhost,', '-v',
|
||||
'-c', 'smart',
|
||||
'/tmp/existing.yaml'],
|
||||
env=env)
|
||||
env=self.env)
|
||||
|
||||
@mock.patch('os.path.isabs')
|
||||
@mock.patch('os.path.exists', return_value=False)
|
||||
|
@ -135,36 +138,13 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
self.mock_log, '/tmp', 'existing.yaml', 'localhost,')
|
||||
mock_exists.assert_called_once_with('/tmp/existing.yaml')
|
||||
|
||||
env = os.environ.copy()
|
||||
env['ANSIBLE_LIBRARY'] = \
|
||||
('/root/.ansible/plugins/modules:'
|
||||
'/usr/share/ansible/plugins/modules:'
|
||||
'/usr/share/openstack-tripleo-validations/library')
|
||||
env['ANSIBLE_LOOKUP_PLUGINS'] = \
|
||||
('root/.ansible/plugins/lookup:'
|
||||
'/usr/share/ansible/plugins/lookup:'
|
||||
'/usr/share/openstack-tripleo-validations/lookup_plugins')
|
||||
env['ANSIBLE_CALLBACK_PLUGINS'] = \
|
||||
('~/.ansible/plugins/callback:'
|
||||
'/usr/share/ansible/plugins/callback:'
|
||||
'/usr/share/openstack-tripleo-validations/callback_plugins')
|
||||
env['ANSIBLE_ROLES_PATH'] = \
|
||||
('/root/.ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/etc/ansible/roles:'
|
||||
'/usr/share/openstack-tripleo-validations/roles')
|
||||
env['ANSIBLE_CONFIG'] = '/tmp/fooBar.cfg'
|
||||
env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
|
||||
env['ANSIBLE_LOG_PATH'] = '/tmp/ansible.log'
|
||||
env['TRIPLEO_PLAN_NAME'] = 'overcloud'
|
||||
|
||||
mock_run.assert_called_once_with(self.mock_log,
|
||||
[self.ansible_playbook_cmd,
|
||||
'-u', 'root',
|
||||
'-i', 'localhost,', '-v',
|
||||
'-c', 'smart',
|
||||
'/tmp/existing.yaml'],
|
||||
env=env)
|
||||
env=self.env)
|
||||
|
||||
@mock.patch('os.path.isabs')
|
||||
@mock.patch('os.path.exists', return_value=True)
|
||||
|
@ -180,41 +160,18 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
ansible_config='/tmp/foo.cfg')
|
||||
|
||||
mock_isabs.assert_called_once_with('/tmp/foo.cfg')
|
||||
|
||||
self.env['ANSIBLE_CONFIG'] = '/tmp/foo.cfg'
|
||||
exist_calls = [mock.call('/tmp/foo.cfg'),
|
||||
mock.call('/tmp/existing.yaml')]
|
||||
mock_exists.assert_has_calls(exist_calls, any_order=False)
|
||||
|
||||
env = os.environ.copy()
|
||||
env['ANSIBLE_LIBRARY'] = \
|
||||
('/root/.ansible/plugins/modules:'
|
||||
'/usr/share/ansible/plugins/modules:'
|
||||
'/usr/share/openstack-tripleo-validations/library')
|
||||
env['ANSIBLE_LOOKUP_PLUGINS'] = \
|
||||
('root/.ansible/plugins/lookup:'
|
||||
'/usr/share/ansible/plugins/lookup:'
|
||||
'/usr/share/openstack-tripleo-validations/lookup_plugins')
|
||||
env['ANSIBLE_CALLBACK_PLUGINS'] = \
|
||||
('~/.ansible/plugins/callback:'
|
||||
'/usr/share/ansible/plugins/callback:'
|
||||
'/usr/share/openstack-tripleo-validations/callback_plugins')
|
||||
env['ANSIBLE_ROLES_PATH'] = \
|
||||
('/root/.ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/etc/ansible/roles:'
|
||||
'/usr/share/openstack-tripleo-validations/roles')
|
||||
env['ANSIBLE_CONFIG'] = '/tmp/foo.cfg'
|
||||
env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
|
||||
env['ANSIBLE_LOG_PATH'] = '/tmp/ansible.log'
|
||||
env['TRIPLEO_PLAN_NAME'] = 'overcloud'
|
||||
|
||||
mock_run.assert_called_once_with(self.mock_log,
|
||||
[self.ansible_playbook_cmd,
|
||||
'-u', 'root',
|
||||
'-i', 'localhost,', '-v',
|
||||
'-c', 'smart',
|
||||
'/tmp/existing.yaml'],
|
||||
env=env)
|
||||
env=self.env)
|
||||
|
||||
@mock.patch('tempfile.mkstemp', return_value=('foo', '/tmp/fooBar.cfg'))
|
||||
@mock.patch('os.path.exists', return_value=True)
|
||||
|
@ -230,28 +187,6 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
'localhost,',
|
||||
connection='local')
|
||||
mock_exists.assert_called_once_with('/tmp/existing.yaml')
|
||||
env = os.environ.copy()
|
||||
env['ANSIBLE_LIBRARY'] = \
|
||||
('/root/.ansible/plugins/modules:'
|
||||
'/usr/share/ansible/plugins/modules:'
|
||||
'/usr/share/openstack-tripleo-validations/library')
|
||||
env['ANSIBLE_LOOKUP_PLUGINS'] = \
|
||||
('root/.ansible/plugins/lookup:'
|
||||
'/usr/share/ansible/plugins/lookup:'
|
||||
'/usr/share/openstack-tripleo-validations/lookup_plugins')
|
||||
env['ANSIBLE_CALLBACK_PLUGINS'] = \
|
||||
('~/.ansible/plugins/callback:'
|
||||
'/usr/share/ansible/plugins/callback:'
|
||||
'/usr/share/openstack-tripleo-validations/callback_plugins')
|
||||
env['ANSIBLE_ROLES_PATH'] = \
|
||||
('/root/.ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/etc/ansible/roles:'
|
||||
'/usr/share/openstack-tripleo-validations/roles')
|
||||
env['ANSIBLE_CONFIG'] = '/tmp/fooBar.cfg'
|
||||
env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
|
||||
env['ANSIBLE_LOG_PATH'] = '/tmp/ansible.log'
|
||||
env['TRIPLEO_PLAN_NAME'] = 'overcloud'
|
||||
|
||||
mock_run.assert_called_once_with(self.mock_log,
|
||||
[self.ansible_playbook_cmd,
|
||||
|
@ -259,7 +194,7 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
'-i', 'localhost,', '-v',
|
||||
'-c', 'local',
|
||||
'/tmp/existing.yaml'],
|
||||
env=env)
|
||||
env=self.env)
|
||||
|
||||
@mock.patch('tempfile.mkstemp', return_value=('foo', '/tmp/fooBar.cfg'))
|
||||
@mock.patch('os.path.exists', return_value=True)
|
||||
|
@ -275,29 +210,8 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
'localhost,',
|
||||
gathering_policy='explicit')
|
||||
mock_exists.assert_called_once_with('/tmp/existing.yaml')
|
||||
env = os.environ.copy()
|
||||
env['ANSIBLE_LIBRARY'] = \
|
||||
('/root/.ansible/plugins/modules:'
|
||||
'/usr/share/ansible/plugins/modules:'
|
||||
'/usr/share/openstack-tripleo-validations/library')
|
||||
env['ANSIBLE_LOOKUP_PLUGINS'] = \
|
||||
('root/.ansible/plugins/lookup:'
|
||||
'/usr/share/ansible/plugins/lookup:'
|
||||
'/usr/share/openstack-tripleo-validations/lookup_plugins')
|
||||
env['ANSIBLE_CALLBACK_PLUGINS'] = \
|
||||
('~/.ansible/plugins/callback:'
|
||||
'/usr/share/ansible/plugins/callback:'
|
||||
'/usr/share/openstack-tripleo-validations/callback_plugins')
|
||||
env['ANSIBLE_ROLES_PATH'] = \
|
||||
('/root/.ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/etc/ansible/roles:'
|
||||
'/usr/share/openstack-tripleo-validations/roles')
|
||||
env['ANSIBLE_CONFIG'] = '/tmp/fooBar.cfg'
|
||||
env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
|
||||
env['ANSIBLE_LOG_PATH'] = '/tmp/ansible.log'
|
||||
env['TRIPLEO_PLAN_NAME'] = 'overcloud'
|
||||
env['ANSIBLE_GATHERING'] = 'explicit'
|
||||
self.env['TRIPLEO_PLAN_NAME'] = 'overcloud'
|
||||
self.env['ANSIBLE_GATHERING'] = 'explicit'
|
||||
|
||||
mock_run.assert_called_once_with(self.mock_log,
|
||||
[self.ansible_playbook_cmd,
|
||||
|
@ -305,7 +219,7 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
'-i', 'localhost,', '-v',
|
||||
'-c', 'smart',
|
||||
'/tmp/existing.yaml'],
|
||||
env=env)
|
||||
env=self.env)
|
||||
|
||||
@mock.patch('tempfile.mkstemp', return_value=('foo', '/tmp/fooBar.cfg'))
|
||||
@mock.patch('os.path.exists', return_value=True)
|
||||
|
@ -325,29 +239,6 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
extra_vars=arglist)
|
||||
|
||||
mock_exists.assert_called_once_with('/tmp/existing.yaml')
|
||||
env = os.environ.copy()
|
||||
env['ANSIBLE_LIBRARY'] = \
|
||||
('/root/.ansible/plugins/modules:'
|
||||
'/usr/share/ansible/plugins/modules:'
|
||||
'/usr/share/openstack-tripleo-validations/library')
|
||||
env['ANSIBLE_LOOKUP_PLUGINS'] = \
|
||||
('root/.ansible/plugins/lookup:'
|
||||
'/usr/share/ansible/plugins/lookup:'
|
||||
'/usr/share/openstack-tripleo-validations/lookup_plugins')
|
||||
env['ANSIBLE_CALLBACK_PLUGINS'] = \
|
||||
('~/.ansible/plugins/callback:'
|
||||
'/usr/share/ansible/plugins/callback:'
|
||||
'/usr/share/openstack-tripleo-validations/callback_plugins')
|
||||
env['ANSIBLE_ROLES_PATH'] = \
|
||||
('/root/.ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/etc/ansible/roles:'
|
||||
'/usr/share/openstack-tripleo-validations/roles')
|
||||
env['ANSIBLE_CONFIG'] = '/tmp/fooBar.cfg'
|
||||
env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
|
||||
env['ANSIBLE_LOG_PATH'] = '/tmp/ansible.log'
|
||||
env['TRIPLEO_PLAN_NAME'] = 'overcloud'
|
||||
|
||||
mock_run.assert_called_once_with(
|
||||
self.mock_log, [
|
||||
self.ansible_playbook_cmd, '-u', 'root',
|
||||
|
@ -355,7 +246,7 @@ class TestRunAnsiblePlaybook(TestCase):
|
|||
'--extra-vars', '%s' % arglist,
|
||||
'-c', 'smart', '/tmp/existing.yaml'
|
||||
],
|
||||
env=env)
|
||||
env=self.env)
|
||||
|
||||
|
||||
class TestRunCommandAndLog(TestCase):
|
||||
|
|
|
@ -270,20 +270,28 @@ def run_ansible_playbook(logger,
|
|||
env['ANSIBLE_LIBRARY'] = \
|
||||
('/root/.ansible/plugins/modules:'
|
||||
'/usr/share/ansible/plugins/modules:'
|
||||
'%s/library' % constants.DEFAULT_VALIDATIONS_BASEDIR)
|
||||
'{}/library:{}/library'.format(
|
||||
constants.DEFAULT_VALIDATIONS_BASEDIR,
|
||||
constants.DEFAULT_VALIDATIONS_LEGACY_BASEDIR))
|
||||
env['ANSIBLE_LOOKUP_PLUGINS'] = \
|
||||
('root/.ansible/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))
|
||||
env['ANSIBLE_CALLBACK_PLUGINS'] = \
|
||||
('~/.ansible/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))
|
||||
env['ANSIBLE_ROLES_PATH'] = \
|
||||
('/root/.ansible/roles:'
|
||||
'/usr/share/ansible/roles:'
|
||||
'/etc/ansible/roles:'
|
||||
'%s/roles' % constants.DEFAULT_VALIDATIONS_BASEDIR)
|
||||
'{}/roles:{}/roles'.format(
|
||||
constants.DEFAULT_VALIDATIONS_BASEDIR,
|
||||
constants.DEFAULT_VALIDATIONS_LEGACY_BASEDIR))
|
||||
|
||||
env['TRIPLEO_PLAN_NAME'] = plan
|
||||
|
||||
|
|
Loading…
Reference in New Issue