[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.
This commit is contained in:
Moisés López 2018-03-27 10:33:59 -06:00 committed by Christophe Monniez
parent dcdd16038b
commit c9de61a320

View File

@ -307,18 +307,19 @@ class runbot_build(models.Model):
root = self.env['runbot.repo']._root() root = self.env['runbot.repo']._root()
build_dir = os.path.join(root, 'build') build_dir = os.path.join(root, 'build')
builds = os.listdir(build_dir) builds = os.listdir(build_dir)
self.env.cr.execute(""" if builds:
SELECT dest self.env.cr.execute("""
FROM runbot_build SELECT dest
WHERE dest IN %s FROM runbot_build
AND (state != 'done' OR job_end > (now() - interval '7 days')) WHERE dest IN %s
""", [tuple(builds)]) AND (state != 'done' OR job_end > (now() - interval '7 days'))
actives = set(b[0] for b in self.env.cr.fetchall()) """, [tuple(builds)])
actives = set(b[0] for b in self.env.cr.fetchall())
for b in builds: for b in builds:
path = os.path.join(build_dir, b) path = os.path.join(build_dir, b)
if b not in actives and os.path.isdir(path) and os.path.isabs(path): if b not in actives and os.path.isdir(path) and os.path.isabs(path):
shutil.rmtree(path) shutil.rmtree(path)
# cleanup old unused databases # cleanup old unused databases
self.env.cr.execute("select id from runbot_build where state in ('testing', 'running')") self.env.cr.execute("select id from runbot_build where state in ('testing', 'running')")