def _on_my_dht_relations_discovered(self, discovered_suppliers_list): from p2p import p2p_service from contacts import contactsdb from logs import lg suppliers_to_be_dismissed = set() # clean up old suppliers for idurl in discovered_suppliers_list: if not idurl: continue if not contactsdb.is_supplier(idurl): lg.warn('dht relation with %s is not valid anymore' % idurl) suppliers_to_be_dismissed.add(idurl) for idurl in suppliers_to_be_dismissed: p2p_service.SendCancelService( remote_idurl=idurl, service_name='service_supplier', ) p2p_service.SendCancelService( remote_idurl=idurl, service_name='service_supplier_relations', ) if suppliers_to_be_dismissed: lg.info( 'found %d suppliers to be cleaned and sent CancelService() packets' % len(suppliers_to_be_dismissed))
def doDisconnectMiner(self, arg): """ Action method. """ if self.connected_miner: p2p_service.SendCancelService(self.connected_miner, 'service_miner') self.connected_miner = None
def doDisconnectAccountants(self, arg): """ Action method. """ for idurl in self.connected_accountants: p2p_service.SendCancelService(idurl, 'service_accountant') self.connected_accountants = []
def doCancelServiceQueue(self, *args, **kwargs): """ Action method. """ service_info = { 'items': [{ 'scope': 'consumer', 'action': 'unsubscribe', 'consumer_id': strng.to_text(my_id.getGlobalID()), 'queue_id': global_id.MakeGlobalQueueID( queue_alias='supplier-file-modified', owner_id=my_id.getGlobalID(), supplier_id=global_id.MakeGlobalID(idurl=self.supplier_idurl), ), }, { 'scope': 'consumer', 'action': 'remove_callback', 'consumer_id': strng.to_text(my_id.getGlobalID()), 'method': strng.to_text(my_id.getLocalID()), }, { 'scope': 'consumer', 'action': 'stop', 'consumer_id': strng.to_text(my_id.getGlobalID()), }, ], } p2p_service.SendCancelService( remote_idurl=self.supplier_idurl, service_name='service_p2p_notifications', json_payload=service_info, callbacks={ commands.Ack(): self._supplier_acked, commands.Fail(): self._supplier_failed, }, )
def _on_my_dht_relations_discovered(self, dht_result): from p2p import p2p_service from contacts import contactsdb from logs import lg if not (dht_result and isinstance(dht_result, dict) and len(dht_result.get('suppliers', [])) > 0): lg.warn('no dht records found for my customer family') return suppliers_to_be_dismissed = set() # clean up old suppliers for idurl in dht_result['suppliers']: if not idurl: continue if not contactsdb.is_supplier(idurl): lg.warn('dht relation with %s is not valid anymore' % idurl) suppliers_to_be_dismissed.add(idurl) for supplier_idurl in suppliers_to_be_dismissed: p2p_service.SendCancelService( remote_idurl=supplier_idurl, service_name='service_supplier', ) # p2p_service.SendCancelService( # remote_idurl=idurl, # service_name='service_p2p_notifications', # ) if suppliers_to_be_dismissed: lg.info('found %d suppliers to be cleaned and sent CancelService() packets' % len(suppliers_to_be_dismissed))
def doCancelService(self, *args, **kwargs): """ Action method. """ service_info = {} my_customer_key_id = my_id.getGlobalID(key_alias='customer') if my_keys.is_key_registered(my_customer_key_id): service_info['customer_public_key'] = my_keys.get_key_info( key_id=my_customer_key_id, include_private=False, include_signature=False, generate_signature=False, ) ecc_map = kwargs.get('ecc_map') if ecc_map: service_info['ecc_map'] = ecc_map request = p2p_service.SendCancelService( remote_idurl=self.supplier_idurl, service_name='service_supplier', json_payload=service_info, callbacks={ commands.Ack(): self._supplier_service_acked, commands.Fail(): self._supplier_service_failed, }, ) self.request_packet_id = request.PacketID
def doCancelService(self, arg): """ Action method. """ request = p2p_service.SendCancelService( remote_idurl=self.supplier_idurl, service_name='service_supplier', callbacks={ commands.Ack(): self._supplier_acked, commands.Fail(): self._supplier_failed, }, ) self.request_packet_id = request.PacketID
def doCancelService(self, event, *args, **kwargs): """ Action method. """ if event == 'leave': for broker_idurl in self.connected_brokers.values(): if not broker_idurl: continue p2p_service.SendCancelService( remote_idurl=broker_idurl, service_name='service_message_broker', json_payload=self._do_prepare_service_request_params( broker_idurl, action='queue-disconnect'), )
def _on_my_dht_relations_discovered(self, dht_result): from p2p import p2p_service from contacts import contactsdb from userid import my_id from userid import id_url from crypt import my_keys from logs import lg if not (dht_result and isinstance(dht_result, dict) and len(dht_result.get('suppliers', [])) > 0): lg.warn('no dht records found for my customer family') return if id_url.is_some_empty(contactsdb.suppliers()): lg.warn( 'some of my suppliers are not hired yet, skip doing any changes' ) return suppliers_to_be_dismissed = set() dht_suppliers = id_url.to_bin_list(dht_result['suppliers']) # clean up old suppliers for idurl in dht_suppliers: if not idurl: continue if not contactsdb.is_supplier(idurl): lg.warn('dht relation with %r is not valid anymore' % idurl) suppliers_to_be_dismissed.add(idurl) for supplier_idurl in suppliers_to_be_dismissed: service_info = {} my_customer_key_id = my_id.getGlobalID(key_alias='customer') if my_keys.is_key_registered(my_customer_key_id): service_info['customer_public_key'] = my_keys.get_key_info( key_id=my_customer_key_id, include_private=False, include_signature=False, generate_signature=False, ) p2p_service.SendCancelService( remote_idurl=supplier_idurl, service_name='service_supplier', json_payload=service_info, ) if suppliers_to_be_dismissed: lg.info( 'found %d suppliers to be cleaned and sent CancelService() packets' % len(suppliers_to_be_dismissed))