diff options
author | Jordan Augé <jordan.auge+fdio@email.com> | 2017-02-24 14:58:01 +0100 |
---|---|---|
committer | Jordan Augé <jordan.auge+fdio@cisco.com> | 2017-02-24 18:36:29 +0000 |
commit | 85a341d645b57b7cd88a26ed2ea0a314704240ea (patch) | |
tree | bdda2b35003aae20103a796f86daced160b8a730 /netmon | |
parent | 9b30fc10fb1cbebe651e5a107e8ca5b24de54675 (diff) |
Initial commit: vICN
Change-Id: I7ce66c4e84a6a1921c63442f858b49e083adc7a7
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
Diffstat (limited to 'netmon')
-rw-r--r-- | netmon/__init__.py | 0 | ||||
-rw-r--r-- | netmon/bin/__init__.py | 0 | ||||
-rwxr-xr-x | netmon/bin/netmon.py | 76 |
3 files changed, 76 insertions, 0 deletions
diff --git a/netmon/__init__.py b/netmon/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netmon/__init__.py diff --git a/netmon/bin/__init__.py b/netmon/bin/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netmon/bin/__init__.py 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() |