Signed-off-by: YAMAMOTO Takashi <[email protected]> --- bin/ryu-manager | 90 ----------------------------------------------------- ryu/cmd/__init__.py | 0 ryu/cmd/manager.py | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++ setup.cfg | 6 ++-- 4 files changed, 94 insertions(+), 92 deletions(-) delete mode 100755 bin/ryu-manager create mode 100644 ryu/cmd/__init__.py create mode 100755 ryu/cmd/manager.py
diff --git a/bin/ryu-manager b/bin/ryu-manager deleted file mode 100755 index cc1ea74..0000000 --- a/bin/ryu-manager +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (C) 2011, 2012 Nippon Telegraph and Telephone Corporation. -# Copyright (C) 2011 Isaku Yamahata <yamahata at valinux co jp> -# -# 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. - -from ryu.lib import hub -hub.patch() - -# TODO: -# Right now, we have our own patched copy of ovs python bindings -# Once our modification is upstreamed and widely deployed, -# use it -# -# NOTE: this modifies sys.path and thus affects the following imports. -# eg. oslo.config.cfg. -import ryu.contrib - -from oslo.config import cfg -import logging -import sys - -from ryu import log -log.early_init_log(logging.DEBUG) - -from ryu import flags -from ryu import version -from ryu.app import wsgi -from ryu.base.app_manager import AppManager -from ryu.controller import controller -from ryu.topology import switches - - -CONF = cfg.CONF -CONF.register_cli_opts([ - cfg.ListOpt('app-lists', default=[], - help='application module name to run'), - cfg.MultiStrOpt('app', positional=True, default=[], - help='application module name to run') -]) - - -def main(): - try: - CONF(project='ryu', version='ryu-manager %s' % version, - default_config_files=['/usr/local/etc/ryu/ryu.conf']) - except cfg.ConfigFilesNotFoundError: - CONF(project='ryu', version='ryu-manager %s' % version) - - log.init_log() - - # always enable ofp for now. - app_lists = CONF.app_lists + CONF.app + ['ryu.controller.ofp_handler'] - - app_mgr = AppManager() - app_mgr.load_apps(app_lists) - contexts = app_mgr.create_contexts() - app_mgr.instantiate_apps(**contexts) - - services = [] - - ctlr = controller.OpenFlowController() - thr = hub.spawn(ctlr) - services.append(thr) - - webapp = wsgi.start_service(app_mgr) - if webapp: - thr = hub.spawn(webapp) - services.append(thr) - - try: - hub.joinall(services) - finally: - app_mgr.close() - - -if __name__ == "__main__": - main() diff --git a/ryu/cmd/__init__.py b/ryu/cmd/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ryu/cmd/manager.py b/ryu/cmd/manager.py new file mode 100755 index 0000000..cc1ea74 --- /dev/null +++ b/ryu/cmd/manager.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# +# Copyright (C) 2011, 2012 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata <yamahata at valinux co jp> +# +# 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. + +from ryu.lib import hub +hub.patch() + +# TODO: +# Right now, we have our own patched copy of ovs python bindings +# Once our modification is upstreamed and widely deployed, +# use it +# +# NOTE: this modifies sys.path and thus affects the following imports. +# eg. oslo.config.cfg. +import ryu.contrib + +from oslo.config import cfg +import logging +import sys + +from ryu import log +log.early_init_log(logging.DEBUG) + +from ryu import flags +from ryu import version +from ryu.app import wsgi +from ryu.base.app_manager import AppManager +from ryu.controller import controller +from ryu.topology import switches + + +CONF = cfg.CONF +CONF.register_cli_opts([ + cfg.ListOpt('app-lists', default=[], + help='application module name to run'), + cfg.MultiStrOpt('app', positional=True, default=[], + help='application module name to run') +]) + + +def main(): + try: + CONF(project='ryu', version='ryu-manager %s' % version, + default_config_files=['/usr/local/etc/ryu/ryu.conf']) + except cfg.ConfigFilesNotFoundError: + CONF(project='ryu', version='ryu-manager %s' % version) + + log.init_log() + + # always enable ofp for now. + app_lists = CONF.app_lists + CONF.app + ['ryu.controller.ofp_handler'] + + app_mgr = AppManager() + app_mgr.load_apps(app_lists) + contexts = app_mgr.create_contexts() + app_mgr.instantiate_apps(**contexts) + + services = [] + + ctlr = controller.OpenFlowController() + thr = hub.spawn(ctlr) + services.append(thr) + + webapp = wsgi.start_service(app_mgr) + if webapp: + thr = hub.spawn(webapp) + services.append(thr) + + try: + hub.joinall(services) + finally: + app_mgr.close() + + +if __name__ == "__main__": + main() diff --git a/setup.cfg b/setup.cfg index e5a3803..fd49774 100644 --- a/setup.cfg +++ b/setup.cfg @@ -25,8 +25,6 @@ packages = data_files = etc/ryu = etc/ryu/ryu.conf -scripts = - bin/ryu-manager [build_sphinx] all_files = 1 @@ -47,3 +45,7 @@ doc_files = LICENSE setup-hooks = pbr.hooks.setup_hook ryu.hooks.setup_hook + +[entry_points] +console_scripts = + ryu-manager = ryu.cmd.manager:main -- 1.8.3.1 ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk _______________________________________________ Ryu-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ryu-devel
