aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorParker Berberian <pberberian@iol.unh.edu>2019-01-03 19:23:29 +0000
committerGerrit Code Review <gerrit@opnfv.org>2019-01-03 19:23:29 +0000
commita104c5c294a006a0770fed1e34aca0a580d59498 (patch)
treed28370bdf8d61e5d4e6c75bf805f2f11155725a3
parent453f5d2217c4b7b3c5252e1adbf2ad25d138f119 (diff)
parent70e7cda608467942049a5902f94af0569adc165f (diff)
Merge "Improve cleanup of hosts after booking"
-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