Hi murphy:

Thank you for your reply, but I have added these codes in my component.
This time I tried to invoke component pytutorial, so that you can get more
information in your computer.

So I add following codes in discovery component.
self._pytutorial =
self.resolve("nox.coreapps.tutorial.pytutorial.pyturorial")
print self._pytutorial.mac_to_port

00478|pyrt|ERR:unable to invoke a Python event handler:
Traceback (most recent call last):
  File "./nox/lib/util.py", line 116, in f
    event.total_len, buffer_id, packet)
  File "./nox/netapps/discovery/discovery.py", line 166, in <lambda>
    discovery.lldp_input_handler(self,dp,inport,reason,len,bid,packet),
  File "./nox/netapps/discovery/discovery.py", line 316, in
lldp_input_handler
    print self._pytutorial.mac_to_port
AttributeError: 'NoneType' object has no attribute 'mac_to_port'

I was confused.

In other hand, I accept your advise to handle discovery's Link_even. Since I
am a newbie, can you give me some advice how to deal with Link_event in my
component?

Best regards.

hzy

2011/10/10 Murphy McCauley <jam...@nau.edu>

> Whoops.  I meant:
>
> def getInterface (self):
>   return str(my_router)
>
> Sorry about that!
>
> -- Murphy
>
>
> On Oct 10, 2011, at 7:51 AM, Murphy McCauley wrote:
>
> So first off, maybe you have a reason, but in general, the hope is that you
> should have no reason to modify discovery.py.  Rather than modify
> discovery.py to explicitly call your component, hopefully you should be able
> to simply handle discovery's Link_event.
>
> If you really do need to modify discovery.py to call your component
> explicitly, then as for why your code doesn't work, I don't think I have
> enough information to say.  Assuming that your paths are right (you have a
> directory/package called my_experiment) and that in my_router.py you have a
> class/component called my_router... my best guess is that you didn't
> implement getInterface() in my_router in the expected way.  Try adding the
> following to your my_router class:
>
> def getInterface (self):
>   return my_router
>
> Hope that helps.
>
> -- Murphy
>
> On Oct 10, 2011, at 6:45 AM, hzy wrote:
>
> hi murpy:
> Thank you for your reply. it works now, but another problem comes up.
> This time I want the discovery component invoke the dic_all_path defined in
> my modle.
>
> So I add following codes in discovery component
> self._my_router =
> self.resolve("nox.coreapps.my_experiment.my_router.my_router")
> print self._my_router.dic_all_path
>
> I also tried these codes
> from nox.coreapps.my_experiment import my_router
> self._my_router = self.resolve(my_router.my_router
> print self._my_router.dic_all_path
>
> 00206|pyrt|ERR:unable to invoke a Python event handler:
> Traceback (most recent call last):
>   File "./nox/lib/util.py", line 116, in f
>     event.total_len, buffer_id, packet)
>   File "./nox/netapps/discovery/discovery.py", line 163, in <lambda>
>     discovery.lldp_input_handler(self,dp,inport,reason,len,bid,packet),
>   File "./nox/netapps/discovery/discovery.py", line 312, in
> lldp_input_handler
>     print self._my_router.dic_all_path
> AttributeError: 'NoneType' object has no attribute 'dic_all_path'
>
> any ideas.
> best regards.
>
> hzy
>
>
> 2011/10/9 Murphy McCauley <jam...@nau.edu>
>
>> So, the discovery component is a class named "discovery" in a module named
>> "discovery" in a package named "discovery".  So it's...
>> discovery.discovery.discovery.  You've only got discovery.discovery.  I can
>> see how it's a bit confusing. :)
>>
>> So try the following instead:
>> self._discovery = self.resolve(discovery.discovery)
>>
>> Or alternatively, do:
>> self._discovery =
>> self.resolve("nox.netapps.discovery.discovery.discovery")
>> (In this case, you don't even need the import statement)
>>
>> -- Murphy
>>
>> On Oct 9, 2011, at 1:21 AM, hzy wrote:
>>
>> > hi all:
>> >
>> > Inorder to find interconnected links in my topology, i would like to use
>> discovery.py.
>> > In my own component I want to check the adjacency_list which is a public
>> attribute in discovery module.
>> > How can I use discovery from my component.
>> >
>> > I add the following codes, but it doesn't work.
>> >
>> > from nox.netapps.discovery import discovery
>> > self._discovery = self.resolve(discovery)
>> > print self._discovery.adjacency_list
>> >
>> > File "./nox/coreapps/my_experiment/my_router.py", line 499, in
>> datapath_join_callback
>> >     print self._discovery.adjacency_list
>> > AttributeError: 'NoneType' object has no attribute 'adjacency_list'
>> >
>> > any ideas?
>> > thanks for advance.
>> > best regards
>> >
>> > hzy
>> > _______________________________________________
>> > nox-dev mailing list
>> > nox-dev@noxrepo.org
>> > http://noxrepo.org/mailman/listinfo/nox-dev
>>
>>
>
>
>
_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to