24663e5cab7184f7dd53ec7d4e6bd5ca1523756b
[osm/POL.git] / osm_policy_module / cmd / policy_module_agent.py
1 # -*- coding: utf-8 -*-
2
3 # Copyright 2018 Whitestack, LLC
4 # *************************************************************
5
6 # This file is part of OSM Monitoring module
7 # All Rights Reserved to Whitestack, LLC
8
9 # Licensed under the Apache License, Version 2.0 (the "License"); you may
10 # not use this file except in compliance with the License. You may obtain
11 # a copy of the License at
12
13 # http://www.apache.org/licenses/LICENSE-2.0
14
15 # Unless required by applicable law or agreed to in writing, software
16 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
18 # License for the specific language governing permissions and limitations
19 # under the License.
20
21 # For those usages not covered by the Apache License, Version 2.0 please
22 # contact: bdiaz@whitestack.com or glavado@whitestack.com
23 ##
24 import argparse
25 import logging
26 import sys
27
28 from osm_policy_module.core.agent import PolicyModuleAgent
29 from osm_policy_module.core.config import Config
30 from osm_policy_module.core.database import DatabaseManager
31
32
33 def main():
34 cfg = Config.instance()
35 parser = argparse.ArgumentParser(prog='pm-scaling-config-agent')
36 parser.add_argument('--config-file', nargs='?', help='Policy module agent configuration file')
37 args = parser.parse_args()
38 if args.config_file:
39 cfg.load_file(args.config_file)
40 log_formatter_str = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
41 logging.basicConfig(stream=sys.stdout,
42 format=log_formatter_str,
43 datefmt='%m/%d/%Y %I:%M:%S %p',
44 level=logging.getLevelName(cfg.OSMPOL_LOG_LEVEL))
45 kafka_logger = logging.getLogger('kafka')
46 kafka_logger.setLevel(logging.WARN)
47 kafka_formatter = logging.Formatter(log_formatter_str)
48 kafka_handler = logging.StreamHandler(sys.stdout)
49 kafka_handler.setFormatter(kafka_formatter)
50 kafka_logger.addHandler(kafka_handler)
51 log = logging.getLogger(__name__)
52 log.info("Config: %s", cfg)
53 log.info("Syncing database...")
54 db_manager = DatabaseManager()
55 db_manager.create_tables()
56 log.info("Database synced correctly.")
57 log.info("Starting policy module agent...")
58 agent = PolicyModuleAgent()
59 agent.run()
60
61
62 if __name__ == '__main__':
63 main()