From 8c9544e5ed363ed477d7838e13d97ef88c7ad27c Mon Sep 17 00:00:00 2001 From: Jim Ladd Date: Wed, 13 Feb 2019 17:25:35 -0800 Subject: [PATCH] Add support for new ansible stats --- awx/api/serializers.py | 3 ++- awx/lib/awx_display_callback/module.py | 2 ++ .../0062_v350_new_playbook_stats.py | 25 +++++++++++++++++++ awx/main/models/events.py | 2 +- awx/main/models/jobs.py | 2 ++ 5 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 awx/main/migrations/0062_v350_new_playbook_stats.py diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 516491654b..22d65b7554 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4038,7 +4038,8 @@ class JobHostSummarySerializer(BaseSerializer): class Meta: model = JobHostSummary fields = ('*', '-name', '-description', 'job', 'host', 'host_name', 'changed', - 'dark', 'failures', 'ok', 'processed', 'skipped', 'failed') + 'dark', 'failures', 'ok', 'processed', 'skipped', 'failed', + 'ignored', 'rescued') def get_related(self, obj): res = super(JobHostSummarySerializer, self).get_related(obj) diff --git a/awx/lib/awx_display_callback/module.py b/awx/lib/awx_display_callback/module.py index f9249e25e1..6d5e30d0d2 100644 --- a/awx/lib/awx_display_callback/module.py +++ b/awx/lib/awx_display_callback/module.py @@ -308,8 +308,10 @@ class BaseCallbackModule(CallbackBase): changed=stats.changed, dark=stats.dark, failures=stats.failures, + ignored=stats.ignored, ok=stats.ok, processed=stats.processed, + rescued=stats.rescued, skipped=stats.skipped ) diff --git a/awx/main/migrations/0062_v350_new_playbook_stats.py b/awx/main/migrations/0062_v350_new_playbook_stats.py new file mode 100644 index 0000000000..29ab8e7017 --- /dev/null +++ b/awx/main/migrations/0062_v350_new_playbook_stats.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.16 on 2019-02-14 00:44 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0061_v350_track_native_credentialtype_source'), + ] + + operations = [ + migrations.AddField( + model_name='jobhostsummary', + name='ignored', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AddField( + model_name='jobhostsummary', + name='rescued', + field=models.PositiveIntegerField(default=0, editable=False), + ), + ] diff --git a/awx/main/models/events.py b/awx/main/models/events.py index b92866e889..f996cc123c 100644 --- a/awx/main/models/events.py +++ b/awx/main/models/events.py @@ -483,7 +483,7 @@ class JobEvent(BasePlaybookEvent): job = self.job for host in hostnames: host_stats = {} - for stat in ('changed', 'dark', 'failures', 'ok', 'processed', 'skipped'): + for stat in ('changed', 'dark', 'failures', 'ignored', 'ok', 'processed', 'rescued', 'skipped'): try: host_stats[stat] = self.event_data.get(stat, {}).get(host, 0) except AttributeError: # in case event_data[stat] isn't a dict. diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index 471eaafc91..3e0075d6fb 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -1123,8 +1123,10 @@ class JobHostSummary(CreatedModifiedModel): changed = models.PositiveIntegerField(default=0, editable=False) dark = models.PositiveIntegerField(default=0, editable=False) failures = models.PositiveIntegerField(default=0, editable=False) + ignored = models.PositiveIntegerField(default=0, editable=False) ok = models.PositiveIntegerField(default=0, editable=False) processed = models.PositiveIntegerField(default=0, editable=False) + rescued = models.PositiveIntegerField(default=0, editable=False) skipped = models.PositiveIntegerField(default=0, editable=False) failed = models.BooleanField(default=False, editable=False)