summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIWASE Yusuke <iwase.yusuke0@gmail.com>2017-06-15 14:31:29 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2017-06-22 16:08:33 +0900
commit388a97ef6d87f736359cc691492be3b1febb323c (patch)
treeec142d6f4f6b12c231bdb94d75d0f545134b7b54
parent0f1430edfd80fb501f4f5324c84e55875e340a6d (diff)
manager: Introduce user flags option
This patch introduces "--user-flags" option which enable to add user original CLI or config file options for their own Ryu applications. Usage Example) $ cat user_flags.py from ryu import cfg CONF = cfg.CONF CONF.register_cli_opts([ cfg.StrOpt( 'user-cli-opt', default=None, help='user original CLI option'), ]) $ ryu-manager --user-flags user_flags.py user_app.py Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rwxr-xr-xryu/cmd/manager.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/ryu/cmd/manager.py b/ryu/cmd/manager.py
index dc7aca88..797d8d5f 100755
--- a/ryu/cmd/manager.py
+++ b/ryu/cmd/manager.py
@@ -16,6 +16,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import os
+import sys
+
from ryu.lib import hub
hub.patch(thread=False)
@@ -43,10 +46,28 @@ CONF.register_cli_opts([
cfg.BoolOpt('enable-debugger', default=False,
help='don\'t overwrite Python standard threading library'
'(use only for debugging)'),
+ cfg.StrOpt('user-flags', default=None,
+ help='Additional flags file for user applications'),
])
+def _parse_user_flags():
+ """
+ Parses user-flags file and loads it to register user defined options.
+ """
+ try:
+ idx = list(sys.argv).index('--user-flags')
+ user_flags_file = sys.argv[idx + 1]
+ except (ValueError, IndexError):
+ user_flags_file = ''
+
+ if user_flags_file and os.path.isfile(user_flags_file):
+ from ryu.utils import _import_module_file
+ _import_module_file(user_flags_file)
+
+
def main(args=None, prog=None):
+ _parse_user_flags()
try:
CONF(args=args, prog=prog,
project='ryu', version='ryu-manager %s' % version,
@@ -65,7 +86,6 @@ def main(args=None, prog=None):
hub.patch(thread=True)
if CONF.pid_file:
- import os
with open(CONF.pid_file, 'w') as pid_file:
pid_file.write(str(os.getpid()))