def _on_my_identity_url_changed(self, evt): from services import driver if driver.is_on('service_entangled_dht'): from dht import dht_service from userid import my_id if my_id.getIDURL(): dht_service.set_node_data('idurl', my_id.getIDURL().to_text())
def doPropagateMyIdentity(self, arg): # TODO: need to run this actions one by one, not in parallel - use Defered chain propagate.update() propagate.write_to_dht() dht_service.set_node_data('idurl', my_id.getLocalID()) d = propagate.start(wide=True) d.addCallback(lambda contacts_list: self.automat('my-id-propagated', contacts_list))
def doPropagateMyIdentity(self, *args, **kwargs): # TODO: need to run this actions one by one, not in parallel - use Defered chain if driver.is_on('service_entangled_dht'): from dht import dht_service dht_service.set_node_data('idurl', my_id.getLocalID()) propagate.update() d = propagate.start(wide=True) d.addCallback(lambda contacts_list: self.automat( 'my-id-propagated', contacts_list))
def _on_proxy_routers_dht_layer_connected(self, ok): from logs import lg from dht import dht_service from dht import dht_records from userid import my_id lg.info('connected to DHT layer for proxy routers: %r' % ok) if my_id.getLocalID(): dht_service.set_node_data('idurl', my_id.getLocalID().to_text(), layer_id=dht_records.LAYER_PROXY_ROUTERS) return ok
def _on_suppliers_dht_layer_connected(self, ok): from logs import lg from dht import dht_service from dht import dht_records from userid import my_id lg.info('connected to DHT layer for suppliers: %r' % ok) if my_id.getIDURL(): dht_service.set_node_data('idurl', my_id.getIDURL().to_text(), layer_id=dht_records.LAYER_SUPPLIERS) return ok
def _on_message_brokers_dht_layer_connected(self, ok): from logs import lg from dht import dht_service from dht import dht_records from userid import my_id lg.info('connected to DHT layer for message brokers: %r' % ok) if my_id.getIDURL(): dht_service.set_node_data( 'idurl', my_id.getIDURL().to_text(), layer_id=dht_records.LAYER_MESSAGE_BROKERS) return ok
def doInit(self, arg): """ Action method. """ self.listen_port = arg if udp.proto(self.listen_port): udp.proto(self.listen_port).add_callback(self._datagramReceived) else: lg.err('udp port %s is not opened' % self.listen_port) try: externalPort = int( bpio.ReadTextFile(settings.ExternalUDPPortFilename())) except: externalPort = self.listen_port dht_service.set_node_data('stun_port', externalPort)
def _do_propagate(*args): if _Debug: lg.out(_DebugLevel, 'p2p_connector._do_propagate') if driver.is_on('service_entangled_dht'): from dht import dht_service dht_service.set_node_data('idurl', my_id.getLocalID().to_text()) d = propagate.start(wide=True, refresh_cache=True) d.addCallback(lambda contacts_list: self.automat( 'my-id-propagated', contacts_list)) if _Debug: d.addErrback( lg.errback, debug=_Debug, debug_level=_DebugLevel, method='_check_rotate_propagate_my_identity._do_propagate')
def doInit(self, arg): """ Action method. """ # udp.add_datagram_receiver_callback(self._datagramReceived) self.listen_port = arg if udp.proto(self.listen_port): udp.proto(self.listen_port).add_callback(self._datagramReceived) else: lg.warn('udp port %s is not opened' % self.listen_port) externalPort = bpio._read_data(settings.ExternalUDPPortFilename()) try: externalPort = int(externalPort) except: externalPort = self.listen_port dht_service.set_node_data('stun_port', externalPort)
def doInit(self, *args, **kwargs): """ Action method. """ self.listen_port = args[0] if udp.proto(self.listen_port): udp.proto(self.listen_port).add_callback(self._datagramReceived) lg.info('callback added to listen on UDP port %d' % self.listen_port) else: lg.err('udp port %s is not opened' % self.listen_port) # try: # externalPort = int(bpio.ReadTextFile(settings.ExternalUDPPortFilename())) # except: # lg.exc() externalPort = self.listen_port dht_service.set_node_data('stun_port', externalPort)
def start(self): from logs import lg from dht import dht_service from dht import known_nodes from main import settings from main.config import conf from userid import my_id conf().addCallback('services/entangled-dht/udp-port', self._on_udp_port_modified) dht_service.init(udp_port=settings.getDHTPort(), db_file_path=settings.DHTDBFile()) known_seeds = known_nodes.nodes() lg.info('known seed nodes are : %r' % known_seeds) d = dht_service.connect(seed_nodes=known_seeds) d.addCallback(self._on_connected) d.addErrback(self._on_connect_failed) if my_id.getLocalID(): dht_service.set_node_data('idurl', my_id.getLocalID()) return d
def _on_proxy_routers_dht_layer_connected(self, ok): from twisted.internet import reactor # @UnresolvedImport from logs import lg from dht import dht_service from dht import dht_records from transport import gateway from userid import my_id lg.info('connected to DHT layer for proxy routers: %r' % ok) if my_id.getIDURL(): dht_service.set_node_data('idurl', my_id.getIDURL().to_text(), layer_id=dht_records.LAYER_PROXY_ROUTERS) if self.transport: if self.starting_deferred and not self.starting_deferred.called: self.transport.automat( 'init', (gateway.listener(), self._on_transport_state_changed)) reactor.callLater(0, self.transport.automat, 'start') # @UndefinedVariable return ok
def _do_propagate(self, result, rotated): if _Debug: lg.out(_DebugLevel, 'p2p_connector._do_propagate rotated=%r result=%r' % (rotated, result, )) if driver.is_on('service_entangled_dht'): from dht import dht_service dht_service.set_node_data('idurl', my_id.getIDURL().to_text()) else: lg.warn('DHT node local store was not updated with my latest IDURL, service_entangled_dht was OFF') d = propagate.start( wide=True, refresh_cache=True, include_all=True, include_startup=rotated, wait_packets=True, ) d.addCallback(lambda x: self.automat('my-id-propagated')) if rotated: d.addBoth(lambda x: events.send('my-identity-rotate-complete', data=dict())) if _Debug: d.addErrback(lg.errback, debug=_Debug, debug_level=_DebugLevel, method='_check_rotate_propagate_my_identity._do_propagate') d.addErrback(self._on_propagate_failed) # d.addTimeout(30, clock=reactor) return result