From: Zack Cerza Date: Fri, 3 Mar 2023 17:39:17 +0000 (-0700) Subject: task.ansible: Fix an IndexError w/ 0 remotes X-Git-Tag: 1.2.0~123^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b500c400d4588a202da295bd436f9876c4931ea4;p=teuthology.git task.ansible: Fix an IndexError w/ 0 remotes Signed-off-by: Zack Cerza --- diff --git a/teuthology/task/ansible.py b/teuthology/task/ansible.py index a89ec911d9..8dd20c3203 100644 --- a/teuthology/task/ansible.py +++ b/teuthology/task/ansible.py @@ -262,7 +262,10 @@ class Ansible(Task): def begin(self): super(Ansible, self).begin() - self.execute_playbook() + if len(self.cluster.remotes) > 0: + self.execute_playbook() + else: + log.info("There are no remotes; skipping playbook execution") def execute_playbook(self, _logfile=None): """ diff --git a/teuthology/test/task/test_ansible.py b/teuthology/test/task/test_ansible.py index 1ba96bc528..745b2723bd 100644 --- a/teuthology/test/task/test_ansible.py +++ b/teuthology/test/task/test_ansible.py @@ -19,6 +19,7 @@ from teuthology.task.ansible import Ansible, CephLab from teuthology.test.task import TestTask + class TestAnsibleTask(TestTask): klass = Ansible task_name = 'ansible' @@ -497,6 +498,17 @@ class TestAnsibleTask(TestTask): assert m_execute.called assert 'cleanup' in task.config['vars'] + def test_no_remotes(self): + self.task_config.update(dict( + playbook=[], + )) + self.ctx.cluster.remotes = dict() + task = self.klass(self.ctx, self.task_config) + with patch.object(ansible.pexpect, 'run') as m_run: + task.setup() + task.begin() + assert not m_run.called + class TestCephLabTask(TestAnsibleTask): klass = CephLab