Example #1
0
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()
Example #2
0
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()
Example #3
0
    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
Example #5
0
 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
Example #6
0
 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
Example #7
0
 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 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
Example #9
0
 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
Example #11
0
 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
Example #12
0
    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()