Added support and tests for --check option.

This commit is contained in:
Chris Church 2013-04-04 14:47:32 -04:00
parent e9aa3f78e2
commit 541445d60f
2 changed files with 37 additions and 1 deletions

View File

@ -47,7 +47,9 @@ def run_launch_job(launch_job_status_pk):
env['ANSIBLE_TRANSPORT'] = getattr(settings, 'ANSIBLE_TRANSPORT')
playbook = launch_job.project.default_playbook
cmdline = ['ansible-playbook', '-i', inventory_script]#, '-v']
cmdline = ['ansible-playbook', '-i', inventory_script]
if launch_job.job_type == 'check':
cmdline.append('--check')
cmdline.append(playbook)
# FIXME: How to cancel/interrupt job? (not that important for now)

View File

@ -103,6 +103,22 @@ class RunLaunchJobTest(BaseCeleryTest):
self.assertEqual(launch_job_status_events.filter(event='runner_on_ok').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='playbook_on_stats').count(), 1)
def test_check_launch_job(self):
self.create_test_playbook(TEST_PLAYBOOK)
self.launch_job.job_type = 'check'
self.launch_job.save()
launch_job_status = self.launch_job.start()
self.assertEqual(launch_job_status.status, 'pending')
launch_job_status = LaunchJobStatus.objects.get(pk=launch_job_status.pk)
self.assertEqual(launch_job_status.status, 'successful')
self.assertTrue(launch_job_status.result_stdout)
launch_job_status_events = launch_job_status.launch_job_status_events.all()
self.assertEqual(launch_job_status_events.filter(event='playbook_on_start').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='playbook_on_play_start').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='playbook_on_task_start').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='runner_on_skipped').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='playbook_on_stats').count(), 1)
def test_run_launch_job_that_fails(self):
self.create_test_playbook(TEST_PLAYBOOK2)
launch_job_status = self.launch_job.start()
@ -116,3 +132,21 @@ class RunLaunchJobTest(BaseCeleryTest):
self.assertEqual(launch_job_status_events.filter(event='playbook_on_task_start').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='runner_on_failed').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='playbook_on_stats').count(), 1)
def test_check_launch_job_where_task_would_fail(self):
self.create_test_playbook(TEST_PLAYBOOK2)
self.launch_job.job_type = 'check'
self.launch_job.save()
launch_job_status = self.launch_job.start()
self.assertEqual(launch_job_status.status, 'pending')
launch_job_status = LaunchJobStatus.objects.get(pk=launch_job_status.pk)
# Since we don't actually run the task, the --check should indicate
# everything is successful.
self.assertEqual(launch_job_status.status, 'successful')
self.assertTrue(launch_job_status.result_stdout)
launch_job_status_events = launch_job_status.launch_job_status_events.all()
self.assertEqual(launch_job_status_events.filter(event='playbook_on_start').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='playbook_on_play_start').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='playbook_on_task_start').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='runner_on_skipped').count(), 1)
self.assertEqual(launch_job_status_events.filter(event='playbook_on_stats').count(), 1)