def doInit(self, arg): """ Action method. """ if data_receiver.A(): data_receiver.A().addStateChangedCallback( self._on_data_receiver_state_changed) self.known_suppliers = filter( None, contactsdb.suppliers(customer_idurl=self.customer_idurl)) known_eccmap_dict = {} for supplier_idurl in self.known_suppliers: known_ecc_map = contactsdb.get_supplier_meta_info( supplier_idurl=supplier_idurl, customer_idurl=self.customer_idurl, ).get('ecc_map', None) if known_ecc_map: if known_ecc_map not in known_eccmap_dict: known_eccmap_dict[known_ecc_map] = 0 known_eccmap_dict[known_ecc_map] += 1 if known_eccmap_dict: all_known_eccmaps = known_eccmap_dict.items() all_known_eccmaps.sort(key=lambda i: i[1], reverse=True) self.EccMap = eccmap.eccmap(all_known_eccmaps[0][0]) lg.info('eccmap %s recognized from suppliers meta info' % self.EccMap) else: self.EccMap = eccmap.eccmap( eccmap.GetEccMapName(len(self.known_suppliers))) lg.warn( 'no meta info found, guessed eccmap %s from %d known suppliers' % (self.EccMap, len(self.known_suppliers)))
def doInit(self, arg): """ Action method. """ if data_receiver.A(): data_receiver.A().addStateChangedCallback( self._on_data_receiver_state_changed)
def doInit(self, *args, **kwargs): """ Action method. """ self.known_suppliers = [ _f for _f in contactsdb.suppliers(customer_idurl=self.customer_idurl) if _f ] known_eccmap_dict = {} for supplier_idurl in self.known_suppliers: known_ecc_map = contactsdb.get_supplier_meta_info( supplier_idurl=supplier_idurl, customer_idurl=self.customer_idurl, ).get('ecc_map', None) if known_ecc_map: if known_ecc_map not in known_eccmap_dict: known_eccmap_dict[known_ecc_map] = 0 known_eccmap_dict[known_ecc_map] += 1 if known_eccmap_dict: all_known_eccmaps = list(known_eccmap_dict.items()) all_known_eccmaps.sort(key=lambda i: i[1], reverse=True) self.EccMap = eccmap.eccmap(all_known_eccmaps[0][0]) lg.info('eccmap %r recognized from suppliers meta info' % self.EccMap) else: known_ecc_map = None if driver.is_on('service_shared_data'): from access import shared_access_coordinator active_share = shared_access_coordinator.get_active_share( self.key_id) if active_share: known_ecc_map = active_share.known_ecc_map if known_ecc_map: self.EccMap = eccmap.eccmap(known_ecc_map) lg.info('eccmap %r recognized from active share %r' % ( self.EccMap, active_share, )) else: num_suppliers = len(self.known_suppliers) if num_suppliers not in eccmap.GetPossibleSuppliersCount(): num_suppliers = settings.DefaultDesiredSuppliers() self.EccMap = eccmap.eccmap( eccmap.GetEccMapName(num_suppliers)) lg.warn( 'no meta info found, guessed eccmap %r from %d known suppliers' % (self.EccMap, len(self.known_suppliers))) if data_receiver.A(): data_receiver.A().addStateChangedCallback( self._on_data_receiver_state_changed)
def doDestroyMe(self, arg): """ Remove all references to the state machine object to destroy it. """ if data_receiver.A(): data_receiver.A().removeStateChangedCallback( self._on_data_receiver_state_changed) self.OnHandData = None self.OnHandParity = None self.EccMap = None self.LastAction = None self.RequestFails = None self.MyDeferred = None self.File = None self.destroy()
def doDestroyMe(self, *args, **kwargs): """ Remove all references to the state machine object to destroy it. """ if data_receiver.A(): data_receiver.A().removeStateChangedCallback( self._on_data_receiver_state_changed) self.OnHandData = None self.OnHandParity = None self.EccMap = None self.LastAction = None self.RequestFails = [] self.AlreadyRequestedCounts = {} self.MyDeferred = None self.output_stream = None self.destroy()
def start(self): from customer import io_throttle from customer import data_sender from customer import data_receiver io_throttle.init() data_sender.A('init') data_receiver.A('init') return True
def stop(self): from customer import io_throttle from customer import data_sender from customer import data_receiver data_receiver.A('shutdown') data_sender.SetShutdownFlag() data_sender.Destroy() io_throttle.shutdown() return True
def isAnyDataComming(self, arg): """ Condition method. """ from customer import data_receiver if data_receiver.A().state == 'RECEIVING': return True from transport import packet_in related_packets = packet_in.search(sender_idurl=contactsdb.suppliers()) return len(related_packets) > 0
def doInit(self, *args, **kwargs): """ Action method. """ self.known_suppliers = [ _f for _f in contactsdb.suppliers(customer_idurl=self.customer_idurl) if _f ] known_eccmap_dict = {} for supplier_idurl in self.known_suppliers: known_ecc_map = contactsdb.get_supplier_meta_info( supplier_idurl=supplier_idurl, customer_idurl=self.customer_idurl, ).get('ecc_map', None) if known_ecc_map: if known_ecc_map not in known_eccmap_dict: known_eccmap_dict[known_ecc_map] = 0 known_eccmap_dict[known_ecc_map] += 1 if known_eccmap_dict: all_known_eccmaps = list(known_eccmap_dict.items()) all_known_eccmaps.sort(key=lambda i: i[1], reverse=True) self.EccMap = eccmap.eccmap(all_known_eccmaps[0][0]) lg.info('eccmap %s recognized from suppliers meta info' % self.EccMap) else: num_suppliers = len(self.known_suppliers) if num_suppliers == 0: num_suppliers = settings.DefaultDesiredSuppliers() self.EccMap = eccmap.eccmap(eccmap.GetEccMapName(num_suppliers)) lg.warn( 'no meta info found, guessed eccmap %s from %d known suppliers' % (self.EccMap, len(self.known_suppliers))) if data_receiver.A(): data_receiver.A().addStateChangedCallback( self._on_data_receiver_state_changed)