def _go(nodes): # lg.out(_DebugLevel, 'Connected nodes: %r' % nodes) # lg.out(_DebugLevel, 'DHT node is active, ID=[%s]' % base64.b64encode(node().id)) try: if len(args) == 0: pass elif len(args) > 0: def _r(x): lg.info(x) # reactor.stop() #@UndefinedVariable cmd = args[0] if cmd == 'get': get_value(args[1]).addBoth(_r) elif cmd == 'set': set_value(args[1], args[2], expire=int(args[3])).addBoth(_r) elif cmd == 'get_json': get_json_value(args[1]).addBoth(_r) elif cmd == 'set_json': set_json_value(args[1], jsn.loads(args[2]), expire=(int(args[3]) if len(args)>=4 else 9999)).addBoth(_r) elif cmd == 'get_valid_data': get_valid_data(args[1], rules=jsn.loads(args[2]), return_details=True).addBoth(_r) elif cmd == 'set_valid_data': set_valid_data(args[1], jsn.loads(args[2]), expire=(int(args[3]) if len(args)>=4 else 9999), rules=jsn.loads(args[4])).addBoth(_r) elif cmd == 'read_customer_suppliers': dht_relations.read_customer_suppliers(args[1]).addBoth(_r) elif cmd == 'write_customer_suppliers': dht_relations.write_customer_suppliers(args[1], args[2].split(',')).addBoth(_r) elif cmd == 'write_verify_republish': write_verify_republish_data(args[1], args[2], expire=int(args[3])).addBoth(_r) elif cmd == 'find': find_node(key_to_hash(args[1])).addBoth(_r) elif cmd == 'ping': find_node(random_key()).addBoth(_r) elif cmd == 'get_node_data': pprint.pprint(get_node_data(args[1])) elif cmd == 'observe_data': def _p(val, n): print('observed', n, val) def _o(result): for n in result: d = n.request(args[2]) d.addCallback(_p, n) d = find_node(key_to_hash(args[1])) d.addErrback(_r) d.addCallback(_o) elif cmd == 'discover': def _l(x): lg.info(x) find_node(random_key()).addBoth(_l) _l('') elif cmd == 'dump_db': pprint.pprint(dump_local_db(value_as_json=True)) except: lg.exc()
def _go(nodes): # lg.out(_DebugLevel, 'Connected nodes: %r' % nodes) # lg.out(_DebugLevel, 'DHT node is active, ID=[%s]' % base64.b64encode(node().id)) try: if len(args) == 0: pass elif len(args) > 0: def _r(x): lg.info(x) reactor.stop() #@UndefinedVariable cmd = args[0] if cmd == 'get': get_value(args[1]).addBoth(_r) elif cmd == 'set': set_value(args[1], args[2], expire=int(args[3])).addBoth(_r) elif cmd == 'get_json': get_json_value(args[1]).addBoth(_r) elif cmd == 'set_json': set_json_value(args[1], args[2], expire=int(args[3])).addBoth(_r) elif cmd == 'get_valid_data': get_valid_data(args[1], rules=json.loads(args[2])).addBoth(_r) elif cmd == 'set_valid_data': set_valid_data(args[1], json.loads(args[2]), expire=int(args[3]), rules=json.loads(args[4])).addBoth(_r) elif cmd == 'read_customer_suppliers': dht_relations.read_customer_suppliers(args[1]).addBoth(_r) elif cmd == 'write_customer_suppliers': dht_relations.write_customer_suppliers( args[1], args[2].split(',')).addBoth(_r) elif cmd == 'write_verify_republish': write_verify_republish_data(args[1], args[2], expire=int( args[3])).addBoth(_r) elif cmd == 'find': find_node(key_to_hash(args[1])).addBoth(_r) elif cmd == 'ping': find_node(random_key()).addBoth(_r) elif cmd == 'discover': def _l(x): lg.info(x) find_node(random_key()).addBoth(_l) _l('') except: lg.exc()
def doDHTRead(self, *args, **kwargs): """ Action method. """ d = dht_relations.read_customer_suppliers(self.customer_idurl) d.addCallback(self._on_dht_read_success) d.addErrback(self._on_dht_read_failed)
def doDHTLookupSuppliers(self, *args, **kwargs): """ Action method. """ d = dht_relations.read_customer_suppliers(self.customer_idurl) # TODO: add more validations of dht_result d.addCallback(self._on_read_customer_suppliers) d.addErrback(lambda err: self.automat('fail', err))
def doDHTReadSuppliers(self, *args, **kwargs): """ Action method. """ d = dht_relations.read_customer_suppliers( customer_idurl=self.queue_owner_idurl, use_cache=True) d.addCallback(self._on_read_queue_owner_suppliers_success) d.addErrback(self._on_read_queue_owner_suppliers_failed)
def _do_cleanup_dht_suppliers(self): from logs import lg from services import driver if driver.is_on('service_entangled_dht'): from dht import dht_relations from userid import my_id d = dht_relations.read_customer_suppliers(my_id.getLocalID()) d.addCallback(self._on_my_dht_relations_discovered) d.addErrback(self._on_my_dht_relations_failed) else: lg.warn('service service_entangled_dht is OFF')
def doDHTReadMySuppliers(self, *args, **kwargs): """ Action method. """ known_suppliers = len(contactsdb.suppliers()) if known_suppliers > 0: lg.warn( 'skip reading my suppliers from DHT, currently known %d suppliers already' % known_suppliers) self.automat('suppliers-read-ok') return d = dht_relations.read_customer_suppliers(my_id.getIDURL(), use_cache=False) d.addCallback(self._on_my_dht_relations_discovered) d.addErrback(self._on_my_dht_relations_failed)