diff --git a/awx/api/views.py b/awx/api/views.py index 494e1b0d83..a783557e97 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -2177,7 +2177,7 @@ class HostList(HostRelatedSearchMixin, ListCreateAPIView): return Response(dict(error=_(six.text_type(e))), status=status.HTTP_400_BAD_REQUEST) -class HostDetail(ControlledByScmMixin, RetrieveUpdateDestroyAPIView): +class HostDetail(RelatedJobsPreventDeleteMixin, ControlledByScmMixin, RetrieveUpdateDestroyAPIView): always_allow_superuser = False model = Host diff --git a/awx/main/models/inventory.py b/awx/main/models/inventory.py index 83f5d65fd7..c748f841f3 100644 --- a/awx/main/models/inventory.py +++ b/awx/main/models/inventory.py @@ -517,7 +517,7 @@ class SmartInventoryMembership(BaseModel): host = models.ForeignKey('Host', related_name='+', on_delete=models.CASCADE) -class Host(CommonModelNameNotUnique): +class Host(CommonModelNameNotUnique, RelatedJobsMixin): ''' A managed node ''' @@ -703,6 +703,12 @@ class Host(CommonModelNameNotUnique): self._update_host_smart_inventory_memeberships() super(Host, self).delete(*args, **kwargs) + ''' + RelatedJobsMixin + ''' + def _get_related_jobs(self): + return self.inventory._get_related_jobs() + class Group(CommonModelNameNotUnique, RelatedJobsMixin): '''