inherit child job finish status

This commit is contained in:
Chris Meyers 2015-05-21 16:22:18 -04:00
parent ebdc7a9648
commit 79d6ecc2ef
2 changed files with 13 additions and 5 deletions

View File

@ -1101,6 +1101,7 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions):
'credential', 'source_regions', 'instance_filters', 'group_by', 'overwrite', 'overwrite_vars']
def save(self, *args, **kwargs):
print("Inventory source save called <%s, %s>" % (self.pk, self.status))
new_instance = bool(self.pk)
# If update_fields has been specified, add our field names to it,
# if it hasn't been specified, then we're just doing a normal save.
@ -1143,10 +1144,9 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions):
return self.current_job.status
elif not self.last_job:
return 'never updated'
elif self.last_job_failed:
return 'failed'
# inherit the child job status
else:
return 'successful'
return self.last_job.status
else:
return 'none'
@ -1231,6 +1231,9 @@ class InventoryUpdate(UnifiedJob, InventorySourceOptions):
self.license_error = True
if 'license_error' not in update_fields:
update_fields.append('license_error')
if 'status' in update_fields:
print("Calling inherited parent save for InventoryUpdate <%s, %s>" % (self.pk, self.status))
super(InventoryUpdate, self).save(*args, **kwargs)
def get_absolute_url(self):

View File

@ -253,12 +253,16 @@ class Project(UnifiedJobTemplate, ProjectOptions):
return self.current_job.status
elif not self.last_job:
return 'never updated'
# inherit the child job status on failure
elif self.last_job_failed:
return 'failed'
return self.last_job.status
# Even on a successful child run, a missing project path overides
# the successful status
elif not self.get_project_path():
return 'missing'
# Return the successful status
else:
return 'successful'
return self.last_job.status
elif not self.get_project_path():
return 'missing'
else:
@ -353,6 +357,7 @@ class ProjectUpdate(UnifiedJob, ProjectOptions):
return reverse('api:project_update_detail', args=(self.pk,))
def _update_parent_instance(self):
print("This should not print")
parent_instance = self._get_parent_instance()
if parent_instance:
update_fields = self._update_parent_instance_no_save(parent_instance)