100 lines
4.3 KiB
Diff
100 lines
4.3 KiB
Diff
|
From d53492bea1ed9c08710af75c54abea9a69f82757 Mon Sep 17 00:00:00 2001
|
||
|
From: Jaroslav Mracek <jmracek@redhat.com>
|
||
|
Date: Wed, 19 Jun 2019 12:42:31 +0200
|
||
|
Subject: [PATCH] Prevent switching modules in all cases (RhBug:1706215)
|
||
|
|
||
|
The test moved into cli/do_transaction() allows to apply the restriction
|
||
|
for all commands.
|
||
|
|
||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1706215
|
||
|
---
|
||
|
dnf/cli/cli.py | 16 ++++++++++++++++
|
||
|
dnf/cli/commands/module.py | 23 -----------------------
|
||
|
2 files changed, 16 insertions(+), 23 deletions(-)
|
||
|
|
||
|
diff --git a/dnf/cli/cli.py b/dnf/cli/cli.py
|
||
|
index 09642d1..6ac18fa 100644
|
||
|
--- a/dnf/cli/cli.py
|
||
|
+++ b/dnf/cli/cli.py
|
||
|
@@ -142,6 +142,13 @@ def print_versions(pkgs, base, output):
|
||
|
# sm_ui_date(pkg.committime)))
|
||
|
|
||
|
|
||
|
+def report_module_switch(switchedModules):
|
||
|
+ msg1 = _("The operation would result in switching of module '{0}' stream '{1}' to "
|
||
|
+ "stream '{2}'")
|
||
|
+ for moduleName, streams in switchedModules.items():
|
||
|
+ logger.warning(msg1.format(moduleName, streams[0], streams[1]))
|
||
|
+
|
||
|
+
|
||
|
class BaseCli(dnf.Base):
|
||
|
"""This is the base class for yum cli."""
|
||
|
|
||
|
@@ -157,6 +164,15 @@ class BaseCli(dnf.Base):
|
||
|
:param display: `rpm.callback.TransactionProgress` object(s)
|
||
|
:return: history database transaction ID or None
|
||
|
"""
|
||
|
+ if dnf.base.WITH_MODULES:
|
||
|
+ switchedModules = dict(self._moduleContainer.getSwitchedStreams())
|
||
|
+ if switchedModules:
|
||
|
+ report_module_switch(switchedModules)
|
||
|
+ msg = _("It is not possible to switch enabled streams of a module.\n"
|
||
|
+ "It is recommended to remove all installed content from the module, and "
|
||
|
+ "reset the module using 'dnf module reset <module_name>' command. After "
|
||
|
+ "you reset the module, you can install the other stream.")
|
||
|
+ raise dnf.exceptions.Error(msg)
|
||
|
|
||
|
trans = self.transaction
|
||
|
pkg_str = self.output.list_transaction(trans)
|
||
|
diff --git a/dnf/cli/commands/module.py b/dnf/cli/commands/module.py
|
||
|
index 143bfaa..acaa42c 100644
|
||
|
--- a/dnf/cli/commands/module.py
|
||
|
+++ b/dnf/cli/commands/module.py
|
||
|
@@ -32,13 +32,6 @@ import dnf.module.module_base
|
||
|
import dnf.exceptions
|
||
|
|
||
|
|
||
|
-def report_module_switch(switchedModules):
|
||
|
- msg1 = _("The operation would result in switching of module '{0}' stream '{1}' to "
|
||
|
- "stream '{2}'")
|
||
|
- for moduleName, streams in switchedModules.items():
|
||
|
- logger.warning(msg1.format(moduleName, streams[0], streams[1]))
|
||
|
-
|
||
|
-
|
||
|
class ModuleCommand(commands.Command):
|
||
|
class SubCommand(commands.Command):
|
||
|
|
||
|
@@ -122,14 +115,6 @@ class ModuleCommand(commands.Command):
|
||
|
libdnf.module.ModulePackageContainer.ModuleErrorType_ERROR_IN_DEFAULTS:
|
||
|
raise e
|
||
|
logger.error(str(e))
|
||
|
- switchedModules = dict(self.base._moduleContainer.getSwitchedStreams())
|
||
|
- if switchedModules:
|
||
|
- report_module_switch(switchedModules)
|
||
|
- msg = _("It is not possible to switch enabled streams of a module.\n"
|
||
|
- "It is recommended to remove all installed content from the module, and "
|
||
|
- "reset the module using 'dnf module reset <module_name>' command. After "
|
||
|
- "you reset the module, you can enable the other stream.")
|
||
|
- raise dnf.exceptions.Error(msg)
|
||
|
|
||
|
class DisableSubCommand(SubCommand):
|
||
|
|
||
|
@@ -193,14 +178,6 @@ class ModuleCommand(commands.Command):
|
||
|
if e.no_match_group_specs or e.error_group_specs:
|
||
|
raise e
|
||
|
logger.error(str(e))
|
||
|
- switchedModules = dict(self.base._moduleContainer.getSwitchedStreams())
|
||
|
- if switchedModules:
|
||
|
- report_module_switch(switchedModules)
|
||
|
- msg = _("It is not possible to switch enabled streams of a module.\n"
|
||
|
- "It is recommended to remove all installed content from the module, and "
|
||
|
- "reset the module using 'dnf module reset <module_name>' command. After "
|
||
|
- "you reset the module, you can install the other stream.")
|
||
|
- raise dnf.exceptions.Error(msg)
|
||
|
|
||
|
class UpdateSubCommand(SubCommand):
|
||
|
|
||
|
--
|
||
|
libgit2 0.28.2
|
||
|
|