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)
Example #3
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 %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()
Example #5
0
 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()
Example #6
0
 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
Example #7
0
 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
Example #8
0
 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
Example #9
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)