from buildbot.plugins import util import logging import sys import os from BuildBotLib.buildBotIdentity import BuildBotIdentity from BuildBotLib.buildBotServices import BuildBotServices from BuildBotLib.buildBotWorkers import BuildBotWorkers from BuildBotLib.buildBotDB import BuildBotDB from BuildBotLib.buildBotShedulers import BuildBotShedulers from BuildBotLib.buildBotChangeSource import BuildBotChangeSource dir_path = os.path.dirname(os.path.realpath(__file__)) sys.path.append(dir_path) class BuildBot: def __init__(self): self.masterConf = {} self.masterConf['builders'] = [] self.masterConf['schedulers'] = [] self.masterConf['change_source'] = [] # WORKERS self.workers = BuildBotWorkers(self.masterConf) self.masterConf.update(self.workers.getMasterConf()) # BUILDBOT SERVICES self.services = BuildBotServices(self.masterConf) self.masterConf.update(self.services.getMasterConf()) # PROJECT IDENTITY self.identity = BuildBotIdentity(self.masterConf) self.masterConf.update(self.identity.getMasterConf()) # DB URL self.db = BuildBotDB(self.masterConf) self.masterConf.update(self.db.getMasterConf()) # change_source self.sources = BuildBotChangeSource(self.masterConf) self.masterConf.update(self.sources.getMasterConf()) # Shedulers self.shedulers = BuildBotShedulers(self.masterConf) def addBuilder(self, worker, factory): self.masterConf['builders'].append( util.BuilderConfig( name=worker, workernames=[worker], factory=factory.getFactory().source() ) ) self.shedulers.addScheduler(factory.getPropertyes(), worker) def addService(self, service): logging.error("addService not support!") def getMaster(self): self.masterConf.update(self.shedulers.initScheduler()) return self.masterConf