import subprocess # # Check if config contains all the listed params # def contains(params, config): for p in params: if p not in config: return False return True # Check if a config boolean is set def configtrue(name, config): if name in config and config[name]: return True return False # Get a configuration variable, check overrides, first, the defaults def getconfigvar(name, config, target, stepnum): step = "step" + str(stepnum) if target in config['overrides']: if step in config['overrides'][target] and name in config['overrides'][target][step]: return config['overrides'][target][step][name] if name in config['overrides'][target]: return config['overrides'][target][name] if name in config['defaults']: return config['defaults'][name] return False def getconfiglist(name, config, target, stepnum): ret = [] step = "step" + str(stepnum) if target in config['overrides']: if step in config['overrides'][target] and name in config['overrides'][target][step]: ret.extend(config['overrides'][target][step][name]) if name in config['overrides'][target]: ret.extend(config['overrides'][target][name]) if name in config['defaults']: ret.extend(config['defaults'][name]) return ret # # Run a command, trigger a traceback with command output if it fails # def runcmd(cmd): return subprocess.check_output(cmd, stderr=subprocess.STDOUT) def printheader(msg): print("\n\n") print("====================================================================================================") print(msg) print("====================================================================================================")