From 7353a843d56e360d20fd75e990fd386be572bfbc Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 30 Oct 2021 18:07:34 +0100 Subject: [PATCH] builders: Fix quarantine handling The way the canStartBuild code was written, it inserted a delay between each build starting of 2 minutes unconditionally. We only want to do this if the worker had run out of space so tweak the code accordingly. Signed-off-by: Richard Purdie --- builders.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/builders.py b/builders.py index 20ad0bb..e575a1a 100644 --- a/builders.py +++ b/builders.py @@ -69,16 +69,17 @@ def canStartBuild(builder, wfb, request): threshold = 60 # GB of space if int(cmd.stdout) < threshold: log.msg("Detected {0} GB of space available, less than threshold of {1} GB. Can't start build".format(cmd.stdout, threshold)) + wfb.worker.quarantine_timeout = 2 * 60 wfb.worker.putInQuarantine() return False + + log.msg("Detected {0} GB of space available, more than threshold of {1} GB. OK to build".format(cmd.stdout, threshold)) + if wfb.worker.isPaused: + # It was low on space so delay the builds starting a bit + wfb.worker.quarantine_timeout = 2 * 60 + wfb.worker.putInQuarantine() else: - log.msg("Detected {0} GB of space available, more than threshold of {1} GB. OK to build".format(cmd.stdout, threshold)) - - wfb.worker.quarantine_timeout = 120 - wfb.worker.putInQuarantine() - - wfb.worker.resetQuarantine() - + wfb.worker.exitQuarantine() return True def create_builder_factory():