mirror of
https://github.com/ansible/awx.git
synced 2026-04-05 01:59:25 -02:30
Add tests for changed flag on job events.
This commit is contained in:
@@ -1130,11 +1130,9 @@ class JobEvent(models.Model):
|
|||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if self.event in self.FAILED_EVENTS:
|
if self.event in self.FAILED_EVENTS:
|
||||||
self.failed = True
|
self.failed = True
|
||||||
try:
|
res = self.event_data.get('res', None)
|
||||||
if self.event_data['res']['changed']:
|
if isinstance(res, dict) and res.get('changed', False):
|
||||||
self.changed = True
|
self.changed = True
|
||||||
except (KeyError, IndexError, AttributeError):
|
|
||||||
pass
|
|
||||||
try:
|
try:
|
||||||
if not self.host and self.event_data.get('host', ''):
|
if not self.host and self.event_data.get('host', ''):
|
||||||
self.host = self.job.inventory.hosts.get(name=self.event_data['host'])
|
self.host = self.job.inventory.hosts.get(name=self.event_data['host'])
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ class RunJobTest(BaseCeleryTest):
|
|||||||
'inventory': self.inventory,
|
'inventory': self.inventory,
|
||||||
'project': self.project,
|
'project': self.project,
|
||||||
'credential': self.credential,
|
'credential': self.credential,
|
||||||
|
'job_type': 'run',
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
opts['playbook'] = self.project.playbooks[0]
|
opts['playbook'] = self.project.playbooks[0]
|
||||||
@@ -178,6 +179,7 @@ class RunJobTest(BaseCeleryTest):
|
|||||||
'inventory': self.inventory,
|
'inventory': self.inventory,
|
||||||
'project': self.project,
|
'project': self.project,
|
||||||
'credential': self.credential,
|
'credential': self.credential,
|
||||||
|
'job_type': 'run',
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
opts['playbook'] = self.project.playbooks[0]
|
opts['playbook'] = self.project.playbooks[0]
|
||||||
@@ -219,6 +221,8 @@ class RunJobTest(BaseCeleryTest):
|
|||||||
unicode(job_event) # For test coverage.
|
unicode(job_event) # For test coverage.
|
||||||
job_event.save()
|
job_event.save()
|
||||||
should_be_failed = bool(runner_status not in ('ok', 'skipped'))
|
should_be_failed = bool(runner_status not in ('ok', 'skipped'))
|
||||||
|
should_be_changed = bool(runner_status in ('ok', 'failed') and
|
||||||
|
job.job_type == 'run')
|
||||||
host_pks = set([self.host.pk])
|
host_pks = set([self.host.pk])
|
||||||
qs = job_events.filter(event='playbook_on_start')
|
qs = job_events.filter(event='playbook_on_start')
|
||||||
self.assertEqual(qs.count(), 1)
|
self.assertEqual(qs.count(), 1)
|
||||||
@@ -227,6 +231,7 @@ class RunJobTest(BaseCeleryTest):
|
|||||||
self.assertFalse(evt.play, evt)
|
self.assertFalse(evt.play, evt)
|
||||||
self.assertFalse(evt.task, evt)
|
self.assertFalse(evt.task, evt)
|
||||||
self.assertEqual(evt.failed, should_be_failed)
|
self.assertEqual(evt.failed, should_be_failed)
|
||||||
|
self.assertEqual(evt.changed, should_be_changed)
|
||||||
self.assertEqual(set(evt.hosts.values_list('pk', flat=True)),
|
self.assertEqual(set(evt.hosts.values_list('pk', flat=True)),
|
||||||
host_pks)
|
host_pks)
|
||||||
qs = job_events.filter(event='playbook_on_play_start')
|
qs = job_events.filter(event='playbook_on_play_start')
|
||||||
@@ -236,6 +241,7 @@ class RunJobTest(BaseCeleryTest):
|
|||||||
self.assertTrue(evt.play, evt)
|
self.assertTrue(evt.play, evt)
|
||||||
self.assertFalse(evt.task, evt)
|
self.assertFalse(evt.task, evt)
|
||||||
self.assertEqual(evt.failed, should_be_failed)
|
self.assertEqual(evt.failed, should_be_failed)
|
||||||
|
self.assertEqual(evt.changed, should_be_changed)
|
||||||
self.assertEqual(set(evt.hosts.values_list('pk', flat=True)),
|
self.assertEqual(set(evt.hosts.values_list('pk', flat=True)),
|
||||||
host_pks)
|
host_pks)
|
||||||
qs = job_events.filter(event='playbook_on_task_start')
|
qs = job_events.filter(event='playbook_on_task_start')
|
||||||
@@ -245,6 +251,7 @@ class RunJobTest(BaseCeleryTest):
|
|||||||
self.assertTrue(evt.play, evt)
|
self.assertTrue(evt.play, evt)
|
||||||
self.assertTrue(evt.task, evt)
|
self.assertTrue(evt.task, evt)
|
||||||
self.assertEqual(evt.failed, should_be_failed)
|
self.assertEqual(evt.failed, should_be_failed)
|
||||||
|
self.assertEqual(evt.changed, should_be_changed)
|
||||||
self.assertEqual(set(evt.hosts.values_list('pk', flat=True)),
|
self.assertEqual(set(evt.hosts.values_list('pk', flat=True)),
|
||||||
host_pks)
|
host_pks)
|
||||||
qs = job_events.filter(event=('runner_on_%s' % runner_status))
|
qs = job_events.filter(event=('runner_on_%s' % runner_status))
|
||||||
@@ -254,6 +261,7 @@ class RunJobTest(BaseCeleryTest):
|
|||||||
self.assertTrue(evt.play, evt)
|
self.assertTrue(evt.play, evt)
|
||||||
self.assertTrue(evt.task, evt)
|
self.assertTrue(evt.task, evt)
|
||||||
self.assertEqual(evt.failed, should_be_failed)
|
self.assertEqual(evt.failed, should_be_failed)
|
||||||
|
self.assertEqual(evt.changed, should_be_changed)
|
||||||
self.assertEqual(set(evt.hosts.values_list('pk', flat=True)),
|
self.assertEqual(set(evt.hosts.values_list('pk', flat=True)),
|
||||||
host_pks)
|
host_pks)
|
||||||
qs = job_events.filter(event__startswith='runner_')
|
qs = job_events.filter(event__startswith='runner_')
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ from awx.main.serializers import *
|
|||||||
|
|
||||||
def handle_error(request, status=404):
|
def handle_error(request, status=404):
|
||||||
context = {}
|
context = {}
|
||||||
print request.path, status
|
#print request.path, status
|
||||||
if request.path.startswith('/admin/'):
|
if request.path.startswith('/admin/'):
|
||||||
template_name = 'admin/%d.html' % status
|
template_name = 'admin/%d.html' % status
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user