def install(self, pkgs, param, command): streamer = RootInfoDbStreamer() rootInfo = streamer.load(self._ainstConf.rootinfo) if rootInfo is None: Log.cout(Log.ERROR, 'Load root info failed') return OperatorRet.OPERATE_FAILED context = self._contextBuilder.buildAinstContext(self._installRoot, self._ainstConf, True, param.repos, param.localRepos, localRoots=rootInfo.installRootSet) if context is None: Log.cout(Log.ERROR, 'Build context failed') return OperatorRet.OPERATE_FAILED installPkgs = self._selectInstallPkgs(context, pkgs) if not installPkgs: Log.cout(Log.INFO, 'No package to install') return OperatorRet.OPERATE_FAILED resolverOption = self._getResolverOption(param) depResolver = RecursiveDepResolver(context, resolverOption) ret, operations, topOrder = depResolver.install(installPkgs) if ret != error.ERROR_NONE: Log.cout(Log.ERROR, 'Dependency resovle failed') return OperatorRet.OPERATE_FAILED if not operations: Log.cout(Log.INFO, 'No effective operations') return OperatorRet.OPERATE_SUCCESS self._displayOperations(operations) if param.dryRun: return OperatorRet.OPERATE_SUCCESS if not param.confirmYes and not Log.coutConfirm(): return True if not self._doRpmTransaction(operations): Log.cout(Log.ERROR, 'Do rpm transaction failed') return OperatorRet.OPERATE_FAILED return OperatorRet.OPERATE_SUCCESS
def remove(self, pkgs, param, command): streamer = RootInfoDbStreamer() rootInfo = streamer.load(self._ainstConf.rootinfo) if rootInfo is None: Log.cout(Log.ERROR, 'Load root info failed') return OperatorRet.OPERATE_FAILED context = self._contextBuilder.buildAinstContext(self._installRoot, self._ainstConf, False, localRoots=rootInfo.installRootSet) if context is None: Log.cout(Log.ERROR, 'Build context failed') return OperatorRet.OPERATE_FAILED removePkgs = self._selectInstalledPkgs(context, pkgs) if not removePkgs: Log.cout(Log.ERROR, 'No package to remove') return OperatorRet.OPERATE_FAILED operations = self._getRemoveOperations(param, context, removePkgs) if operations is None: return OperatorRet.OPERATE_FAILED if not operations: Log.cout(Log.INFO, 'No effective operations') return OperatorRet.OPERATE_SUCCESS self._displayOperations(operations) if param.dryRun: return OperatorRet.OPERATE_SUCCESS if not param.confirmYes and not Log.coutConfirm(): return OperatorRet.OPERATE_SUCCESS if not self._doRpmTransaction(operations, param.noDependents): Log.cout(Log.ERROR, 'Do rpm transaction failed') return OperatorRet.OPERATE_FAILED return OperatorRet.OPERATE_SUCCESS