]> git.samba.org - build-farm.git/blob - tools/fix.py
some css elements are standard now, now brwowser specific names needed for those
[build-farm.git] / tools / fix.py
1 #!/usr/bin/python
2
3 import bz2
4 import os
5 import sys
6 sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
7
8 from buildfarm.build import (
9     build_status_from_logs,
10     LogFileMissing,
11     MissingRevisionInfo,
12     NoTestOutput,
13     revision_from_log,
14     extract_test_output,
15     )
16 from buildfarm.hostdb import NoSuchHost
17
18 from buildfarm import BuildFarm, StormBuild
19
20 buildfarm = BuildFarm()
21
22 store = buildfarm._get_store()
23
24 for build in store.find(StormBuild, StormBuild.status_str == None):
25     try:
26         log = build.read_log()
27     except LogFileMissing:
28         print "Killing build %r without status string or log." % build
29         log.remove()
30         continue
31     try:
32         err = build.read_err()
33         try:
34             status = build_status_from_logs(log, err)
35         finally:
36             err.close()
37     finally:
38         log.close()
39     build.status_str = status.__serialize__()
40     print "Updating status for %r" % build
41
42
43 for build in store.find(StormBuild, StormBuild.revision == None):
44     try:
45         log = build.read_log()
46     except LogFileMissing:
47         print "Killing build %r without revision or log." % build
48         build.remove()
49         continue
50     try:
51         revision = revision_from_log(log)
52     except MissingRevisionInfo:
53         continue
54     assert revision
55     build.revision = revision
56     print "Updating revision for %r" % build
57
58 for build in store.find(StormBuild, StormBuild.host_id == None):
59     try:
60         build.host_id = buildfarm.hostdb[build.host].id
61     except NoSuchHost, e:
62         print "Unable to find host %s" % e.name
63
64
65 buildfarm.commit()