From 85a341d645b57b7cd88a26ed2ea0a314704240ea Mon Sep 17 00:00:00 2001 From: Jordan Augé Date: Fri, 24 Feb 2017 14:58:01 +0100 Subject: Initial commit: vICN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I7ce66c4e84a6a1921c63442f858b49e083adc7a7 Signed-off-by: Jordan Augé --- netmon/__init__.py | 0 netmon/bin/__init__.py | 0 netmon/bin/netmon.py | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 netmon/__init__.py create mode 100644 netmon/bin/__init__.py create mode 100755 netmon/bin/netmon.py (limited to 'netmon') diff --git a/netmon/__init__.py b/netmon/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/netmon/bin/__init__.py b/netmon/bin/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/netmon/bin/netmon.py b/netmon/bin/netmon.py new file mode 100755 index 00000000..65ef9f8d --- /dev/null +++ b/netmon/bin/netmon.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (c) 2017 Cisco and/or its affiliates. +# +# 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. +# + +import asyncio +import logging +import os +import sys + +PATH=os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir) +sys.path.insert(0, os.path.abspath(PATH)) + +from netmodel.network.interfaces +from netmodel.network.router import Router +from netmodel.model.query import Query, ACTION_SELECT, ACTION_SUBSCRIBE +from netmodel.util.daemon import Daemon +from netmodel.util.log import initialize_logging + +log = logging.getLogger(__name__) + +class RouterDaemon(Daemon): + + def initialize(self): + log.info("Starting RouterServer") + + initialize_logging() + register_interfaces() + + self._router = Router() + + self._router.add_interface('websocketserver') + self._router.add_interface('bwm') + self._router.add_interface('local', router = self._router) + + + def main(self): + loop = asyncio.get_event_loop() + try: + loop.run_forever() + except KeyboardInterrupt: + pass + except Exception as e: + import traceback + traceback.print_exc() + + def terminate(self): + """ + Function called when the RouterDaemon must stops. + """ + try: + log.info("Stopping gracefully RouterServer") + self._router.terminate() + except AttributeError: + # self._router_server may not exists for instance if the + # socket is already in use. + pass + +def main(): + RouterDaemon('router', no_daemon = True).start() + +if __name__ == "__main__": + main() -- cgit 1.2.3-korg