From f37391397e5cd704796a62205086c86d6eb95c6b Mon Sep 17 00:00:00 2001 From: chris meyers Date: Thu, 8 Nov 2018 11:47:31 -0500 Subject: [PATCH] add inventory to schedule summary fields * Use the same logic that related inventory uses. If there is an inventory that overrides the inventory on the unified job template then summarize that field. Else, use the inventory on the unified job template being scheduled. --- awx/api/serializers.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index aaf28acb46..8db2994cb6 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4614,6 +4614,22 @@ class ScheduleSerializer(LaunchConfigurationBaseSerializer, SchedulePreviewSeria res['inventory'] = obj.unified_job_template.inventory.get_absolute_url(self.context.get('request')) return res + def get_summary_fields(self, obj): + summary_fields = super(ScheduleSerializer, self).get_summary_fields(obj) + inventory = None + if obj.inventory: + inventory = obj.inventory + elif obj.unified_job_template and getattr(obj.unified_job_template, 'inventory', None): + inventory = obj.unified_job_template.inventory + else: + return summary_fields + + summary_fields['inventory'] = dict() + for field in SUMMARIZABLE_FK_FIELDS['inventory']: + summary_fields['inventory'][field] = getattr(inventory, field, None) + + return summary_fields + def validate_unified_job_template(self, value): if type(value) == InventorySource and value.source not in SCHEDULEABLE_PROVIDERS: raise serializers.ValidationError(_('Inventory Source must be a cloud resource.'))