def main(): parser = argparse.ArgumentParser(description="Send out broker notifications") parser.add_argument("-c", "--config", dest="config", help="location of the broker configuration file") parser.add_argument("--one_shot", action="store_true", help="do just a single run and then exit") parser.add_argument("--debug", action="store_true", help="turn on debug logs on stderr") opts = parser.parse_args() config = Config(configfile=opts.config) # These modules must be imported after the configuration has been # initialized from aquilon.aqdb.db_factory import DbFactory db = DbFactory() if opts.debug: level = logging.DEBUG logging.basicConfig(level=level, stream=sys.stderr, format='%(asctime)s [%(levelname)s] %(message)s') else: level = logging.INFO logfile = os.path.join(config.get("broker", "logdir"), "aq_notifyd.log") handler = WatchedFileHandler(logfile) handler.setLevel(level) formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s') handler.setFormatter(formatter) rootlog = logging.getLogger() rootlog.addHandler(handler) rootlog.setLevel(level) # Apply configured log settings for logname, level in config.items("logging"): if level not in logging._levelNames: continue logging.getLogger(logname).setLevel(logging._levelNames[level]) logger = logging.getLogger("aq_notifyd") if opts.one_shot: update_index_and_notify(config, logger, db) else: signal.signal(signal.SIGTERM, exit_handler) signal.signal(signal.SIGINT, exit_handler) run_loop(config, logger, db)