From f6a501bb28b09a5a08a2673e9fc1ac7ef280970e Mon Sep 17 00:00:00 2001 From: Luke Sneeringer Date: Mon, 6 Oct 2014 12:57:57 -0500 Subject: [PATCH] Register signal against subclasses separately. --- awx/main/models/ha.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/awx/main/models/ha.py b/awx/main/models/ha.py index b28fe1231e..cf460c7aaf 100644 --- a/awx/main/models/ha.py +++ b/awx/main/models/ha.py @@ -6,7 +6,12 @@ from django.db.models.signals import post_save from django.dispatch import receiver from awx.main.managers import InstanceManager -from awx.main.models import UnifiedJob +from awx.main.models.inventory import InventoryUpdate +from awx.main.models.jobs import Job +from awx.main.models.projects import ProjectUpdate +from awx.main.models.unified_jobs import UnifiedJob + +__all__ = ('Instance', 'JobOrigin') class Instance(models.Model): @@ -50,8 +55,12 @@ class JobOrigin(models.Model): app_label = 'main' - -@receiver(post_save, sender=UnifiedJob) +# Unfortunately, the signal can't just be connected against UnifiedJob; it +# turns out that creating a model's subclass doesn't fire the signal for the +# superclass model. +@receiver(post_save, sender=InventoryUpdate) +@receiver(post_save, sender=Job) +@receiver(post_save, sender=ProjectUpdate) def on_create(sender, instance, created=False, raw=False, **kwargs): """When a new job is created, save a record of its origin (the machine that started the job).