def buildStarted(self, builderName, build): log.msg("build started on %s" % builderName) builder = Builder.objects.get(master=dbm, name=builderName) slave, _ = Slave.objects.get_or_create(name=build.getSlavename()) ss = modelForSource(dbm, build.getSourceStamp()) starttime = timeHelper(build.getTimes()[0]) dbbuild, created = \ builder.builds.get_or_create(buildnumber=build.getNumber(), slave=slave, starttime=starttime, reason=build.getReason(), sourcestamp=ss) if not created: log.msg("%s build %d not created, endtime is %s" % (builderName, build.getNumber(), dbbuild.endtime)) log.msg("not watch this build, to make sure") return for key, value, source in build.getProperties().asList(): dbbuild.setProperty(key, value, source) dbbuild.save() transaction.commit() basedir = os.path.join(build.getBuilder().basedir, '..') return BuildReceiver(dbbuild, basedir)
def requestSubmitted(self, request): b, created = dbm.builders.get_or_create(name = request.getBuilderName()) ss = modelForSource(dbm, request.source) req = BuildRequest.objects.create(builder = b, submitTime = timeHelper(request.getSubmitTime()), sourcestamp = ss) transaction.commit() def addBuild(build): dbbuild = b.builds.get(buildnumber=build.getNumber()) dbbuild.requests.add(req) dbbuild.save() request.subscribe(addBuild)