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