Thanks for reporting.
How about this patch?

>From 635ecac005288193204321a6778b8fe6cadd9026 Mon Sep 17 00:00:00 2001
Message-Id: 
<635ecac005288193204321a6778b8fe6cadd9026.1368610234.git.yamah...@valinux.co.jp>
From: Isaku Yamahata <[email protected]>
Date: Wed, 15 May 2013 18:09:49 +0900
Subject: [PATCH 1/1] base/app_manager: context might be RyuApp

The class used for context might be RyuApp. So methods of RyuApp needs
to be called.

Reported-by: YAMADA Hideki <[email protected]>
Signed-off-by: Isaku Yamahata <[email protected]>
---
 ryu/base/app_manager.py |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py
index 9fb360d..d7ecc0c 100644
--- a/ryu/base/app_manager.py
+++ b/ryu/base/app_manager.py
@@ -216,13 +216,14 @@ class AppManager(object):
 
     def create_contexts(self):
         for key, cls in self.contexts_cls.items():
-            context = cls()
+            if issubclass(cls, RyuApp):
+                # hack for dpset
+                context = self._instantiate(None, cls)
+            else:
+                context = cls()
             LOG.info('creating context %s', key)
             assert not key in self.contexts
             self.contexts[key] = context
-            # hack for dpset
-            if context.__class__.__base__ == RyuApp:
-                register_app(context)
         return self.contexts
 
     def _update_bricks(self):
-- 
1.7.10.4



On Wed, May 15, 2013 at 02:54:40PM +0900, YAMADA Hideki wrote:
> Hi,
> 
> The tree doesn't pass integrated tests.
> Event-loop thread of context instance doesn't seem to start.
> 
> https://github.com/yamahata/ryu/commit/16fe17b84f27ef19486c290b9ff0b22b6699ded6
> 
> diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py
> index 1250299..6f2b54d 100644
> --- a/ryu/base/app_manager.py
> +++ b/ryu/base/app_manager.py
> @@ -292,6 +292,9 @@ class AppManager(object):
>           for app in self.applications.values():
>               app.start()
> 
> +        for context in self.contexts.values():
> +            context.start()
> +
>       @staticmethod
>       def _close(app):
>           close_method = getattr(app, 'close', None)
> 
> 
> (2013/05/01 17:31), Isaku Yamahata wrote:
> > Hi.
> > I uploaded the VRRP v3 patch at
> > git://github.com/yamahata/ryu.git vrrp-may-01-2013
> >
> > Changes v2 -> v3:
> > - preempt_delay support
> > - code clean up
> > - more sample/tests
> >
> > thanks,
> >
> 
> 
> ------------------------------------------------------------------------------
> AlienVault Unified Security Management (USM) platform delivers complete
> security visibility with the essential security capabilities. Easily and
> efficiently configure, manage, and operate all of your security controls
> from a single console and one unified framework. Download a free trial.
> http://p.sf.net/sfu/alienvault_d2d
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
> 

-- 
yamahata

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to