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 |
0 |
import argparse |
25 |
0 |
import asyncio |
26 |
0 |
import logging |
27 |
0 |
import sys |
28 |
0 |
import os |
29 |
|
|
30 |
0 |
from osm_policy_module.core.agent import PolicyModuleAgent |
31 |
0 |
from osm_policy_module.core.config import Config |
32 |
0 |
from osm_policy_module.core.database import DatabaseManager |
33 |
|
|
34 |
|
|
35 |
0 |
def main(): |
36 |
|
# Cleanup old temp health file |
37 |
0 |
if os.path.exists('/tmp/osm_pol_agent_health_flag'): |
38 |
0 |
os.remove('/tmp/osm_pol_agent_health_flag') |
39 |
|
|
40 |
0 |
parser = argparse.ArgumentParser(prog='osm-policy-agent') |
41 |
0 |
parser.add_argument('--config-file', nargs='?', help='POL configuration file') |
42 |
0 |
args = parser.parse_args() |
43 |
0 |
cfg = Config(args.config_file) |
44 |
|
|
45 |
0 |
root = logging.getLogger() |
46 |
0 |
root.setLevel(logging.getLevelName(cfg.get('global', 'loglevel'))) |
47 |
0 |
ch = logging.StreamHandler(sys.stdout) |
48 |
0 |
ch.setLevel(logging.getLevelName(cfg.get('global', 'loglevel'))) |
49 |
0 |
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s', '%m/%d/%Y %I:%M:%S %p') |
50 |
0 |
ch.setFormatter(formatter) |
51 |
0 |
root.addHandler(ch) |
52 |
|
|
53 |
0 |
log = logging.getLogger(__name__) |
54 |
0 |
log.debug("Config: %s", cfg.conf) |
55 |
0 |
log.info("Initializing database...") |
56 |
0 |
db_manager = DatabaseManager(cfg) |
57 |
0 |
db_manager.create_tables() |
58 |
0 |
log.info("Database initialized correctly.") |
59 |
0 |
log.info("Starting policy module agent...") |
60 |
0 |
loop = asyncio.get_event_loop() |
61 |
0 |
agent = PolicyModuleAgent(cfg, loop) |
62 |
0 |
agent.run() |
63 |
|
|
64 |
|
|
65 |
0 |
if __name__ == '__main__': |
66 |
0 |
main() |