Signed-off-by: Isaku Yamahata <[email protected]>
---
bin/ryu-manager | 10 ----------
ryu/app/cbench.py | 7 ++++---
ryu/app/event_dumper.py | 7 ++++---
ryu/app/rest.py | 10 ++++++++--
ryu/app/simple_isolation.py | 14 +++++++++++---
ryu/app/simple_switch.py | 13 +++++++++----
6 files changed, 36 insertions(+), 25 deletions(-)
diff --git a/bin/ryu-manager b/bin/ryu-manager
index a6944e2..b194768 100755
--- a/bin/ryu-manager
+++ b/bin/ryu-manager
@@ -31,8 +31,6 @@ from ryu import utils
from ryu.app import wsapi
from ryu.base.app_manager import AppManager
from ryu.controller import controller
-from ryu.controller import dpset
-from ryu.controller import network
FLAGS = gflags.FLAGS
@@ -49,17 +47,9 @@ def main():
_args = FLAGS(sys.argv)
log.init_log()
- # to make non-converted apps work. Once all of them converted,
- # this will be removed.
- kwargs = {
- 'network': network.Network(),
- 'dpset': dpset.DPSet(),
- }
-
app_mgr = AppManager()
app_mgr.load_apps(FLAGS.app_lists)
contexts = app_mgr.create_contexts()
- contexts.update(kwargs)
app_mgr.instantiate_apps(**contexts)
services = []
diff --git a/ryu/app/cbench.py b/ryu/app/cbench.py
index 81ed539..c82ae53 100644
--- a/ryu/app/cbench.py
+++ b/ryu/app/cbench.py
@@ -15,15 +15,16 @@
# limitations under the License.
+from ryu.base import app_manager
from ryu.controller import ofp_event
from ryu.controller.handler import MAIN_DISPATCHER
from ryu.controller.handler import set_ev_cls
from ryu.ofproto import nx_match
-class Cbench(object):
- def __init__(self, *_args, **kwargs):
- pass
+class Cbench(app_manager.RyuApp):
+ def __init__(self, *args, **kwargs):
+ super(Cbench, self).__init__(*args, **kwargs)
@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def packet_in_handler(self, ev):
diff --git a/ryu/app/event_dumper.py b/ryu/app/event_dumper.py
index 475e12e..a7ffbbf 100644
--- a/ryu/app/event_dumper.py
+++ b/ryu/app/event_dumper.py
@@ -18,6 +18,7 @@
import gflags
import logging
+from ryu.base import app_manager
from ryu.controller import dispatcher
from ryu.controller.handler import set_ev_cls
@@ -30,9 +31,9 @@ gflags.DEFINE_multistring('dump_dispatcher', [],
'list of dispatcher name to dump event: default any')
-class EventDumper(object):
- def __init__(self, *_args, **_kwargs):
- super(EventDumper, self).__init__()
+class EventDumper(app_manager.RyuApp):
+ def __init__(self, *args, **kwargs):
+ super(EventDumper, self).__init__(*args, **kwargs)
# EventDispatcher can be created and cloned before us.
# So register it explicitly
for ev_q in dispatcher.EventQueue.all_instances():
diff --git a/ryu/app/rest.py b/ryu/app/rest.py
index 285cdbf..9e612cf 100644
--- a/ryu/app/rest.py
+++ b/ryu/app/rest.py
@@ -21,6 +21,8 @@ from ryu.app.wsapi import WSPathComponent
from ryu.app.wsapi import WSPathExtractResult
from ryu.app.wsapi import WSPathStaticString
from ryu.app.wsapi import wsapi
+from ryu.base import app_manager
+from ryu.controller import network
# REST API
@@ -93,9 +95,13 @@ class WSPathPort(WSPathComponent):
return WSPathExtractResult(value={'dpid': dpid, 'port': port})
-class restapi:
+class restapi(app_manager.RyuApp):
+ _CONTEXTS = {
+ 'network': app_manager.noarg_app_context_factory(network.Network),
+ }
- def __init__(self, *_args, **kwargs):
+ def __init__(self, *args, **kwargs):
+ super(restapi, self).__init__(*args, **kwargs)
self.ws = wsapi()
self.api = self.ws.get_version("1.0")
self.nw = kwargs['network']
diff --git a/ryu/app/simple_isolation.py b/ryu/app/simple_isolation.py
index 1daf6be..72015a3 100644
--- a/ryu/app/simple_isolation.py
+++ b/ryu/app/simple_isolation.py
@@ -18,10 +18,13 @@ import logging
import struct
from ryu.app.rest_nw_id import NW_ID_UNKNOWN, NW_ID_EXTERNAL
+from ryu.base import app_manager
from ryu.exception import MacAddressDuplicated
from ryu.exception import PortUnknown
+from ryu.controller import dpset
from ryu.controller import mac_to_network
from ryu.controller import mac_to_port
+from ryu.controller import network
from ryu.controller import ofp_event
from ryu.controller.handler import MAIN_DISPATCHER
from ryu.controller.handler import CONFIG_DISPATCHER
@@ -34,9 +37,14 @@ from ryu.lib import mac
LOG = logging.getLogger('ryu.app.simple_isolation')
-class SimpleIsolation(object):
- def __init__(self, *_args, **kwargs):
- super(SimpleIsolation, self).__init__()
+class SimpleIsolation(app_manager.RyuApp):
+ _CONTEXTS = {
+ 'network': app_manager.noarg_app_context_factory(network.Network),
+ 'dpset': app_manager.noarg_app_context_factory(dpset.DPSet),
+ }
+
+ def __init__(self, *args, **kwargs):
+ super(SimpleIsolation, self).__init__(*args, **kwargs)
self.nw = kwargs['network']
self.dpset = kwargs['dpset']
self.mac2port = mac_to_port.MacToPortTable()
diff --git a/ryu/app/simple_switch.py b/ryu/app/simple_switch.py
index c95b96c..4e80de9 100644
--- a/ryu/app/simple_switch.py
+++ b/ryu/app/simple_switch.py
@@ -16,6 +16,7 @@
import logging
import struct
+from ryu.base import app_manager
from ryu.controller import mac_to_port
from ryu.controller import ofp_event
from ryu.controller.handler import MAIN_DISPATCHER
@@ -34,10 +35,14 @@ LOG = logging.getLogger('ryu.app.simple_switch')
# TODO: we need to move the followings to something like db
-class SimpleSwitch(object):
- def __init__(self, *_args, **_kwargs):
- super(SimpleSwitch, self).__init__()
- self.mac2port = mac_to_port.MacToPortTable()
+class SimpleSwitch(app_manager.RyuApp):
+ _CONTEXETS = {
+ 'mac2port':
+ app_manager.noarg_app_context_factory(mac_to_port.MacToPortTable),
+ }
+ def __init__(self, *args, **kwargs):
+ super(SimpleSwitch, self).__init__(*args, **kwargs)
+ self.mac2port = kwargs['mac2port']
@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def _packet_in_handler(self, ev):
--
1.7.1.1
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel