def _initInstallRootRepos(self, repoSack, installRoot): if installRoot == "/": return True builder = AinstPackageSackBuilder(installRoot) sack = builder.buildInstalledPkgRepoSack() if sack is None: Log.cout(Log.DEBUG, "Build install pkg sack of %s failed" % installRoot) return False repoSack.addPackageSack(self.installRootRepoPrefix + installRoot, sack) return True
def buildLocalRemoveContext(self, installRoot): if installRoot == "/": return None builder = AinstPackageSackBuilder(installRoot) sack = builder.buildInstalledPkgSack() if sack is None: Log.cout(Log.DEBUG, "Build install pkg sack of %s failed" % installRoot) return None rootSack = RPMDBPackageSack("/") return AinstContextImpl(installRoot, None, rootSack, sack)
def _initInstallRootRepos(self, repoSack, installRoot): if installRoot == '/': return True builder = AinstPackageSackBuilder(installRoot) sack = builder.buildInstalledPkgRepoSack() if sack is None: Log.cout(Log.DEBUG, 'Build install pkg sack of %s failed' % installRoot) return False repoSack.addPackageSack(self.installRootRepoPrefix + installRoot, sack) return True
def buildLocalRemoveContext(self, installRoot): if installRoot == '/': return None builder = AinstPackageSackBuilder(installRoot) sack = builder.buildInstalledPkgSack() if sack is None: Log.cout(Log.DEBUG, 'Build install pkg sack of %s failed' % installRoot) return None rootSack = RPMDBPackageSack('/') return AinstContextImpl(installRoot, None, rootSack, sack)
def buildMultiRootContext(self, installRoots, ainstConf, useRepo=False, repos=[]): repoSack = None if useRepo: repoSack = self._initRepos(ainstConf, repos) if repoSack is None: return None rootSack = None localSack = MultiPackageSack() for installRoot in installRoots: if installRoot == '/': rootSack = RPMDBPackageSack('/') else: sack = AinstPackageSackBuilder( installRoot).buildActivePkgSack() if sack is None: Log.cout( Log.DEBUG, 'Build active pkg sack of %s failed' % installRoot) continue localSack.addPackageSack(installRoot, sack) return AinstMultiRootContext(rootSack, localSack, repoSack)
def buildAinstContext( self, installRoot, ainstConf, useRepo=True, repos=[], localRepos=[], localRoots=None, localActivePkgs=None, localDeactivePkgs=None, ): repoSack = None if useRepo: repoSack = self._initRepos(ainstConf, repos) self._initLocalRepos(repoSack, localRepos) self._initInstallRootRepos(repoSack, installRoot) if repoSack is None: return None rootSack = RPMDBPackageSack("/") localSacks = MultiPackageSack() if installRoot == "/": if localRoots: for localRoot in localRoots: builder = AinstPackageSackBuilder(localRoot) sack = builder.buildActivePkgSack() if sack is None: Log.cout(Log.DEBUG, "Build active pkg sack of %s failed" % localRoot) continue localSacks.addPackageSack(localRoot, sack) else: builder = AinstPackageSackBuilder(installRoot) sack = builder.buildActivePkgSack() if sack is None: Log.cout(Log.DEBUG, "Build active pkg sack of %s failed" % installRoot) else: localSacks.addPackageSack(installRoot, sack) self._addFakeLocalInstallPkgs(localActivePkgs, installRoot, localSacks) if not self._removeWillDeactivePkgs(localSacks, localDeactivePkgs): return None return AinstContextImpl(installRoot, repoSack, rootSack, localSacks)
def buildAinstContext(self, installRoot, ainstConf, useRepo=True, repos=[], localRepos=[], localRoots=None, localActivePkgs=None, localDeactivePkgs=None): repoSack = None if useRepo: repoSack = self._initRepos(ainstConf, repos) self._initLocalRepos(repoSack, localRepos) self._initInstallRootRepos(repoSack, installRoot) if repoSack is None: return None rootSack = RPMDBPackageSack('/') localSacks = MultiPackageSack() if installRoot == '/': if localRoots: for localRoot in localRoots: builder = AinstPackageSackBuilder(localRoot) sack = builder.buildActivePkgSack() if sack is None: Log.cout( Log.DEBUG, 'Build active pkg sack of %s failed' % localRoot) continue localSacks.addPackageSack(localRoot, sack) else: builder = AinstPackageSackBuilder(installRoot) sack = builder.buildActivePkgSack() if sack is None: Log.cout(Log.DEBUG, 'Build active pkg sack of %s failed' % installRoot) else: localSacks.addPackageSack(installRoot, sack) self._addFakeLocalInstallPkgs(localActivePkgs, installRoot, localSacks) if not self._removeWillDeactivePkgs(localSacks, localDeactivePkgs): return None return AinstContextImpl(installRoot, repoSack, rootSack, localSacks)