From c9de61a320828ca21cef2885c6858f49ddfbb031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mois=C3=A9s=20L=C3=B3pez?= Date: Tue, 27 Mar 2018 10:33:59 -0600 Subject: [PATCH] [REF] runbot: Consider empty returned values When installing a clean runbot instance a bad query is made because there is not any build yet. With this commmit, the query is not made when there are no builds directories found on the filesystem. --- runbot/models/build.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/runbot/models/build.py b/runbot/models/build.py index b02ea8ff..40861efd 100644 --- a/runbot/models/build.py +++ b/runbot/models/build.py @@ -307,18 +307,19 @@ class runbot_build(models.Model): root = self.env['runbot.repo']._root() build_dir = os.path.join(root, 'build') builds = os.listdir(build_dir) - self.env.cr.execute(""" - SELECT dest - FROM runbot_build - WHERE dest IN %s - AND (state != 'done' OR job_end > (now() - interval '7 days')) - """, [tuple(builds)]) - actives = set(b[0] for b in self.env.cr.fetchall()) + if builds: + self.env.cr.execute(""" + SELECT dest + FROM runbot_build + WHERE dest IN %s + AND (state != 'done' OR job_end > (now() - interval '7 days')) + """, [tuple(builds)]) + actives = set(b[0] for b in self.env.cr.fetchall()) - for b in builds: - path = os.path.join(build_dir, b) - if b not in actives and os.path.isdir(path) and os.path.isabs(path): - shutil.rmtree(path) + for b in builds: + path = os.path.join(build_dir, b) + if b not in actives and os.path.isdir(path) and os.path.isabs(path): + shutil.rmtree(path) # cleanup old unused databases self.env.cr.execute("select id from runbot_build where state in ('testing', 'running')")