X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcmd%2Fmon_server.py;h=23d7a7cffedc33e393bd3672c66bab3afadc4d4f;hb=bfeec3447fc7ec49f774f9715dea8b3c6a79d955;hp=34fe0b1c57df653c44a48886e05eb3186ee20679;hpb=b525e6c8619d494d4e254def394cf5b62de4df4a;p=osm%2FMON.git diff --git a/osm_mon/cmd/mon_server.py b/osm_mon/cmd/mon_server.py index 34fe0b1..23d7a7c 100644 --- a/osm_mon/cmd/mon_server.py +++ b/osm_mon/cmd/mon_server.py @@ -21,37 +21,44 @@ # For those usages not covered by the Apache License, Version 2.0 please # contact: bdiaz@whitestack.com or glavado@whitestack.com ## +import argparse +import asyncio import logging import sys -from osm_mon.core.database import DatabaseManager -from osm_mon.core.settings import Config +from osm_mon.core.config import Config from osm_mon.server.server import Server +from osm_mon.cmd.mon_utils import wait_till_core_services_are_ready def main(): - cfg = Config.instance() + parser = argparse.ArgumentParser(prog='osm-mon-server') + parser.add_argument('--config-file', nargs='?', help='MON configuration file') + args = parser.parse_args() + cfg = Config(args.config_file) root = logging.getLogger() - root.setLevel(logging.getLevelName(cfg.OSMMON_LOG_LEVEL)) + root.setLevel(logging.getLevelName(cfg.get('global', 'loglevel'))) ch = logging.StreamHandler(sys.stdout) - ch.setLevel(logging.getLevelName(cfg.OSMMON_LOG_LEVEL)) + ch.setLevel(logging.getLevelName(cfg.get('global', 'loglevel'))) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s', '%m/%d/%Y %I:%M:%S %p') ch.setFormatter(formatter) root.addHandler(ch) - kafka_logger = logging.getLogger('kafka') - kafka_logger.setLevel(logging.getLevelName(cfg.OSMMON_KAFKA_LOG_LEVEL)) - log = logging.getLogger(__name__) - log.info("Starting MON Server...") - log.debug("Config: %s", vars(cfg)) - log.info("Initializing database...") - db_manager = DatabaseManager() - db_manager.create_tables() - log.info("Database initialized correctly.") - server = Server() - server.run() + if wait_till_core_services_are_ready(cfg, "osm-mon-server"): + log.info("Starting MON Server...") + log.debug("Config: %s", cfg.conf) + log.info("Initializing database...") + loop = asyncio.get_event_loop() + try: + server = Server(cfg, loop) + server.run() + except Exception as e: + log.error("Failed to start MON Server") + log.debug("Exception: %s", str(e)) + else: + log.error("Failed to start MON Server") if __name__ == '__main__':