Basically looks good. some comments inlined.
And can you please send the updated patch with your signed-off-by?


On Fri, Aug 02, 2013 at 10:21:20AM -0400, Glenn McGuire wrote:
> I've been using the latest RYU source from GIT, and building my own python
> eggs.  When launching ryu-manager, I get the following error:
> 
> [root@hostname ryu]# ryu-manager
> Traceback (most recent call last):
>   File "/usr/bin/ryu-manager", line 5, in <module>
>     pkg_resources.run_script('ryu==2.2', 'ryu-manager')
>   File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 461, in
> run_script
>     self.require(requires)[0].run_script(script_name, ns)
>   File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1194, in
> run_script
>     execfile(script_filename, namespace, namespace)
>   File "/usr/lib/python2.6/site-packages/ryu-2.2-py2.6.egg/EGG-INFO/scripts/
> ryu-manager", line 43, in <module>
>     from ryu.topology import switches
>   File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 427, in
> <module>
>   File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 574, in
> Switches
> AttributeError: 'module' object has no attribute 'EventOFPPortStatus'
> 
> [root@hostname ryu]# python ./bin/ryu-manager
> Traceback (most recent call last):
>   File "./bin/ryu-manager", line 55, in <module>
>     from ryu.topology import switches
>   File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 427, in
> <module>
>   File "build/bdist.linux-x86_64/egg/ryu/topology/switches.py", line 574, in
> Switches
> AttributeError: 'module' object has no attribute 'EventOFPPortStatus'
> 
> I found that I could execute ryu-manager correctly from the interactive python
> shell but not from the command line, and looked at the derivation of Event
> classes from pathnames.
> It occurred to me that the eggs would not necessarily include the source 
> files,
> so I tried successfully to make the code look up both source and compiled
> filenames, and return the union of that.
> 
> I have not tried to push it up via git, but I thought people might find this
> useful.
> This is what I came up with:
> 
> [user@hostname2 ryu]$ hg diff ryu/ofproto/__init__.py
> diff -r fe4b6602b4e2 others/ryu/ryu/ofproto/__init__.py
> --- a/ryu/ofproto/__init__.py        Wed Jul 31 18:59:59 2013 +0000
> +++ b/ryu/ofproto/__init__.py        Thu Aug 01 16:15:07 2013 +0000
> @@ -22,26 +22,26 @@
> 
> 
>  _OFPROTO_DIR = os.path.dirname(__file__)
> +
>  _OFPROTO_PARSER_FILE_NAMES = glob.glob(os.path.join(
> -    _OFPROTO_DIR, 'ofproto_v[0-9]*_[0-9]*_parser.py'))
> +    _OFPROTO_DIR, 'ofproto_v[0-9]*_[0-9]*_parser.p[yc]*'))
                                                    py*
I think ".py" and ".pyc" are wanted. not ".pc".


>  _OFPROTO_PARSER_FILE_NAMES = [os.path.basename(name)
>                                for name in _OFPROTO_PARSER_FILE_NAMES]
> 
> 
>  _OFPROTO_MODULES = {}
>  for parser_file_name in _OFPROTO_PARSER_FILE_NAMES:
> -    # drop lasting '.py'
> -    parser_mod_name = __name__ + '.' + parser_file_name[:-3]
> -    consts_mod_name = parser_mod_name[:-7]      # drop lasting '_parser'
> +    # drop trailing '.py'

please update also this comment. .py and .pyc.

thanks,


> +    parser_mod_name =  __name__ + '.' + '.'.join(parser_file_name.split('.')
> [:-1])
> +    consts_mod_name = parser_mod_name[:-7]      # drop trailing '_parser'
>      try:
>          parser_mod = utils.import_module(parser_mod_name)
>          consts_mod = utils.import_module(consts_mod_name)
>      except:
>          continue
> -
> -    assert consts_mod.OFP_VERSION not in _OFPROTO_MODULES
> -    _OFPROTO_MODULES[consts_mod.OFP_VERSION] = (consts_mod, parser_mod)
> -
> +
> +    if consts_mod.OFP_VERSION not in _OFPROTO_MODULES:
> +        _OFPROTO_MODULES[consts_mod.OFP_VERSION] = (consts_mod, parser_mod)
> 
>  def get_ofp_modules():
>      """get modules pair for the constants and parser of OF-wire of
> 
> 

> ------------------------------------------------------------------------------
> Get your SQL database under version control now!
> Version control is standard for application code, but databases havent 
> caught up. So what steps can you take to put your SQL databases under 
> version control? Why should you start doing it? Read more to find out.
> http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel


-- 
yamahata

------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to