Yedidyah Bar David has uploaded a new change for review. Change subject: packaging: setup: check if setup is reinstallable ......................................................................
packaging: setup: check if setup is reinstallable Change-Id: I76b8e7910e4f8b88592a75e92354443e1bf964dd Signed-off-by: Yedidyah Bar David <d...@redhat.com> --- M packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/distro-rpm/packages.py 1 file changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/72/23972/1 diff --git a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/distro-rpm/packages.py b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/distro-rpm/packages.py index 8cf48ff..be60c29 100644 --- a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/distro-rpm/packages.py +++ b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/distro-rpm/packages.py @@ -207,6 +207,36 @@ return update + def _checkIfPackagesReinstallable(self, packages): + self.logger.debug('Start %s' % packages) + reinstallable = True + myum = self._miniyum.MiniYum( + sink=self._getSink(), + disabledPlugins=('versionlock',), + ) + for package in packages: + installed = False + reinstall_available = False + for query in myum.queryPackages( + patterns=(package,), + showdups=True, + ): + self.logger.debug( + 'dupes: operation [%s] package %s' % ( + query['operation'], + query['display_name'], + ) + ) + if query['operation'] == 'installed': + installed = True + if query['operation'] == 'reinstall_available': + reinstall_available = True + if installed and not reinstall_available: + reinstallable = False + break + + return reinstallable + def _checkForProductUpdate(self): haveRollback = True upgradeAvailable = False @@ -433,6 +463,15 @@ self._enabled = self.environment[ osetupcons.RPMDistroEnv.ENABLE_UPGRADE ] + if not self._checkIfPackagesReinstallable( + packages=(osetupcons.Const.ENGINE_PACKAGE_SETUP_NAME,), + ): + raise RuntimeError( + _( + 'Installed Setup packages cannot be reinstalled from ' + 'enabled repositories.' + ) + ) if not self._enabled and upgradeAvailable: raise RuntimeError( -- To view, visit http://gerrit.ovirt.org/23972 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I76b8e7910e4f8b88592a75e92354443e1bf964dd Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yedidyah Bar David <d...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches