Example #1
0
 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())
Example #2
0
 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))
Example #3
0
 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))
Example #4
0
 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
Example #5
0
 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
Example #7
0
 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)
Example #8
0
 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')
Example #9
0
 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)
Example #10
0
 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)
Example #11
0
 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
Example #13
0
 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