5 sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
7 from buildfarm.build import (
8 build_status_from_logs,
13 from buildfarm.hostdb import NoSuchHost
15 from buildfarm.sqldb import StormCachingBuildFarm, StormBuild
17 buildfarm = StormCachingBuildFarm()
19 store = buildfarm._get_store()
21 for build in store.find(StormBuild, StormBuild.status_str == None):
23 log = build.read_log()
24 except LogFileMissing:
25 print "Killing build %r without status string or log." % build
29 err = build.read_err()
31 status = build_status_from_logs(log, err)
36 build.status_str = status.__serialize__()
37 print "Updating status for %r" % build
40 for build in store.find(StormBuild, StormBuild.revision == None):
42 log = build.read_log()
43 except LogFileMissing:
44 print "Killing build %r without revision or log." % build
48 revision = revision_from_log(log)
49 except MissingRevisionInfo:
52 build.revision = revision
53 print "Updating revision for %r" % build
55 for build in store.find(StormBuild, StormBuild.host_id == None):
57 build.host_id = buildfarm.hostdb[build.host].id
59 print "Unable to find host %s" % e.name