diff options
author | Parker Berberian <pberberian@iol.unh.edu> | 2019-01-03 19:23:29 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2019-01-03 19:23:29 +0000 |
commit | a104c5c294a006a0770fed1e34aca0a580d59498 (patch) | |
tree | d28370bdf8d61e5d4e6c75bf805f2f11155725a3 | |
parent | 453f5d2217c4b7b3c5252e1adbf2ad25d138f119 (diff) | |
parent | 70e7cda608467942049a5902f94af0569adc165f (diff) |
Merge "Improve cleanup of hosts after booking"
-rw-r--r-- | src/dashboard/tasks.py | 11 |
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 |