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): 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 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 test_getConfigFileFromTac_fallback(self): """ When L{getConfigFileFromTac} is passed a C{basedir} which doesn't contain a C{buildbot.tac}, it returns C{master.cfg} """ foundConfigFile = base.getConfigFileFromTac(basedir=self.basedir) self.assertEqual(foundConfigFile, 'master.cfg')
def test_getConfigFileFromTac_fallback(self): """ When L{getConfigFileFromTac} is passed a C{basedir} which doesn't contain a C{buildbot.tac}, it returns C{master.cfg} """ foundConfigFile = base.getConfigFileFromTac(basedir=self.basedir) self.assertEqual(foundConfigFile, "master.cfg")
def test_getConfigFileFromTac_tacWithoutConfigFile(self): """ When L{getConfigFileFromTac} is passed a C{basedir} containing a C{buildbot.tac}, but C{buildbot.tac} doesn't define C{configfile}, L{getConfigFileFromTac} returns C{master.cfg} """ self._createBuildbotTac() foundConfigFile = base.getConfigFileFromTac(basedir=self.basedir) self.assertEqual(foundConfigFile, "master.cfg")
def test_getConfigFileFromTac(self): """ When L{getConfigFileFromTac} is passed a C{basedir} containing a C{buildbot.tac}, it reads the location of the config file from there. """ self._createBuildbotTac("configfile='other.cfg'") foundConfigFile = base.getConfigFileFromTac(basedir=self.basedir) self.assertEqual(foundConfigFile, "other.cfg")
def test_getConfigFileFromTac_tacWithoutConfigFile(self): """ When L{getConfigFileFromTac} is passed a C{basedir} containing a C{buildbot.tac}, but C{buildbot.tac} doesn't define C{configfile}, L{getConfigFileFromTac} returns C{master.cfg} """ self._createBuildbotTac() foundConfigFile = base.getConfigFileFromTac(basedir=self.basedir) self.assertEqual(foundConfigFile, 'master.cfg')
def test_getConfigFileFromTac_usingFile(self): """ Wehn L{getConfigFileFromTac} is passed a C{basedir} containing a C{buildbot.tac} which references C{__file__}, that reference points to C{buildbot.tac}. """ self._createBuildbotTac(textwrap.dedent(""" from twisted.python.util import sibpath configfile = sibpath(__file__, "relative.cfg") """)) foundConfigFile = base.getConfigFileFromTac(basedir=self.basedir) self.assertEqual(foundConfigFile, os.path.join(self.basedir, "relative.cfg"))
def checkconfig(config): quiet = config.get('quiet') configFile = config.get('configFile') if os.path.isdir(configFile): basedir = configFile try: configFile = getConfigFileFromTac(basedir) except (SyntaxError, ImportError), e: if not quiet: print "Unable to load 'buildbot.tac' from '%s':" % basedir print e return 1
def checkconfig(config): quiet = config.get('quiet') configFile = config.get('configFile', os.getcwd()) if os.path.isdir(configFile): basedir = configFile try: configFile = getConfigFileFromTac(basedir) except (SyntaxError, ImportError), e: if not quiet: print "Unable to load 'buildbot.tac' from '%s':" % basedir print e return 1
def upgradeMaster(config, _noMonkey=False): if not _noMonkey: # pragma: no cover monkeypatches.patch_all() if not checkBasedir(config): defer.returnValue(1) return os.chdir(config['basedir']) try: configFile = base.getConfigFileFromTac(config['basedir']) except (SyntaxError, ImportError), e: print "Unable to load 'buildbot.tac' from '%s':" % config['basedir'] print e defer.returnValue(1) return
def checkconfig(config): quiet = config.get('quiet') configFile = config.get('configFile', os.getcwd()) if os.path.isdir(configFile): basedir = configFile try: configFile = getConfigFileFromTac(basedir, quiet=quiet) except Exception: if not quiet: # the exception is already printed in base.py print("Unable to load 'buildbot.tac' from '%s':" % basedir) return 1 else: basedir = os.getcwd() return _loadConfig(basedir=basedir, configFile=configFile, quiet=quiet)
def checkconfig(config): quiet = config.get('quiet') configFile = config.get('configFile', os.getcwd()) if os.path.isdir(configFile): basedir = configFile try: configFile = getConfigFileFromTac(basedir) except (SyntaxError, ImportError) as e: if not quiet: print("Unable to load 'buildbot.tac' from '%s':" % basedir) print(e) return 1 else: basedir = os.getcwd() return _loadConfig(basedir=basedir, configFile=configFile, quiet=quiet)
def checkconfig(config): quiet = config.get("quiet") configFile = config.get("configFile", os.getcwd()) if os.path.isdir(configFile): basedir = configFile try: configFile = getConfigFileFromTac(basedir) except (SyntaxError, ImportError) as e: if not quiet: print("Unable to load 'buildbot.tac' from '%s':" % basedir) print(e) return 1 else: basedir = os.getcwd() return _loadConfig(basedir=basedir, configFile=configFile, quiet=quiet)
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)
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)