def upgradeMaster(config, _noMonkey=False): if not _noMonkey: # pragma: no cover monkeypatches.patch_all() if not base.checkBasedir(config): defer.returnValue(1) return os.chdir(config['basedir']) try: configFile = base.getConfigFileFromTac(config['basedir']) except (SyntaxError, ImportError) as e: print("Unable to load 'buildbot.tac' from '%s':" % config['basedir']) print(e) defer.returnValue(1) return master_cfg = base.loadConfig(config, configFile) if not master_cfg: defer.returnValue(1) return upgradeFiles(config) yield upgradeDatabase(config, master_cfg) if not config['quiet']: print("upgrade complete") defer.returnValue(0)
def _cleanupDatabase(config, _noMonkey=False): if not base.checkBasedir(config): defer.returnValue(1) return config['basedir'] = os.path.abspath(config['basedir']) os.chdir(config['basedir']) with base.captureErrors((SyntaxError, ImportError), "Unable to load 'buildbot.tac' from '%s':" % (config['basedir'], )): configFile = base.getConfigFileFromTac(config['basedir']) with base.captureErrors( config_module.ConfigErrors, "Unable to load '%s' from '%s':" % (configFile, config['basedir'])): master_cfg = base.loadConfig(config, configFile) if not master_cfg: defer.returnValue(1) return yield doCleanupDatabase(config, master_cfg) if not config['quiet']: print("cleanup complete") defer.returnValue(0)
def _cleanupDatabase(config, _noMonkey=False): if not base.checkBasedir(config): return 1 config['basedir'] = os.path.abspath(config['basedir']) os.chdir(config['basedir']) with base.captureErrors( (SyntaxError, ImportError), f"Unable to load 'buildbot.tac' from '{config['basedir']}':"): configFile = base.getConfigFileFromTac(config['basedir']) with base.captureErrors( config_module.ConfigErrors, f"Unable to load '{configFile}' from '{config['basedir']}':"): master_cfg = base.loadConfig(config, configFile) if not master_cfg: return 1 yield doCleanupDatabase(config, master_cfg) if not config['quiet']: print("cleanup complete") return 0
def _cleanupDatabase(config, _noMonkey=False): if not base.checkBasedir(config): defer.returnValue(1) return config["basedir"] = os.path.abspath(config["basedir"]) os.chdir(config["basedir"]) with base.captureErrors( (SyntaxError, ImportError), "Unable to load 'buildbot.tac' from '%s':" % (config["basedir"],) ): configFile = base.getConfigFileFromTac(config["basedir"]) with base.captureErrors( config_module.ConfigErrors, "Unable to load '%s' from '%s':" % (configFile, config["basedir"]) ): master_cfg = base.loadConfig(config, configFile) if not master_cfg: defer.returnValue(1) return yield doCleanupDatabase(config, master_cfg) if not config["quiet"]: print("cleanup complete") defer.returnValue(0)
def test_loadConfig_exception(self): @classmethod def loadConfig(cls): raise RuntimeError() self.patch(config_module.FileLoader, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIdentical(cfg, None) self.assertInStdout('RuntimeError')
def test_loadConfig_ConfigErrors(self): @classmethod def loadConfig(cls): raise config_module.ConfigErrors(['oh noes']) self.patch(config_module.FileLoader, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIdentical(cfg, None) self.assertInStdout('oh noes')
def test_loadConfig(self): @classmethod def loadConfig(cls): return config_module.MasterConfig() self.patch(config_module.FileLoader, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIsInstance(cfg, config_module.MasterConfig) self.assertInStdout('checking')
def test_loadConfig_exception(self): @classmethod def loadConfig(cls): raise RuntimeError() self.patch(config_master.FileLoader, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIdentical(cfg, None) self.assertInStdout('RuntimeError')
def test_loadConfig_ConfigErrors(self): @classmethod def loadConfig(cls): raise config_master.ConfigErrors(['oh noes']) self.patch(config_master.FileLoader, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIdentical(cfg, None) self.assertInStdout('oh noes')
def test_loadConfig(self): @classmethod def loadConfig(cls): return config_master.MasterConfig() self.patch(config_master.FileLoader, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIsInstance(cfg, config_master.MasterConfig) self.assertInStdout('checking')
def test_loadConfig_exception(self): @classmethod def loadConfig(cls, basedir, filename): raise RuntimeError() self.patch(config_module.MasterConfig, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIdentical(cfg, None) self.assertInStdout('RuntimeError')
def test_loadConfig_ConfigErrors(self): @classmethod def loadConfig(cls, basedir, filename): raise config_module.ConfigErrors(['oh noes']) self.patch(config_module.MasterConfig, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIdentical(cfg, None) self.assertInStdout('oh noes')
def test_loadConfig(self): @classmethod def loadConfig(cls, basedir, filename): return config_module.MasterConfig() self.patch(config_module.MasterConfig, 'loadConfig', loadConfig) cfg = base.loadConfig(mkconfig()) self.assertIsInstance(cfg, config_module.MasterConfig) self.assertInStdout('checking')
def upgradeMaster(config, _noMonkey=False): if not _noMonkey: # pragma: no cover monkeypatches.patch_all() if not base.checkBasedir(config): return defer.succeed(1) os.chdir(config["basedir"]) try: configFile = base.getConfigFileFromTac(config["basedir"]) except (SyntaxError, ImportError): print("Unable to load 'buildbot.tac' from '%s':" % config["basedir"], file=sys.stderr) e = traceback.format_exc() print(e, file=sys.stderr) return defer.succeed(1) master_cfg = base.loadConfig(config, configFile) if not master_cfg: return defer.succeed(1) return _upgradeMaster(config, master_cfg)
def upgradeMaster(config, _noMonkey=False): if not _noMonkey: # pragma: no cover monkeypatches.patch_all() if not base.checkBasedir(config): return defer.succeed(1) os.chdir(config['basedir']) try: configFile = base.getConfigFileFromTac(config['basedir']) except (SyntaxError, ImportError): print("Unable to load 'buildbot.tac' from '{}':".format(config['basedir'], file=sys.stderr)) e = traceback.format_exc() print(e, file=sys.stderr) return defer.succeed(1) master_cfg = base.loadConfig(config, configFile) if not master_cfg: return defer.succeed(1) return _upgradeMaster(config, master_cfg)