def upgradeMaster(config): basedir = os.path.expanduser(config['basedir']) m = Maker(config) # TODO: check Makefile # TODO: check TAC file # check web files: index.html, default.css, robots.txt m.upgrade_public_html({ 'bg_gradient.jpg' : util.sibpath(__file__, "../status/web/files/bg_gradient.jpg"), 'default.css' : util.sibpath(__file__, "../status/web/files/default.css"), 'robots.txt' : util.sibpath(__file__, "../status/web/files/robots.txt"), }) m.populate_if_missing(os.path.join(basedir, "master.cfg.sample"), util.sibpath(__file__, "sample.cfg"), overwrite=True) # if index.html exists, use it to override the root page tempalte m.move_if_present(os.path.join(basedir, "public_html/index.html"), os.path.join(basedir, "templates/root.html")) from buildbot.db import create_or_upgrade_db, DBSpec dbspec = DBSpec.from_url(config["db"], basedir) # TODO: check that TAC file specifies the right spec db = create_or_upgrade_db(dbspec) db.start() # if we still have a changes.pck, then we need to migrate it changes_pickle = os.path.join(basedir, "changes.pck") if os.path.exists(changes_pickle): if not config['quiet']: print "migrating changes.pck to database" migrate_changes_pickle_to_db(changes_pickle, db, silent=config['quiet']) if not config['quiet']: print "moving old changes.pck to changes.pck.old" os.rename(changes_pickle, changes_pickle+".old") db.stop() rc = m.check_master_cfg() if rc: return rc if not config['quiet']: print "upgrade complete" return 0
def create_db(self): from buildbot.db import create_db, DBSpec dbspec = DBSpec.from_url(self.config["db"], self.basedir) if not self.config['quiet']: print "creating database" create_db(dbspec)