prevent instance group delete if running jobs

* related to https://github.com/ansible/ansible-tower/issues/7936
This commit is contained in:
chris meyers
2018-03-12 17:23:09 -04:00
parent 724ca23685
commit 5d5d8152c5
15 changed files with 337 additions and 129 deletions

View File

@@ -19,8 +19,12 @@ from awx.main.fields import JSONField
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
from awx.main.models.unified_jobs import (
UnifiedJob,
ACTIVE_STATES
)
from awx.main.utils import get_cpu_capacity, get_mem_capacity, get_system_task_capacity
from awx.main.models.mixins import RelatedJobsMixin
__all__ = ('Instance', 'InstanceGroup', 'JobOrigin', 'TowerScheduleState',)
@@ -110,7 +114,7 @@ class Instance(models.Model):
class InstanceGroup(models.Model):
class InstanceGroup(models.Model, RelatedJobsMixin):
"""A model representing a Queue/Group of AWX Instances."""
objects = InstanceGroupManager()
@@ -152,6 +156,14 @@ class InstanceGroup(models.Model):
def capacity(self):
return sum([inst.capacity for inst in self.instances.all()])
'''
RelatedJobsMixin
'''
def _get_active_jobs(self):
return UnifiedJob.objects.filter(instance_group=self,
status__in=ACTIVE_STATES)
class Meta:
app_label = 'main'