aboutsummaryrefslogtreecommitdiffstats
path: root/src/dashboard/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/dashboard/tasks.py')
-rw-r--r--src/dashboard/tasks.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/dashboard/tasks.py b/src/dashboard/tasks.py
index b1d97b7..67a06fd 100644
--- a/src/dashboard/tasks.py
+++ b/src/dashboard/tasks.py
@@ -14,7 +14,7 @@ from django.utils import timezone
from django.db.models import Q
from booking.models import Booking
from notifier.manager import NotificationHandler
-from api.models import JobStatus, SoftwareRelation, HostHardwareRelation, HostNetworkRelation, AccessRelation
+from api.models import Job, JobStatus, SoftwareRelation, HostHardwareRelation, HostNetworkRelation, AccessRelation
from resource_inventory.resource_manager import ResourceManager
@@ -92,12 +92,11 @@ def free_hosts():
"""
gets all hosts from the database that need to be freed and frees them
"""
- networks = ~Q(~Q(job__hostnetworkrelation__status=200))
- hardware = ~Q(~Q(job__hosthardwarerelation__status=200))
+ undone_jobs = Job.objects.filter(hostnetworkrelation__status__ne=200, hosthardwarerelation__status__ne=200)
- bookings = Booking.objects.filter(
- networks,
- hardware,
+ bookings = Booking.objects.exclude(
+ job_in=undone_jobs
+ ).filter(
end__lt=timezone.now(),
job__complete=True,
resource__isnull=False