Пример #1
0
 def _do_join_message_brokers_dht_layer(self):
     from logs import lg
     from dht import dht_service
     from dht import dht_records
     from dht import known_nodes
     lg.info('going to join message brokers DHT layer: %d' % dht_records.LAYER_MESSAGE_BROKERS)
     known_seeds = known_nodes.nodes()
     dht_service.open_layer(
         seed_nodes=known_seeds,
         layer_id=dht_records.LAYER_MESSAGE_BROKERS,
         connect_now=True,
         attach=False,
     )
Пример #2
0
 def _do_join_suppliers_dht_layer(self):
     from logs import lg
     from dht import dht_service
     from dht import dht_records
     from dht import known_nodes
     lg.info('going to join suppliers DHT layer: %d' %
             dht_records.LAYER_SUPPLIERS)
     known_seeds = known_nodes.nodes()
     dht_service.open_layer(
         seed_nodes=known_seeds,
         layer_id=dht_records.LAYER_SUPPLIERS,
         connect_now=True,
         attach=False,
     )
Пример #3
0
 def _on_connected(self, ok):
     from twisted.internet.defer import DeferredList
     from logs import lg
     from dht import dht_service
     from dht import known_nodes
     from main.config import conf
     lg.info('DHT node connected  ID0=[%s] : %r' % (dht_service.node().layers[0], ok))
     dht_service.node().add_rpc_callback('store', self._on_dht_rpc_store)
     dht_service.node().add_rpc_callback('request', self._on_dht_rpc_request)
     known_seeds = known_nodes.nodes()
     dl = []
     attached_layers = conf().getData('services/entangled-dht/attached-layers', default='')
     if attached_layers:
         lg.info('more DHT layers to be attached: %r' % attached_layers)
         for layer_id in attached_layers.split(','):
             if layer_id.strip():
                 dl.append(dht_service.open_layer(
                     layer_id=int(layer_id.strip()),
                     seed_nodes=known_seeds, 
                     connect_now=True,
                     attach=True,
                 ))
     if dl:
         d = DeferredList(dl)
         d.addCallback(self._on_layers_attached)
         d.addErrback(self._on_connect_failed)
     else:
         if self.starting_deferred and not self.starting_deferred.called:
             self.starting_deferred.callback(True)
     return ok
Пример #4
0
 def _do_connect_suppliers_dht_layer(self):
     from logs import lg
     from dht import dht_service
     from dht import dht_records
     from dht import known_nodes
     known_seeds = known_nodes.nodes()
     d = dht_service.open_layer(
         layer_id=dht_records.LAYER_SUPPLIERS,
         seed_nodes=known_seeds,
         connect_now=True,
         attach=True,
     )
     d.addCallback(self._on_suppliers_dht_layer_connected)
     d.addErrback(lambda *args: lg.err(str(args)))
Пример #5
0
 def _do_join_proxy_routers_dht_layer(self):
     from logs import lg
     from dht import dht_service
     from dht import dht_records
     from dht import known_nodes
     lg.info('going to join proxy routers DHT layer: %d' % dht_records.LAYER_PROXY_ROUTERS)
     known_seeds = known_nodes.nodes()
     d = dht_service.open_layer(
         layer_id=dht_records.LAYER_PROXY_ROUTERS,
         seed_nodes=known_seeds,
         connect_now=True,
         attach=False,
     )
     d.addCallback(self._on_proxy_routers_dht_layer_connected)
     d.addErrback(lambda *args: lg.err(str(args)))
 def _on_connected(self, ok):
     from twisted.internet.defer import DeferredList
     from logs import lg
     from dht import dht_service
     from dht import known_nodes
     from main.config import conf
     from services import driver
     lg.info('DHT node connected    ID0=[%s] : %r' % (dht_service.node().layers[0], ok))
     dht_service.node().add_rpc_callback('store', self._on_dht_rpc_store)
     dht_service.node().add_rpc_callback('request', self._on_dht_rpc_request)
     known_seeds = known_nodes.nodes()
     dl = []
     attached_layers = conf().getData('services/entangled-dht/attached-layers', default='')
     if attached_layers:
         attached_layers = list(filter(None, map(lambda v: int(str(v).strip()), attached_layers.split(','))))
     else:
         attached_layers = []
     lg.info('reading attached DHT layers from configuration: %r' % attached_layers)
     all_services_attached_layers = driver.get_attached_dht_layers().values()
     combined_services_attached_layers = set()
     count_combined = len(list(map(combined_services_attached_layers.update, all_services_attached_layers)))
     services_attached_layers = list(combined_services_attached_layers)
     lg.info('combined attached DHT layers from %d services: %r' % (count_combined, services_attached_layers, ))
     attached_layers = list(set(attached_layers + services_attached_layers))
     lg.info('DHT layers to be attached at startup: %r' % attached_layers)
     for layer_id in attached_layers:
         dl.append(dht_service.open_layer(
             layer_id=layer_id,
             seed_nodes=known_seeds,
             connect_now=True,
             attach=True,
         ))
     if dl:
         d = DeferredList(dl)
         d.addCallback(self._on_layers_attached)
         d.addErrback(self._on_connect_failed)
     else:
         if self.starting_deferred and not self.starting_deferred.called:
             self.starting_deferred.callback(True)
     return ok