def do_read(self): if self._index >= self._limit_lookups: # TODO: more smart and fault sensitive method if _Debug: lg.out( _DebugLevel + 6, 'dht_relations.do_read STOP %s, limit lookups riched' % self.customer_idurl) self.do_report_success() return None if self._last_missed_index >= 0 and self._index - self._last_missed_index > self._max_misses_in_row: if _Debug: lg.out( _DebugLevel + 6, 'dht_relations.do_read STOP %s, last missed index is %d' % (self.customer_idurl, self._last_missed_index)) self.do_report_success() return None # if self._index >= 3 and self._missed >= 3: # if float(self._missed) / float(self._index) > 0.5: # return None if _Debug: lg.out( _DebugLevel + 6, 'dht_relations.do_read %s index:%d missed:%d' % (self.customer_idurl, self._index, self._missed)) d = dht_service.get_value( make_dht_key(self.customer_idurl, self._index, self._prefix)) d.addCallback(self.do_verify) d.addErrback(self.do_report_failed) return d
def _wrote_my_address(self, nodes): if len(nodes) == 0: self.automat('dht-write-failed') return key = self.my_id + ':address' d = dht_service.get_value(key) d.addCallback(self._got_my_address, key) d.addErrback(lambda x: self.automat('dht-write-failed'))
def doDHTReadPeerAddress(self, arg): """ Action method. """ key = self.peer_id + ':address' self.working_deferred = dht_service.get_value(key) self.working_deferred.addCallback(self._got_peer_address, key) self.working_deferred.addErrback( lambda x: self.automat('dht-read-failed'))
def doDHTReadIncoming(self, arg): """ Action method. """ key = self.peer_id + ':incoming' + str(self.KeyPosition) self.working_deferred = dht_service.get_value(key) self.working_deferred.addCallback( self._got_peer_incoming, key, self.KeyPosition) self.working_deferred.addErrback( lambda x: self.automat('dht-read-failed'))
def doDHTReadIncoming(self, arg): """ Action method. """ key = self.peer_id + ':incoming' + str(self.KeyPosition) self.working_deferred = dht_service.get_value(key) self.working_deferred.addCallback(self._got_peer_incoming, key, self.KeyPosition) self.working_deferred.addErrback( lambda x: self.automat('dht-read-failed'))
def doDHTReadKey(self, arg): """ Action method. """ if self.dht_read_defer is not None: self.dht_read_defer.pause() self.dht_read_defer.cancel() self.dht_read_defer = None d = dht_service.get_value(self.key) d.addCallback(self._dht_read_result, self.key) d.addErrback(self._dht_read_failed) self.dht_read_defer = d
def doDHTReadNextIncoming(self, arg): """ Action method. """ self.IncomingPosition += 1 if self.IncomingPosition >= 10: self.IncomingPosition = 0 key = self.my_id + ':incoming' + str(self.IncomingPosition) if _Debug: lg.out(_DebugLevel, 'udp_node.doDHTReadNextIncoming key=%s' % key) d = dht_service.get_value(key) d.addCallback(self._got_my_incoming, key, self.IncomingPosition) d.addErrback(self._failed_my_incoming, key, self.IncomingPosition)