class FindNode(ActionBase):
""" find node action merits it's own class as it is a long running stateful process """
def handleGotNodes(self, dict):
+ _krpc_sender = dict['_krpc_sender']
+ dict = dict['rsp']
l = dict["nodes"]
sender = dict["sender"]
+ sender['port'] = _krpc_sender[1]
sender = Node().initWithDict(sender)
sender.conn = self.table.airhook.connectionForAddr((sender.host, sender.port))
self.table.table.insertNode(sender)
class GetValue(FindNode):
""" get value task """
def handleGotNodes(self, dict):
+ _krpc_sender = dict['_krpc_sender']
+ dict = dict['rsp']
sender = dict["sender"]
+ sender['port'] = _krpc_sender[1]
sender = Node().initWithDict(sender)
sender.conn = self.table.airhook.connectionForAddr((sender.host, sender.port))
self.table.table.insertNode(sender)
return y
else:
return None
+ z = len(dict['values'])
v = filter(None, map(x, dict['values']))
if(len(v)):
reactor.callFromThread(self.callback, v)
s = "delete from kv where time < '%s';" % self.cut
c.execute(s)
reactor.callLater(const.KE_DELAY, self.doExpire)
-
\ No newline at end of file