Fixes bugs for integration with MON module
[osm/MON.git] / policy_module / osm_policy_module / cmd / policy_module_agent.py
1 import argparse
2 import logging
3 import sys
4
5 from osm_policy_module.core.agent import PolicyModuleAgent
6 from osm_policy_module.core.config import Config
7 from osm_policy_module.core.database import DatabaseManager
8
9
10 def main():
11 cfg = Config.instance()
12 parser = argparse.ArgumentParser(prog='pm-scaling-config-agent')
13 parser.add_argument('--config-file', nargs='?', help='Policy module agent configuration file')
14 args = parser.parse_args()
15 if args.config_file:
16 cfg.load_file(args.config_file)
17 # TODO: Handle different log levels in config
18 if cfg.get('policy_module', 'log_dir') == 'stdout':
19 logging.basicConfig(stream=sys.stdout,
20 format='%(asctime)s %(message)s',
21 datefmt='%m/%d/%Y %I:%M:%S %p',
22 level=logging.INFO)
23 else:
24 logging.basicConfig(filename=cfg.get('policy_module', 'log_dir') + 'pm_agent.log',
25 format='%(asctime)s %(message)s',
26 datefmt='%m/%d/%Y %I:%M:%S %p', filemode='a',
27 level=logging.INFO)
28 log = logging.getLogger(__name__)
29 log.info("Syncing database...")
30 db_manager = DatabaseManager()
31 db_manager.create_tables()
32 log.info("Starting policy module agent...")
33 agent = PolicyModuleAgent()
34 agent.run()
35
36
37 if __name__ == '__main__':
38 main()