From b500c400d4588a202da295bd436f9876c4931ea4 Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Fri, 3 Mar 2023 10:39:17 -0700 Subject: [PATCH] task.ansible: Fix an IndexError w/ 0 remotes Signed-off-by: Zack Cerza --- teuthology/task/ansible.py | 5 ++++- teuthology/test/task/test_ansible.py | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/teuthology/task/ansible.py b/teuthology/task/ansible.py index a89ec911..8dd20c32 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 1ba96bc5..745b2723 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 -- 2.47.3