backing up
[vsorcdistro/.git] / ryu / build / lib.linux-armv7l-2.7 / ryu / services / protocols / bgp / api / operator.py
diff --git a/ryu/build/lib.linux-armv7l-2.7/ryu/services/protocols/bgp/api/operator.py b/ryu/build/lib.linux-armv7l-2.7/ryu/services/protocols/bgp/api/operator.py
new file mode 100644 (file)
index 0000000..c0992d9
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation.
+#
+# 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.
+
+"""
+ Api for operator. Mainly commands to build CLI and
+ operator interface around them.
+"""
+import logging
+
+from ryu.services.protocols.bgp.api.base import ApiException
+from ryu.services.protocols.bgp.api.base import register
+from ryu.services.protocols.bgp.api.rpc_log_handler import RpcLogHandler
+from ryu.services.protocols.bgp.operator.command import Command
+from ryu.services.protocols.bgp.operator.command import STATUS_ERROR
+from ryu.services.protocols.bgp.operator.commands.clear import ClearCmd
+from ryu.services.protocols.bgp.operator.commands.set import SetCmd
+from ryu.services.protocols.bgp.operator.commands.show import ShowCmd
+from ryu.services.protocols.bgp.operator.internal_api import InternalApi
+
+LOG = logging.getLogger('bgpspeaker.api.rtconf')
+
+DEFAULT_LOG_FORMAT = '%(asctime)s %(levelname)s %(message)s'
+
+
+def _init_log_handler():
+    log_handler = RpcLogHandler()
+    log_handler.setLevel(logging.ERROR)
+    log_handler.formatter = logging.Formatter(DEFAULT_LOG_FORMAT)
+    return log_handler
+
+
+INTERNAL_API = InternalApi(_init_log_handler())
+
+
+class RootCmd(Command):
+    subcommands = {
+        'show': ShowCmd,
+        'set': SetCmd,
+        'clear': ClearCmd}
+
+
+def operator_run(cmd, **kwargs):
+    params = kwargs.get('params', [])
+    fmt = kwargs.get('format', 'json')
+    root = RootCmd(api=INTERNAL_API, resp_formatter_name=fmt)
+    ret, _ = root([cmd] + params)
+    if ret.status == STATUS_ERROR:
+        raise ApiException(str(ret.value))
+    return ret.value
+
+
+@register(name="operator.show")
+def operator_show(**kwargs):
+    return operator_run('show', **kwargs)
+
+
+@register(name="operator.set")
+def operator_set(**kwargs):
+    return operator_run('set', **kwargs)
+
+
+@register(name="operator.clear")
+def operator_clear(**kwargs):
+    return operator_run('clear', **kwargs)