def __parseAllKIDSInfoFilesList__(self):
   kidsParser = KIDSPatchInfoParser()
   for kidsInfoFile in self._kidsInfoFileList:
     patchInfo = kidsParser.parseKIDSInfoFile(kidsInfoFile)
     if not patchInfo:
       logger.warn("invalid kids info file %s" % kidsInfoFile)
       self._invalidInfoFileSet.add(kidsInfoFile)
       continue
     """ only add to list for info that is related to a KIDS patch"""
     installName = patchInfo.installName
     if installName not in self._kidsInstallNameDict:
       logger.warn("no KIDS file related to %s" % patchInfo)
       if installName in self._missKidsBuildDict:
         logger.warn("duplicated kids install name")
         if kidsInfoFile != self._missKidsBuildDict[installName].kidsInfoPath:
           logger.warn("duplicated kids info file name %s" % kidsInfoFile)
         continue
       self._missKidsBuildDict[installName] = patchInfo
       continue
     patchInfo.kidsFilePath = self._kidsInstallNameDict[installName]
     assert patchInfo.kidsFilePath
     """ update PatchInfo kidsSha1 and kidsSha1Path """
     if installName in self._kidsInstallNameSha1Dict:
       sha1Path = self._kidsInstallNameSha1Dict[installName]
       patchInfo.kidsSha1Path = sha1Path
       patchInfo.kidsSha1 = readSha1SumFromSha1File(sha1Path)
     if installName in self._patchInfoDict:
       logger.warn("duplicated installName %s, %s, %s" %
                    (installName, self._patchInfoDict[installName],
                    kidsInfoFile))
     self._patchInfoDict[installName] = patchInfo
def getFileMan22_2RoutineFile(rFile):
  sha1sum = readSha1SumFromSha1File(rFile)
  logger.info("sha1sum is %s" % sha1sum)
  result, path = obtainKIDSBuildFileBySha1(rFile, sha1sum, filedir)
  if not result:
    logger.error("Could not obtain FileMan 22V2 file for %s" % rFile)
    raise Exception("Error getting FileMan 22V2 file for %s" % rFile)
  return path
Beispiel #3
0
def getFileMan22_2RoutineFile(rFile):
  sha1sum = readSha1SumFromSha1File(rFile)
  logger.info("sha1sum is %s" % sha1sum)
  result, path = obtainKIDSBuildFileBySha1(rFile, sha1sum, filedir)
  if not result:
    logger.error("Could not obtain FileMan 22V2 file for %s" % rFile)
    raise Exception("Error getting FileMan 22V2 file for %s" % rFile)
  return path
Beispiel #4
0
 def __parseAllKIDSInfoFilesList__(self):
     kidsParser = PatchInfoParser()
     for kidsInfoFile in self._kidsInfoFileList:
         patchInfo = kidsParser.parseKIDSInfoFile(kidsInfoFile)
         if not patchInfo:
             logger.debug("invalid kids info file %s" % kidsInfoFile)
             self._invalidInfoFileSet.add(kidsInfoFile)
             continue
         """ only add to list for info that is related to a Patch"""
         installName = patchInfo.installName
         if installName not in self._kidsInstallNameDict:
             logger.warn("no KIDS file related to %s (%s)" %
                         (installName, kidsInfoFile))
             if installName in self._missKidsBuildDict:
                 logger.warn("duplicated kids install name")
                 if kidsInfoFile != self._missKidsBuildDict[
                         installName].kidsInfoPath:
                     logger.warn("duplicated kids info file name %s" %
                                 kidsInfoFile)
                 continue
             self._missKidsBuildDict[installName] = patchInfo
             continue
         patchInfo.kidsFilePath = self._kidsInstallNameDict[installName]
         assert patchInfo.kidsFilePath
         """ update PatchInfo kidsSha1 and kidsSha1Path """
         if installName in self._kidsInstallNameSha1Dict:
             sha1Path = self._kidsInstallNameSha1Dict[installName]
             patchInfo.kidsSha1Path = sha1Path
             patchInfo.kidsSha1 = readSha1SumFromSha1File(sha1Path)
         if installName in self._patchInfoDict:
             logger.warn("duplicated installName %s, %s, %s" %
                         (installName, self._patchInfoDict[installName],
                          kidsInfoFile))
         """ merge the dependency if needed, also
       put extra dependency into optional set """
         if installName in self._kidsDepBuildDict:
             infoDepSet = set()
             kidsDepSet = set()
             if patchInfo.depKIDSBuild:
                 infoDepSet = patchInfo.depKIDSBuild
             if self._kidsDepBuildDict[installName]:
                 kidsDepSet = self._kidsDepBuildDict[installName]
             diffSet = kidsDepSet ^ infoDepSet
             if len(diffSet):
                 logger.info("Merging kids dependencies %s" % installName)
                 logger.debug("kids build set is %s" % kidsDepSet)
                 logger.debug("info build set is %s" % infoDepSet)
                 logger.warning("difference set: %s" % diffSet)
                 patchInfo.depKIDSBuild = infoDepSet | kidsDepSet
                 patchInfo.optionalDepSet = infoDepSet - kidsDepSet
             else:
                 patchInfo.depKIDSBuild = infoDepSet
         self._patchInfoDict[installName] = patchInfo
Beispiel #5
0
 def __parseAllKIDSInfoFilesList__(self):
   kidsParser = PatchInfoParser()
   for kidsInfoFile in self._kidsInfoFileList:
     patchInfo = kidsParser.parseKIDSInfoFile(kidsInfoFile)
     if not patchInfo:
       logger.debug("invalid kids info file %s" % kidsInfoFile)
       self._invalidInfoFileSet.add(kidsInfoFile)
       continue
     """ only add to list for info that is related to a Patch"""
     installName = patchInfo.installName
     if installName not in self._kidsInstallNameDict:
       logger.warn("no KIDS file related to %s (%s)" % (installName, kidsInfoFile))
       if installName in self._missKidsBuildDict:
         logger.warn("duplicated kids install name")
         if kidsInfoFile != self._missKidsBuildDict[installName].kidsInfoPath:
           logger.warn("duplicated kids info file name %s" % kidsInfoFile)
         continue
       self._missKidsBuildDict[installName] = patchInfo
       continue
     patchInfo.kidsFilePath = self._kidsInstallNameDict[installName]
     assert patchInfo.kidsFilePath
     """ update PatchInfo kidsSha1 and kidsSha1Path """
     if installName in self._kidsInstallNameSha1Dict:
       sha1Path = self._kidsInstallNameSha1Dict[installName]
       patchInfo.kidsSha1Path = sha1Path
       patchInfo.kidsSha1 = readSha1SumFromSha1File(sha1Path)
     if installName in self._patchInfoDict:
       logger.warn("duplicated installName %s, %s, %s" %
                    (installName, self._patchInfoDict[installName],
                    kidsInfoFile))
     """ merge the dependency if needed, also
         put extra dependency into optional set """
     if installName in self._kidsDepBuildDict:
       infoDepSet = set()
       kidsDepSet = set()
       if patchInfo.depKIDSBuild:
         infoDepSet = patchInfo.depKIDSBuild
       if self._kidsDepBuildDict[installName]:
         kidsDepSet = self._kidsDepBuildDict[installName]
       diffSet = kidsDepSet ^ infoDepSet
       if len(diffSet):
         logger.info("Merging kids dependencies %s" % installName)
         logger.debug("kids build set is %s" % kidsDepSet)
         logger.debug("info build set is %s" % infoDepSet)
         logger.warning("difference set: %s" % diffSet)
         patchInfo.depKIDSBuild = infoDepSet | kidsDepSet
         patchInfo.optionalDepSet = infoDepSet - kidsDepSet
       else:
         patchInfo.depKIDSBuild = infoDepSet
     self._patchInfoDict[installName] = patchInfo
Beispiel #6
0
 def __addMissKIDSInfoPatch__(self):
   for kidsInstallName in self._missKidsInfoSet:
     logger.debug("Installation Name: %s, does not have info file, %s" %
               (kidsInstallName, self._kidsInstallNameDict[kidsInstallName]))
     patchInfo = PatchInfo()
     patchInfo.installName = kidsInstallName
     setPatchInfoFromInstallName(kidsInstallName, patchInfo)
     if kidsInstallName in self._kidsInstallNameSha1Dict:
       sha1Path = self._kidsInstallNameSha1Dict[kidsInstallName]
       patchInfo.kidsSha1Path = sha1Path
       patchInfo.kidsSha1 = readSha1SumFromSha1File(sha1Path)
     if kidsInstallName in self._installNameSeqMap:
       patchInfo.seqNo = self._installNameSeqMap[kidsInstallName]
     patchInfo.kidsFilePath = self._kidsInstallNameDict[kidsInstallName]
     if kidsInstallName in self._kidsDepBuildDict:
       logger.info("update the Missing Info KIDS depencency %s" %
           kidsInstallName)
       patchInfo.depKIDSBuild = self._kidsDepBuildDict[kidsInstallName]
     self._patchInfoDict[kidsInstallName] = patchInfo
Beispiel #7
0
 def __addMissKIDSInfoPatch__(self):
   for kidsInstallName in self._missKidsInfoSet:
     logger.debug("Installation Name: %s, does not have info file, %s" %
               (kidsInstallName, self._kidsInstallNameDict[kidsInstallName]))
     patchInfo = PatchInfo()
     patchInfo.installName = kidsInstallName
     setPatchInfoFromInstallName(kidsInstallName, patchInfo)
     if kidsInstallName in self._kidsInstallNameSha1Dict:
       sha1Path = self._kidsInstallNameSha1Dict[kidsInstallName]
       patchInfo.kidsSha1Path = sha1Path
       patchInfo.kidsSha1 = readSha1SumFromSha1File(sha1Path)
     if kidsInstallName in self._installNameSeqMap:
       patchInfo.seqNo = self._installNameSeqMap[kidsInstallName]
     patchInfo.kidsFilePath = self._kidsInstallNameDict[kidsInstallName]
     if kidsInstallName in self._kidsDepBuildDict:
       logger.info("update the Missing Info KIDS depencency %s" %
           kidsInstallName)
       patchInfo.depKIDSBuild = self._kidsDepBuildDict[kidsInstallName]
     self._patchInfoDict[kidsInstallName] = patchInfo
    def __getGlobalFileList__(self):
        globalFiles = []
        if self._globalFiles is None or len(self._globalFiles) == 0:
            return globalFiles
        for gFile in self._globalFiles:
            if isValidGlobalFileSuffix(gFile):
                globalFiles.append(gFile)
                continue
            if isValidGlobalSha1Suffix(gFile):  # external file
                sha1Sum = readSha1SumFromSha1File(gFile)
                (result, path) = obtainKIDSBuildFileBySha1(gFile, sha1Sum, DEFAULT_CACHE_DIR)
                if not result:
                    logger.error("Could not obtain global file for %s" % gFile)
                    raise Exception("Error getting global file for %s" % gFile)
                globalFiles.append(path)

        if len(globalFiles) > 0:
            logger.info("global file lists %s" % globalFiles)
        return globalFiles
Beispiel #9
0
def downloadAllKIDSSha1File(topDir, cacheDir):
  from ConvertToExternalData import isValidKIDSBuildSha1Suffix
  from ConvertToExternalData import readSha1SumFromSha1File
  import shutil
  initConsoleLogging()
  absCurDir = os.path.abspath(topDir)
  for (root, dirs, files) in os.walk(absCurDir):
    for f in files:
      if not isValidKIDSBuildSha1Suffix(f):
        continue
      filePath = os.path.join(root, f)
      sha1Sum = readSha1SumFromSha1File(filePath)
      result, extFilePath = obtainKIDSBuildFileBySha1(filePath, sha1Sum, cacheDir)
      if result:
        destFile = filePath[:filePath.rfind('.')]
        if os.path.exists(destFile) and generateSha1Sum(destFile) == sha1Sum:
          logger.info("%s is already current" % destFile)
          continue
        logger.info("%s => %s" % (extFilePath, destFile))
        shutil.copyfile(extFilePath, destFile)
Beispiel #10
0
    def __getGlobalFileList__(self):
        globalFiles = []
        if self._globalFiles is None or len(self._globalFiles) == 0:
            return globalFiles
        for gFile in self._globalFiles:
            if isValidGlobalFileSuffix(gFile):
                globalFiles.append(gFile)
                continue
            if isValidGlobalSha1Suffix(gFile):  # external file
                sha1Sum = readSha1SumFromSha1File(gFile)
                (result,
                 path) = obtainKIDSPatchFileBySha1(gFile, sha1Sum,
                                                   DEFAULT_CACHE_DIR)
                if not result:
                    logger.error("Could not obtain global file for %s" % gFile)
                    raise Exception("Error getting global file for %s" % gFile)
                globalFiles.append(path)

        if len(globalFiles) > 0:
            logger.info("global file lists %s" % globalFiles)
        return globalFiles