]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
task.ansible: Fix an IndexError w/ 0 remotes 1818/head
authorZack Cerza <zack@redhat.com>
Fri, 3 Mar 2023 17:39:17 +0000 (10:39 -0700)
committerZack Cerza <zack@redhat.com>
Fri, 3 Mar 2023 17:39:17 +0000 (10:39 -0700)
Signed-off-by: Zack Cerza <zack@redhat.com>
teuthology/task/ansible.py
teuthology/test/task/test_ansible.py

index a89ec911d99e7f7371d85914bd1db90a1595c324..8dd20c320360e601d58920fb188c420f5466e67b 100644 (file)
@@ -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):
         """
index 1ba96bc528e7db73d76ff346d88b033140f09099..745b2723bd03ae7bc7f085b02bd0ca1fd74da08d 100644 (file)
@@ -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