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