X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=policy_module%2Fosm_policy_module%2Fcmd%2Fpolicy_module_agent.py;h=ac0316750637f09a4c28ed8af48efc6b3446f504;hb=a2a74d3467667f5cfd3f8e91edbf432df7dcc2d2;hp=711691384e767892a5629245ce653b6ed7023415;hpb=62781ff00b30790610cf4cc2ef5ed5422c571e10;p=osm%2FMON.git diff --git a/policy_module/osm_policy_module/cmd/policy_module_agent.py b/policy_module/osm_policy_module/cmd/policy_module_agent.py index 7116913..ac03167 100644 --- a/policy_module/osm_policy_module/cmd/policy_module_agent.py +++ b/policy_module/osm_policy_module/cmd/policy_module_agent.py @@ -1,10 +1,34 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Whitestack, LLC +# ************************************************************* + +# This file is part of OSM Monitoring module +# All Rights Reserved to Whitestack, LLC + +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# For those usages not covered by the Apache License, Version 2.0 please +# contact: bdiaz@whitestack.com or glavado@whitestack.com +## import argparse import logging import sys - -from osm_policy_module.core.config import Config +import logstash from osm_policy_module.core.agent import PolicyModuleAgent +from osm_policy_module.core.config import Config +from osm_policy_module.core.database import DatabaseManager def main(): @@ -14,17 +38,40 @@ def main(): args = parser.parse_args() if args.config_file: cfg.load_file(args.config_file) + # TODO: Handle different log levels in config if cfg.get('policy_module', 'log_dir') == 'stdout': logging.basicConfig(stream=sys.stdout, format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p', - level=logging._nameToLevel[cfg.get('policy_module', 'log_level')]) + level=logging.INFO) else: logging.basicConfig(filename=cfg.get('policy_module', 'log_dir') + 'pm_agent.log', format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p', filemode='a', - level=logging._nameToLevel[cfg.get('policy_module', 'log_level')]) + level=logging.INFO) + if cfg.get('policy_module', 'enable_logstash_handler') == 'true': + logstash_host = cfg.get('policy_module', 'logstash_host') + logstash_port = int(cfg.get('policy_module', 'logstash_port')) + root_logger = logging.getLogger() + root_logger.addHandler(logstash.TCPLogstashHandler(logstash_host, logstash_port, version=1)) + root_logger.info("Logstash handler configured.") + kafka_logger = logging.getLogger('kafka') + kafka_logger.setLevel(logging.WARN) + kafka_formatter = logging.Formatter( + '%(asctime)s - %(name)s - %(levelname)s - %(message)s') + kafka_handler = logging.StreamHandler(sys.stdout) + kafka_handler.setFormatter(kafka_formatter) + kafka_logger.addHandler(kafka_handler) log = logging.getLogger(__name__) + log.info("Config: %s", cfg) + log.info("Syncing database...") + db_manager = DatabaseManager() + db_manager.create_tables() + log.info("Database synced correctly.") log.info("Starting policy module agent...") agent = PolicyModuleAgent() agent.run() + + +if __name__ == '__main__': + main()