def run(raw_url, db_name, config_doc): db = Server(raw_url)[db_name] config = db.get(config_doc) if 'logger' in config: log_stream = db.get_attachment(config_doc, config['logger']) logging_conf = tempfile.NamedTemporaryFile(delete=False) logging_conf.write(log_stream.read()) logging_conf.close() logging.config.fileConfig(logging_conf.name) os.unlink(logging_conf.name) def get_component(name): components = name.split('.') mod = __import__('.'.join(components[:-1])) for comp in components[1:]: mod = getattr(mod, comp) return mod mal_cls = get_component(config['maldriver']) predictor_cls = get_component(config['predictor']) planner_cls = get_component(config['planner']) scaler_cls = get_component(config['scaler']) with daemon.DaemonContext(): pass