class YumRepository(Repository): def __init__(self, repoid, repoConfig, maxFileLength=1024 * 1024 * 1024 * 2, retryTime=3, socketTimeout=5): Repository.__init__(self, repoid) self.repoConfig = repoConfig self.cachedir = None self.expireTime = None self.enabled = bool(repoConfig.enabled) self.maxFileLength = maxFileLength self.retryTime = retryTime self.socketTimeout = socketTimeout def getBaseUrl(self): return self.repoConfig.baseurl def makeCache(self): cacheHandler = RepoCacheHandler(self.id, self.repoConfig, self.cachedir, self.expireTime, self.maxFileLength, self.retryTime, self.socketTimeout) if not cacheHandler.makeCache(force=True): return False return True def clearCache(self): cacheHandler = RepoCacheHandler(self.id, self.repoConfig, self.cachedir, self.expireTime, self.maxFileLength, self.retryTime, self.socketTimeout) return cacheHandler.clearCache() def getPackageSack(self): if self.packageSack is None: self._initPackageSack() return self.packageSack def _initPackageSack(self): cacheHandler = RepoCacheHandler(self.id, self.repoConfig, self.cachedir, self.expireTime, self.maxFileLength, self.retryTime, self.socketTimeout) pkgList = cacheHandler.getMetaData() if pkgList is None: self.packageSack = None return None self.packageSack = PackageSack() for pkg in pkgList: pkg.repo = self self.packageSack.addPackageObject(pkg) self.packageSack.buildIndex()
class YumRepository(Repository): def __init__(self, repoid, repoConfig, maxFileLength=1024*1024*1024*2, retryTime=3, socketTimeout=5): Repository.__init__(self, repoid) self.repoConfig = repoConfig self.cachedir = None self.expireTime = None self.enabled = bool(repoConfig.enabled) self.maxFileLength = maxFileLength self.retryTime = retryTime self.socketTimeout = socketTimeout def getBaseUrl(self): return self.repoConfig.baseurl def makeCache(self): cacheHandler = RepoCacheHandler(self.id, self.repoConfig, self.cachedir, self.expireTime, self.maxFileLength, self.retryTime, self.socketTimeout) if not cacheHandler.makeCache(force=True): return False return True def clearCache(self): cacheHandler = RepoCacheHandler(self.id, self.repoConfig, self.cachedir, self.expireTime, self.maxFileLength, self.retryTime, self.socketTimeout) return cacheHandler.clearCache() def getPackageSack(self): if self.packageSack is None: self._initPackageSack() return self.packageSack def _initPackageSack(self): cacheHandler = RepoCacheHandler(self.id, self.repoConfig, self.cachedir, self.expireTime, self.maxFileLength, self.retryTime, self.socketTimeout) pkgList = cacheHandler.getMetaData() if pkgList is None: self.packageSack = None return None self.packageSack = PackageSack() for pkg in pkgList: pkg.repo = self self.packageSack.addPackageObject(pkg) self.packageSack.buildIndex()
def buildInstalledPkgRepoSack(self): sack = PackageSack() ainstRoot = AinstRoot(self._installRoot) if not ainstRoot.isValidAinstRoot(): Log.cout(Log.DEBUG, '%s is invalid ainst root' % self._installRoot) return None reader = AinstRootReader(ainstRoot) installPkgMetas = reader.getInstallPkgMetas() if installPkgMetas is None: Log.cout(Log.DEBUG, 'Get install meta of %s failed' % self._installRoot) return None for pkgVer, rpmPath in installPkgMetas: pkg = LocalRpmPackage(rpmPath) if pkg.init(): sack.addPackageObject(pkg) return sack
def _initLocalRepos(self, repoSack, localRepos): if not localRepos: return True if not repoSack: repoSack = MultiPackageSack() for local in localRepos: fileNames = file_util.listDir(local) if not fileNames: continue pkgSack = PackageSack() for name in fileNames: path = local + '/' + name pkg = LocalRpmPackage(path) if pkg.init(): pkgSack.addPackageObject(pkg) repoSack.addPackageSack(local, pkgSack) return True
def _initLocalRepos(self, repoSack, localRepos): if not localRepos: return True if not repoSack: repoSack = MultiPackageSack() for local in localRepos: fileNames = file_util.listDir(local) if not fileNames: continue pkgSack = PackageSack() for name in fileNames: path = local + "/" + name pkg = LocalRpmPackage(path) if pkg.init(): pkgSack.addPackageObject(pkg) repoSack.addPackageSack(local, pkgSack) return True
def buildInstalledPkgSack(self): sack = PackageSack() ainstRoot = AinstRoot(self._installRoot) if not ainstRoot.isValidAinstRoot(): Log.cout(Log.DEBUG, '%s is invalid ainst root' % self._installRoot) return None reader = AinstRootReader(ainstRoot) installPkgMetas = reader.getInstallPkgMetas() if installPkgMetas is None: Log.cout(Log.DEBUG, 'Get install meta of %s failed' % self._installRoot) return None for pkgVer, rpmPath in installPkgMetas: header = rpmutils.readRpmHeader(rpmPath) if header: repo = FakeRepository(self._installRoot, True) pkg = AinstRpmPackage(header, repo) sack.addPackageObject(pkg) return sack
def buildActivePkgSack(self): sack = PackageSack() ainstRoot = AinstRoot(self._installRoot) if not ainstRoot.isValidAinstRoot(): Log.cout(Log.DEBUG, '%s is invalid ainst root' % self._installRoot) return None reader = AinstRootReader(ainstRoot) activePkgMetas = reader.getActivePkgMetas() if activePkgMetas is None: Log.cout(Log.DEBUG, 'Get active meta of %s failed' % self._installRoot) return None for pkgName, rpmPath, aicfPath in activePkgMetas: aicfInfo = None if file_util.isFile(aicfPath): aicfInfo = AicfParser().parse(aicfPath) header = rpmutils.readRpmHeader(rpmPath) if header: repo = FakeRepository(self._installRoot, True) pkg = AinstRpmPackage(header, repo, aicfInfo) sack.addPackageObject(pkg) return sack