def extractAllFilesFromDirAndSubdirs(db, logger, extractDir, dirpathRoot): depotRoot1 = "I:\\objectstore1" depotRoot2 = "F:\\objectstore2" logger.log("extracting files from %s to %s" % (dirpathRoot, extractDir)) dirfilelist = miscQueries.getAllPathsAndFilenamesFromDirAndSubdirs( db, dirpathRoot) logger.log("got %d dirs" % len(dirfilelist.keys())) for dirpath in dirfilelist: logger.log("directory %s" % dirpath) filelist = dirfilelist[dirpath] logger.log("%d files" % len(filelist)) for filehash, filename in filelist: logger.log("filehash: %s, filename: %s" % (filehash, filename)) fixedDirpath = dirpath.replace(":", "_") logger.log(fixedDirpath) destinationDir = os.path.join(extractDir, fixedDirpath) logger.log("destination: %s" % destinationDir) if not os.path.isdir(destinationDir): os.makedirs(destinationDir) if not FileUtils.CopyFileFromDepot(db, depotRoot1, destinationDir, filehash, filename): if not FileUtils.CopyFileFromDepot( db, depotRoot2, destinationDir, filehash, filename): logger.log( "#############################file not found, setting status" ) miscQueries.setFileStatus(db, filehash, "notFound")
def extractFileOrSetDeleted(db, destinationDir, filehash, newFilename, logger): depotRoot1 = "I:\\objectstore1" depotRoot2 = "F:\\objectstore2" if not FileUtils.CopyFileFromDepot(db, depotRoot1, destinationDir, filehash, newFilename): if not FileUtils.CopyFileFromDepot(db, depotRoot2, destinationDir, filehash, newFilename): logger.log("file not found, setting status") miscQueries.setFileStatus(db, filehash, "deleted")
def extractFile(db, destinationDir, filehash, newFilename, logger): depotRoot1 = "I:\\objectstore1" depotRoot2 = "F:\\objectstore2" if not FileUtils.CopyFileFromDepot(db, depotRoot1, destinationDir, filehash, newFilename): if not FileUtils.CopyFileFromDepot(db, depotRoot2, destinationDir, filehash, newFilename): logger.log("ERROR, file not found") exit(1)
def getFilesFromBackup(db, logger): depotRootPath = "F:\objectstore1p5" destinationDirPath = "I:\\replacements" #list = miscQueries.getFilesWithStatus(db, "foundReplacement") #for item in list: # filehash = item[0] # miscQueries.setFileStatus(db, filehash, "notFound") #exit(1) list = miscQueries.getFilesWithStatus(db, "notFound") for item in list: filehash = item[0] #logger.log(filehash) copied = FileUtils.CopyFileFromDepot(db, depotRootPath, destinationDirPath, filehash, filehash) if copied: logger.log("copied %s" % filehash) miscQueries.setFileStatus(db, filehash, "foundReplacement")