also, make CONF accessible via RyuApp.CONF.
add a comment to explain the intention.

Signed-off-by: YAMAMOTO Takashi <[email protected]>
---
 ryu/base/app_manager.py |  2 ++
 ryu/cfg.py              | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)
 create mode 100644 ryu/cfg.py

diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py
index 31e9998..669e58b 100644
--- a/ryu/base/app_manager.py
+++ b/ryu/base/app_manager.py
@@ -19,6 +19,7 @@ import itertools
 import logging
 import sys
 
+from ryu import cfg
 from ryu import utils
 from ryu.controller.handler import register_instance, get_dependent_services
 from ryu.controller.controller import Datapath
@@ -120,6 +121,7 @@ class RyuApp(object):
             self.logger = logging.getLogger(self.__class__.LOGGER_NAME)
         else:
             self.logger = logging.getLogger(self.name)
+        self.CONF = cfg.CONF
 
         # prevent accidental creation of instances of this class outside RyuApp
         class _EventThreadStop(event.EventBase):
diff --git a/ryu/cfg.py b/ryu/cfg.py
new file mode 100644
index 0000000..871533c
--- /dev/null
+++ b/ryu/cfg.py
@@ -0,0 +1,35 @@
+# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2014 YAMAMOTO Takashi <yamamoto 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.
+
+import oslo.config.cfg
+
+# there are 3 ways to access the configuration.
+#
+#    a. ryu.cfg.CONF  (used to register cli options)
+#    b. RyuApp.CONF  (preferred way for ryu applications)
+#    c. oslo.config.cfg.CONF
+#
+# Currently all of above shares a single ConfigOpts instance.
+# We will unshare c. (and stop using it) as soon as ofagent neutron agent
+# is updated.
+# We want to avoid using c. for our options as a python program which embeds
+# ryu applications (eg. neutron agent) might want to its own set of cli
+# options into it, which can conflict with ours.  (Currently there seems
+# no conflict for the neutron agent.  But who knows?)
+# At some point later we might want to unshare a. and b. as well, in order
+# to allow app-specific options.
+
+CONF = oslo.config.cfg.CONF
-- 
1.8.3.1


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to