示例#1
0
 def _symLinkToActive(self, relativePkgPath, ainstActivePkg):
     lastActivePkg = file_util.readLink(ainstActivePkg)
     if not file_util.remove(ainstActivePkg):
         return False, None
     if not file_util.symLink(relativePkgPath, ainstActivePkg):
         return False, lastActivePkg
     return True, lastActivePkg
示例#2
0
 def _isActiveFile(self, fileName):
     filePkgDb = self._getFilePkgDb()
     if not filePkgDb.open():
         return False
     pkgName = filePkgDb.get(fileName)
     if pkgName is None:
         return self._returnAndCloseDb(False, [filePkgDb])
     self._ainstActivePkg = self._ainstRoot.getRootVarAinstDir(
         'active') + pkgName
     linkPath = file_util.readLink(self._ainstActivePkg)
     if linkPath and linkPath.startswith('../packages/'):
         return self._returnAndCloseDb(True, [filePkgDb])
     return self._returnAndCloseDb(False, [filePkgDb])
示例#3
0
 def getActivePackages(self):
     'return list [(pkg, pkg-version, mtime)]'
     activePkgs = []
     activeDir = self._ainstRoot.getRootVarAinstDir('active')
     subDirs = file_util.listDir(activeDir)
     if not subDirs:
         return activePkgs
     for subDir in subDirs:
         subDirPath = activeDir + '/' + subDir
         linkPath = file_util.readLink(subDirPath)
         if linkPath and linkPath.startswith('../packages/'):
             packageName = os.path.basename(linkPath)
             mtime = os.lstat(subDirPath).st_mtime
             activePkgs.append((subDir, packageName, mtime))
     return activePkgs
示例#4
0
 def getPkgCrontabs(self):
     pkgCrontabs = {}
     crontabDir = self._ainstRoot.getRootVarDir('cron')
     activeDir = self._ainstRoot.getRootVarAinstDir('active')
     cronFiles = file_util.listDir(crontabDir)
     if not cronFiles:
         return pkgCrontabs
     for cronFile in cronFiles:
         activePath = activeDir + '/' + cronFile
         linkPath = file_util.readLink(activePath)
         if linkPath and linkPath.startswith('../packages/'):
             cronFilePath = crontabDir + '/' + cronFile
             content = file_util.readFromFile(cronFilePath)
             if content:
                 pkgCrontabs[cronFile] = content
     return pkgCrontabs
示例#5
0
 def getActivePkgMetas(self):
     'return list [(pkg, rpmFilePath, aicfFilePath)]'
     activePkgMetas = []
     activeDir = self._ainstRoot.getRootVarAinstDir('active')
     subDirs = file_util.listDir(activeDir)
     if subDirs is None:
         return None
     for subDir in subDirs:
         subDirPath = activeDir + '/' + subDir
         linkPath = file_util.readLink(subDirPath)
         if linkPath and linkPath.startswith('../packages/'):
             pkgPath = self._ainstRoot.getRootVarAinstDir('packages') +\
                 os.path.basename(linkPath) 
             rpmPath = pkgPath + self._ainstRoot.getBackRpmPath()
             aicfFile = pkgPath + '/ainst/' + subDir + '.aicf'
             activePkgMetas.append((subDir, rpmPath, aicfFile))
     return activePkgMetas
 def _unSymlinkFromActive(self, ainstActivePkg):
     if file_util.isLink(ainstActivePkg):
         lastActivePkg = file_util.readLink(ainstActivePkg)
     if not file_util.remove(ainstActivePkg):
         return False, None
     return True, lastActivePkg
示例#7
0
 def _isActive(self, activePath, pkgDirName):
     relativePkgPath = self._getActiveRelativePath(pkgDirName)
     linkPath = file_util.readLink(activePath)
     if linkPath and linkPath == relativePkgPath:
         return True
     return False
示例#8
0
 def _isActive(self, activePath, pkgDirName):
     relativePkgPath = self._getActiveRelativePath(pkgDirName)
     linkPath = file_util.readLink(activePath)
     if linkPath and linkPath == relativePkgPath:
         return True            
     return False
示例#9
0
 def isActivePackage(self, pkg):
     activePath = self._ainstRoot.getRootVarAinstDir('active') + pkg.name
     linkPath = file_util.readLink(activePath)
     if linkPath and linkPath.startswith('../packages/'):
         return True
     return False