diff --git a/awx/main/scheduler/dependency_graph.py b/awx/main/scheduler/dependency_graph.py index 14a77ab697..26b7518cf1 100644 --- a/awx/main/scheduler/dependency_graph.py +++ b/awx/main/scheduler/dependency_graph.py @@ -59,7 +59,7 @@ class DependencyGraph(object): return True # TODO: Other finished, failed cases? i.e. error ? - if latest_project_update['status'] == 'failed': + if latest_project_update['status'] in ['failed', 'canceled']: return True ''' @@ -89,7 +89,7 @@ class DependencyGraph(object): return True # TODO: Other finished, failed cases? i.e. error ? - if latest_inventory_update['status'] == 'failed': + if latest_inventory_update['status'] in ['failed', 'canceled']: return True ''' diff --git a/awx/main/scheduler/partial.py b/awx/main/scheduler/partial.py index e3677dab2c..a1870ccf4f 100644 --- a/awx/main/scheduler/partial.py +++ b/awx/main/scheduler/partial.py @@ -82,6 +82,14 @@ class ProjectUpdateDict(PartialModelDict): def task_impact(self): return 10 + @classmethod + def filter_partial(cls, status=[]): + kv = { + 'status__in': status, + 'job_type': 'check', + } + return [cls(o) for o in cls.model.objects.filter(**kv).values(*cls.get_db_values())] + class ProjectUpdateLatestDict(ProjectUpdateDict): FIELDS = ( 'id', 'status', 'project_id', 'created', 'finished',