From dd8acb70be21453fdec1765a7410bc0af0f7fe9d Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Thu, 29 Mar 2018 12:25:39 -0400 Subject: [PATCH] add deletion protection to hosts --- awx/api/views.py | 2 +- awx/main/models/inventory.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/awx/api/views.py b/awx/api/views.py index d3378c127d..a1ec23416c 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -2169,7 +2169,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): '''