> don't load RyuApps which is just imported and not defined in the module.
> for example, if we run the script "test.py" as shown below by
> 
> $ ryu run test.py
> 
> the past implementation loads and instantiates not only Test but also RyuApp
> and DPSet. this patch fix this wrong behavior
> 
> test.py
> ===
> 
> from ryu.base.app_manager import RyuApp
> from ryu.controller.dpset import DPSet
> 
> class Test(RyuApp):
>     _CONTEXTS = {'dpset' : DPSet}
> 
> Signed-off-by: ISHIDA Wataru <[email protected]>
> ---
>  ryu/base/app_manager.py |    8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py
> index 695c401..cb6d25c 100644
> --- a/ryu/base/app_manager.py
> +++ b/ryu/base/app_manager.py
> @@ -27,6 +27,7 @@ import inspect
>  import itertools
>  import logging
>  import sys
> +import os
> 
>  from ryu import cfg
>  from ryu import utils
> @@ -338,8 +339,11 @@ class AppManager(object):
> 
>      def load_app(self, name):
>          mod = utils.import_module(name)
> -        clses = inspect.getmembers(mod, lambda cls: (inspect.isclass(cls) and
> -                                                     issubclass(cls, 
> RyuApp)))
> +        module_name = utils.chop_py_suffix(os.path.basename(name))
> +        clses = inspect.getmembers(mod,
> +                                   lambda cls: (inspect.isclass(cls) and
> +                                                issubclass(cls, RyuApp) and
> +                                                cls.__module__ == 
> module_name))

how about (mod.__name__ == cls.__module__) ?

YAMAMOTO Takashi

>          if clses:
>              return clses[0][1]
>          return None
> -- 
> 1.7.10.4
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
> Find What Matters Most in Your Big Data with HPCC Systems
> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
> Leverages Graph Analysis for Fast Processing & Easy Data Exploration
> http://p.sf.net/sfu/hpccsystems
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to