<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE>
BLOCKQUOTE {
        MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em; MARGIN-TOP: 0px
}
OL {
        MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
UL {
        MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
P {
        MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
BODY {
        FONT-SIZE: 10.5pt; FONT-FAMILY: Î¢ÈíÑźÚ; COLOR: #000000; LINE-HEIGHT: 1.5
}
</STYLE>

<META name=GENERATOR content="MSHTML 11.00.9600.16518"></HEAD>
<BODY style="MARGIN: 10px">
<DIV> </DIV>
<DIV>
<DIV>
<DIV>When developing server-client software, on the client i call the method 
getTrafficDate, but on the server end, i got nio is None(d2=d.addCallback(lambda 
object: object.callRemote("getNIOTrafficInfo", node, nio)))</DIV>
<DIV>,so, what's the key point?</DIV>
<DIV> </DIV>
<DIV>Thanks all!</DIV>
<DIV>-------------------------------------------------------------------------------------------------------------</DIV>
<DIV>client end</DIV>
<DIV>def getTrafficDate(self):</DIV>
<DIV>       if self.interfacenio_dict is not 
None and self.k:</DIV>
<DIV>            nodelist 
= self.interfacenio_dict.keys()</DIV>
<DIV>            
trafficDataList=[]#DeferredList</DIV>
<DIV>            for node 
in nodelist:</DIV>
<DIV>                
interfaces=self.interfacenio_dict[node]['interfaceinfo'].keys()</DIV>
<DIV>                
if len(interfaces):</DIV>
<DIV>                    
for interface in interfaces:</DIV>
<DIV>                        
nio= self.interfacenio_dict[node]['interfaceinfo'][interface]</DIV>
<DIV>                        
if nio is not None:</DIV>
<DIV>                            
if 'nio_tap' in nio or 'NIO_NF_tap' in nio:</DIV>
<DIV>                                
d= globals.perspective.callRemote('getServerRoot')</DIV>
<DIV>                                
d2=d.addCallback(lambda object: object.callRemote("getNIOTrafficInfo", node, 
nio))</DIV>
<DIV>                                
d2.addCallback(self.setTrafficSpeed_Tap, node, interface)</DIV>
<DIV>                                
trafficDataList.append(d2)</DIV>
<DIV>                            
else:</DIV>
<DIV>                                
d= globals.perspective.callRemote('getServerRoot')</DIV>
<DIV>                                
d2=d.addCallback(lambda object: object.callRemote("getNIOTrafficInfo", node, 
nio))</DIV>
<DIV>                                
d2.addCallback(self.setTrafficSpeed_NotTap, node, interface)</DIV>
<DIV>                                
trafficDataList.append(d2)</DIV>
<DIV>            </DIV>
<DIV>            
trafficDataDeferredList=defer.DeferredList(trafficDataList, 
consumeErrors=True)</DIV>
<DIV>            
trafficDataDeferredList.addCallback(self.getTrafficDataHandle)</DIV></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>server end</DIV>
<DIV>def remote_getNIOTrafficInfo(self,node,nio):</DIV>
<DIV style="TEXT-INDENT: 2em">print nio</DIV>
<DIV style="TEXT-INDENT: 2em"> if nio.name==nioName:</DIV>
<DIV style="TEXT-INDENT: 2em">    pass</DIV>
<DIV> </DIV>
<DIV>Bug info is:</DIV>
<DIV>
<DIV>File "/home/gddw/Documents/gddw-server-branche/src/Server.py", line 154, in 
remote_getNIOTrafficInfo</DIV>
<DIV>    if nio.name==nioName:</DIV>
<DIV>exceptions.AttributeError: 'NoneType' object has no attribute 
'name'</DIV></DIV><SPAN></DIV></SPAN></BODY></HTML>