]> git.pld-linux.org Git - projects/pld-builder.new.git/blame - PLD_Builder/buildlogs.py
Switch to https for client/request handler server and between builders communication...
[projects/pld-builder.new.git] / PLD_Builder / buildlogs.py
CommitLineData
dfff8bd5
MM
1# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
2
c8782384 3import path
266bcdd3 4import time
c8782384 5import os
7bf8de49 6import re
97c76301 7import log
c8782384
MM
8
9from config import config
bdc3292c 10import util
c8782384
MM
11
12class Buildlogs_Queue:
dfff8bd5
MM
13 def __init__(self):
14 self.queue = []
15 self.some_failed = 0
16bc8b6f 16 self.requester_email = None
dfff8bd5
MM
17
18 def init(self, g):
19 self.requester_email = g.requester_email
20
5c59479b 21 def add(self, logfile, failed, id):
dfff8bd5
MM
22 # if /dev/null, don't even bother to store it
23 if config.buildlogs_url == "/dev/null":
24 return
ff888351 25 blogfile = os.path.basename(logfile)
1aa1eb02 26 name = re.sub(r"\.spec\.log", "", blogfile) + "," + id + ".bz2"
97c76301 27 ret = os.system("bzip2 --best --force < %s > %s" \
48f12722 28 % (logfile, path.buildlogs_queue_dir + '/' + config.builder + '.' + id + '.' + blogfile))
97c76301
AM
29 if ret:
30 log.error("bzip2 compression of %s failed; does bzip2 binary exist?" % (logfile))
dfff8bd5
MM
31
32 if failed: s = "FAIL"
33 else: s = "OK"
9b05e4ce 34 f = open(path.buildlogs_queue_dir + '/' + config.builder + '.' + id + '.' + blogfile + ".info", "w")
dfff8bd5
MM
35 f.write("Status: %s\nEND\n" % s)
36 f.close()
37
b25ebd68 38 self.queue.append({'name': name, 'id': config.builder + '.' + id + '.' + blogfile, 'failed': failed})
dfff8bd5
MM
39
40 def flush(self):
41 def desc(l):
76ba3bb3 42 return """Target: %s/%s
266bcdd3 43Builder: %s
266bcdd3 44Time: %d
1051562e 45Type: buildlog
266bcdd3
MM
46Requester: %s
47END
76ba3bb3 48""" % (config.buildlogs_url, l['name'], config.builder, time.time(), self.requester_email)
e6376553 49
0205d10b
AM
50 q = self.queue[:]
51 for l in q:
9246c3cb 52 f = open(path.buildlogs_queue_dir + '/' + l['id'] + ".desc.tmp", "w")
dfff8bd5
MM
53 f.write(desc(l))
54 f.close()
9246c3cb 55 os.rename(path.buildlogs_queue_dir + '/' + l['id'] + ".desc.tmp", path.buildlogs_queue_dir + '/' + l['id'] + ".desc")
0205d10b 56 self.queue.remove(l)
c8782384
MM
57
58queue = Buildlogs_Queue()
b5a39692 59
e2cad913 60def init(r):
dfff8bd5 61 queue.init(r)
e2cad913 62
580391bc 63def add(logfile, failed, id):
dfff8bd5 64 "Add new buildlog with specified status."
580391bc 65 queue.add(logfile, failed, id)
b5a39692 66
2e33eed1 67def flush():
dfff8bd5
MM
68 "Send buildlogs to server."
69 queue.flush()
This page took 0.079578 seconds and 4 git commands to generate.