diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index a97a22b669..4524b75cb1 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -417,6 +417,8 @@ class Job(UnifiedJob, JobOptions): def generate_dependencies(self, active_tasks): from awx.main.models import InventoryUpdate, ProjectUpdate + if self.inventory is None or self.project is None: + return [] inventory_sources = self.inventory.inventory_sources.filter(active=True, update_on_launch=True) project_found = False inventory_sources_found = [] diff --git a/awx/main/signals.py b/awx/main/signals.py index 1c50797da8..265d032df3 100644 --- a/awx/main/signals.py +++ b/awx/main/signals.py @@ -102,7 +102,8 @@ def emit_update_inventory_on_created_or_deleted(sender, **kwargs): except Inventory.DoesNotExist: pass else: - update_inventory_computed_fields.delay(inventory.id, True) + if inventory is not None: + update_inventory_computed_fields.delay(inventory.id, True) def store_initial_active_state(sender, **kwargs): instance = kwargs['instance'] diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 82de20ab17..e1903d81d4 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -163,6 +163,7 @@ def update_inventory_computed_fields(inventory_id, should_update_hosts=True): i = Inventory.objects.filter(id=inventory_id) if not i.exists(): logger.error("Update Inventory Computed Fields failed due to missing inventory: " + str(inventory_id)) + return i = i[0] i.update_computed_fields(update_hosts=should_update_hosts)