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
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])
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
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
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
def _isActive(self, activePath, pkgDirName): relativePkgPath = self._getActiveRelativePath(pkgDirName) linkPath = file_util.readLink(activePath) if linkPath and linkPath == relativePkgPath: return True return False
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