def checkDigest(self, downloadRetriesLeft=3): CraftCore.log.debug("ArchiveSource.checkDigest called") filenames = self.localFileNames() if self.subinfo.hasTargetDigestUrls(): CraftCore.log.debug("check digests urls") if not CraftHash.checkFilesDigests(self.__downloadDir, filenames): CraftCore.log.error("invalid digest file") redownload = downloadRetriesLeft and CraftChoicePrompt.promptForChoice( "Do you want to delete the files and redownload them?", [("Yes", True), ("No", False)], default="Yes") if redownload: for filename in filenames: CraftCore.log.info( f"Deleting downloaded file: {filename}") utils.deleteFile( os.path.join(self.__downloadDir, filename)) for digestAlgorithm, digestFileEnding in CraftHash.HashAlgorithm.fileEndings( ).items(): digestFileName = filename + digestFileEnding if os.path.exists( os.path.join(self.__downloadDir, digestFileName)): CraftCore.log.info( f"Deleting downloaded file: {digestFileName}" ) utils.deleteFile( os.path.join(self.__downloadDir, digestFileName)) return self.fetch() and self.checkDigest( downloadRetriesLeft - 1) return False elif self.subinfo.hasTargetDigests(): CraftCore.log.debug("check digests") digests, algorithm = self.subinfo.targetDigest() if not CraftHash.checkFilesDigests(self.__downloadDir, filenames, digests, algorithm): CraftCore.log.error("invalid digest file") redownload = downloadRetriesLeft and CraftChoicePrompt.promptForChoice( "Do you want to delete the files and redownload them?", [("Yes", True), ("No", False)], default="Yes") if redownload: for filename in filenames: CraftCore.log.info( f"Deleting downloaded file: {filename}") utils.deleteFile( os.path.join(self.__downloadDir, filename)) return self.fetch() and self.checkDigest( downloadRetriesLeft - 1) return False else: CraftCore.log.debug("print source file digests") CraftHash.printFilesDigests( self.__downloadDir, filenames, self.subinfo.buildTarget, algorithm=CraftHash.HashAlgorithm.SHA256) return True
def checkDigest(self): craftDebug.log.debug("ArchiveSource.checkDigest called") filenames = self.localFileNames() if self.subinfo.hasTargetDigestUrls(): craftDebug.log.debug("check digests urls") if not CraftHash.checkFilesDigests(CraftStandardDirs.downloadDir(), filenames): craftDebug.log.error("invalid digest file") return False elif self.subinfo.hasTargetDigests(): craftDebug.log.debug("check digests") digests, algorithm = self.subinfo.targetDigest() if not CraftHash.checkFilesDigests(CraftStandardDirs.downloadDir(), filenames, digests, algorithm): craftDebug.log.error("invalid digest file") return False else: craftDebug.log.debug("print source file digests") CraftHash.printFilesDigests( CraftStandardDirs.downloadDir(), filenames, self.subinfo.buildTarget, algorithm=CraftHash.HashAlgorithm.SHA256) return True
def checkDigest(self, downloadRetriesLeft=3): CraftCore.log.debug("ArchiveSource.checkDigest called") filenames = self.localFileNames() if self.subinfo.hasTargetDigestUrls(): CraftCore.log.debug("check digests urls") if not CraftHash.checkFilesDigests(self.__downloadDir, filenames): CraftCore.log.error("invalid digest file") return self.__retry(downloadRetriesLeft, self.__redownload, filenames=filenames) elif self.subinfo.hasTargetDigests(): CraftCore.log.debug("check digests") digests, algorithm = self.subinfo.targetDigest() if not CraftHash.checkFilesDigests(self.__downloadDir, filenames, digests, algorithm): CraftCore.log.error("invalid digest file") return self.__retry(downloadRetriesLeft, self.__redownload, filenames=filenames) else: CraftCore.log.debug("print source file digests") CraftHash.printFilesDigests( self.__downloadDir, filenames, self.subinfo.buildTarget, algorithm=CraftHash.HashAlgorithm.SHA256) return True
def test_printFilesDigests(self): path, name = os.path.split(self.tmpFile) log = io.StringIO() oldLog = CraftCore.debug._handler.stream CraftCore.debug._handler.stream = log CraftHash.printFilesDigests(path, [name], "test", CraftHash.HashAlgorithm.SHA256) self.assertEquals( "Digests for test: (['4fc1e96dc5ecf625efe228fce1b0964b6302cfa4d4fb2bb8d16c665d23f6ff30'], CraftHash.HashAlgorithm.SHA256)\n", log.getvalue()) CraftCore.debug._handler.stream = oldLog