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, )
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, )
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
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)))
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