From ec080313fc4edc66ad5ea6f7e148489d8831bf7e Mon Sep 17 00:00:00 2001 From: Chris Church Date: Thu, 27 Jun 2013 15:41:04 -0400 Subject: [PATCH] Propagate failed flag on job events to parent job events. --- awx/main/models/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 2d3de8ce25..a4ff1d2e6a 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -1119,7 +1119,6 @@ class JobEvent(models.Model): def save(self, *args, **kwargs): self.failed = bool(self.event in self.FAILED_EVENTS) - # FIXME: Propagage failed flag to parent events. try: if not self.host and self.event_data.get('host', ''): self.host = self.job.inventory.hosts.get(name=self.event_data['host']) @@ -1129,9 +1128,18 @@ class JobEvent(models.Model): self.task = self.event_data.get('task', '') self.parent = self._find_parent() super(JobEvent, self).save(*args, **kwargs) + self.update_parent_failed() self.update_hosts() self.update_host_summary_from_stats() + def update_parent_failed(self): + # Propagage failed flag to parent events. + if self.failed and self.parent and not self.parent.failed: + p = self.parent + p.failed = True + p.save() + p.update_parent_failed() + def update_hosts(self, extra_hosts=None): extra_hosts = extra_hosts or [] hostnames = set()