def _loadValidatedActorSource(self, sourceHash, sourceZip, sourceInfo): # Validate the source file; this doesn't actually utilize the # sourceZip, but it ensures that the sourceZip isn't garbage # before registering it as active source. try: f = SourceHashFinder(sourceHash, lambda v: v, sourceZip) namelist = f.getZipNames() logging.getLogger('Thespian').info( 'Validated source hash %s - %s, %s modules (%s)', sourceHash, sourceInfo, len(namelist), ', '.join(namelist if len(namelist) < 10 else namelist[:9] + ['...'])) except Exception as ex: logging.getLogger('Thespian')\ .error('Validated source (hash %s) is corrupted: %s', sourceHash, ex) return # Store this registered source self._sources[sourceHash] = ValidSource(sourceHash, sourceZip, str(sourceInfo)) msg = LoadedSource(self._sources[sourceHash].srcHash, self._sources[sourceHash].srcInfo) for each in self._sourceNotifications: self._send_intent(TransmitIntent(each, msg))
def _loadValidatedActorSource(self, sourceHash, sourceZip, sourceInfo): # Validate the source file; this doesn't actually utilize the # sourceZip, but it ensures that the sourceZip isn't garbage # before registering it as active source. if sourceHash not in self._sources: logging.getLogger('Thespian').warning( 'Provided validated source with no or expired request' ', hash %s; ignoring.', sourceHash) return try: f = SourceHashFinder(sourceHash, lambda v: v, sourceZip) namelist = f.getZipNames() logging.getLogger('Thespian').info( 'Validated source hash %s - %s, %s modules (%s)', sourceHash, sourceInfo, len(namelist), ', '.join(namelist if len(namelist) < 10 else namelist[:9] + ['...'])) except Exception as ex: logging.getLogger('Thespian')\ .error('Validated source (hash %s) is corrupted: %s', sourceHash, ex) return if self._sources[sourceHash].source_valid: # If a duplicate source load request is made while the # first is still being validated by the Source Authority, # another request will be sent to the Source Authority and # the latter response will be a duplicate here and can # simply be dropped. return # Store this registered source pending_actors = self._sources[sourceHash].pending_actors self._sources[sourceHash] = ValidSource(sourceHash, self._sources[sourceHash].orig_data, sourceZip, str(sourceInfo)) for each in pending_actors: self.h_PendingActor(each) msg = LoadedSource(self._sources[sourceHash].srcHash, self._sources[sourceHash].srcInfo) for each in self._sourceNotifications: self._send_intent(TransmitIntent(each, msg))
def _loadValidatedActorSource(self, sourceHash, sourceZip): # Validate the source file try: f = SourceHashFinder(sourceHash, lambda v: v, sourceZip) namelist = f.getZipNames() logging.getLogger('Thespian').info( 'Validated source hash %s, %s modules (%s)', sourceHash, len(namelist), ', '.join(namelist if len(namelist) < 10 else namelist[:9] + ['...'])) except Exception as ex: logging.getLogger('Thespian').error( 'Validated source (hash %s) is corrupted: %s', sourceHash, ex) return # Store this registered source self._sources[sourceHash] = sourceZip
def _loadValidatedActorSource(self, sourceHash, sourceZip): # Validate the source file try: f = SourceHashFinder(sourceHash, lambda v: v, sourceZip) namelist = f.getZipNames() logging.getLogger('Thespian').info( 'Validated source hash %s, %s modules (%s)', sourceHash, len(namelist), ', '.join(namelist if len(namelist) < 10 else namelist[:9] + ['...'])) except Exception as ex: logging.getLogger('Thespian').error('Validated source (hash %s) is corrupted: %s', sourceHash, ex) return # Store this registered source self._sources[sourceHash] = sourceZip
def _loadValidatedActorSource(self, sourceHash, sourceZip): # Validate the source file; this doesn't actually utilize the # sourceZip, but it ensures that the sourceZip isn't garbage # before registering it as active source. try: f = SourceHashFinder(sourceHash, lambda v: v, sourceZip) namelist = f.getZipNames() logging.getLogger('Thespian').info( 'Validated source hash %s, %s modules (%s)', sourceHash, len(namelist), ', '.join(namelist if len(namelist) < 10 else namelist[:9] + ['...'])) except Exception as ex: logging.getLogger('Thespian').error('Validated source (hash %s) is corrupted: %s', sourceHash, ex) return # Store this registered source self._sources[sourceHash] = sourceZip
def _loadValidatedActorSource(self, sourceHash, sourceZip): if sourceHash in self._sources: self.unloadActorSource(sourceHash) if not sourceZip: logging.getLogger("Thespian").info("Unloaded source hash %s", sourceHash) return # Validate the source file try: f = SourceHashFinder(sourceHash, lambda v: v, sourceZip) namelist = f.getZipNames() logging.getLogger("Thespian").info( "Validated source hash %s, %s modules (%s)", sourceHash, len(namelist), ", ".join(namelist if len(namelist) < 10 else namelist[:9] + ["..."]), ) except Exception as ex: logging.getLogger("Thespian").error("Validated source (hash %s) is corrupted: %s", sourceHash, ex) return # Store this registered source self._sources[sourceHash] = sourceZip
def _loadValidatedActorSource(self, sourceHash, sourceZip): # Validate the source file by constructing a SourceHashFinder # for it and seeing if that SourceHashFinder can access the # contents. try: f = SourceHashFinder(sourceHash, lambda v: v, sourceZip) namelist = f.getZipNames() logging.getLogger('Thespian').info( 'Validated source hash %s, %s modules (%s)', sourceHash, len(namelist), ', '.join(namelist if len(namelist) < 10 else namelist[:9] + ['...'])) except Exception as ex: logging.getLogger('Thespian').error( 'Validated source (hash %s) is corrupted: %s', sourceHash, ex) return # Store this registered source self._sources[sourceHash] = sourceZip # Generate notifications for each_target in self._sourceNotifications: self.actor_send(self.system.systemAddress, each_target, LoadedSource(sourceHash, '')) # no info available
def _loadValidatedActorSource(self, sourceHash, sourceZip): # Validate the source file by constructing a SourceHashFinder # for it and seeing if that SourceHashFinder can access the # contents. try: f = SourceHashFinder(sourceHash, lambda v: v, sourceZip) namelist = f.getZipNames() logging.getLogger('Thespian').info( 'Validated source hash %s, %s modules (%s)', sourceHash, len(namelist), ', '.join(namelist if len(namelist) < 10 else namelist[:9] + ['...'])) except Exception as ex: logging.getLogger('Thespian').error('Validated source (hash %s) is corrupted: %s', sourceHash, ex) return # Store this registered source self._sources[sourceHash] = sourceZip # Generate notifications for each_target in self._sourceNotifications: self.actor_send(self.system.systemAddress, each_target, LoadedSource(sourceHash, '')) # no info available