d0e1a8d380
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=190
138 lines
4.4 KiB
Diff
138 lines
4.4 KiB
Diff
From 9885fa0fc9ec818515551b2a415e6f1b8e3680b9 Mon Sep 17 00:00:00 2001
|
|
From: Jochen Breuer <jbreuer@suse.de>
|
|
Date: Fri, 30 Aug 2019 14:20:06 +0200
|
|
Subject: [PATCH] Restore default behaviour of pkg list return
|
|
|
|
The default behaviour for pkg list return was to not include patches,
|
|
even when installing patches. Only the packages where returned. There
|
|
is now parameter to also return patches if that is needed.
|
|
|
|
Co-authored-by: Mihai Dinca <mdinca@suse.de>
|
|
---
|
|
salt/modules/zypperpkg.py | 34 +++++++++++++++++++++++++---------
|
|
1 file changed, 25 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/salt/modules/zypperpkg.py b/salt/modules/zypperpkg.py
|
|
index 6af922337f..ac618bd385 100644
|
|
--- a/salt/modules/zypperpkg.py
|
|
+++ b/salt/modules/zypperpkg.py
|
|
@@ -1401,8 +1401,10 @@ def refresh_db(force=None, root=None):
|
|
return ret
|
|
|
|
|
|
-def _find_types(pkgs):
|
|
+def _detect_includes(pkgs, inclusion_detection):
|
|
"""Form a package names list, find prefixes of packages types."""
|
|
+ if not inclusion_detection:
|
|
+ return None
|
|
return sorted({pkg.split(":", 1)[0] for pkg in pkgs if len(pkg.split(":", 1)) == 2})
|
|
|
|
|
|
@@ -1418,6 +1420,7 @@ def install(
|
|
ignore_repo_failure=False,
|
|
no_recommends=False,
|
|
root=None,
|
|
+ inclusion_detection=False,
|
|
**kwargs
|
|
):
|
|
"""
|
|
@@ -1533,6 +1536,9 @@ def install(
|
|
|
|
.. versionadded:: 2018.3.0
|
|
|
|
+ inclusion_detection:
|
|
+ Detect ``includes`` based on ``sources``
|
|
+ By default packages are always included
|
|
|
|
Returns a dict containing the new package names and versions::
|
|
|
|
@@ -1608,7 +1614,8 @@ def install(
|
|
|
|
diff_attr = kwargs.get("diff_attr")
|
|
|
|
- includes = _find_types(targets)
|
|
+ includes = _detect_includes(targets, inclusion_detection)
|
|
+
|
|
old = (
|
|
list_pkgs(attr=diff_attr, root=root, includes=includes)
|
|
if not downloadonly
|
|
@@ -1838,7 +1845,7 @@ def upgrade(
|
|
return ret
|
|
|
|
|
|
-def _uninstall(name=None, pkgs=None, root=None):
|
|
+def _uninstall(inclusion_detection, name=None, pkgs=None, root=None):
|
|
"""
|
|
Remove and purge do identical things but with different Zypper commands,
|
|
this function performs the common logic.
|
|
@@ -1848,7 +1855,7 @@ def _uninstall(name=None, pkgs=None, root=None):
|
|
except MinionError as exc:
|
|
raise CommandExecutionError(exc)
|
|
|
|
- includes = _find_types(pkg_params.keys())
|
|
+ includes = _detect_includes(pkg_params.keys(), inclusion_detection)
|
|
old = list_pkgs(root=root, includes=includes)
|
|
targets = []
|
|
for target in pkg_params:
|
|
@@ -1911,7 +1918,7 @@ def normalize_name(name):
|
|
|
|
|
|
def remove(
|
|
- name=None, pkgs=None, root=None, **kwargs
|
|
+ name=None, pkgs=None, root=None, inclusion_detection=False, **kwargs
|
|
): # pylint: disable=unused-argument
|
|
"""
|
|
.. versionchanged:: 2015.8.12,2016.3.3,2016.11.0
|
|
@@ -1943,8 +1950,11 @@ def remove(
|
|
root
|
|
Operate on a different root directory.
|
|
|
|
- .. versionadded:: 0.16.0
|
|
+ inclusion_detection:
|
|
+ Detect ``includes`` based on ``pkgs``
|
|
+ By default packages are always included
|
|
|
|
+ .. versionadded:: 0.16.0
|
|
|
|
Returns a dict containing the changes.
|
|
|
|
@@ -1956,10 +1966,12 @@ def remove(
|
|
salt '*' pkg.remove <package1>,<package2>,<package3>
|
|
salt '*' pkg.remove pkgs='["foo", "bar"]'
|
|
"""
|
|
- return _uninstall(name=name, pkgs=pkgs, root=root)
|
|
+ return _uninstall(inclusion_detection, name=name, pkgs=pkgs, root=root)
|
|
|
|
|
|
-def purge(name=None, pkgs=None, root=None, **kwargs): # pylint: disable=unused-argument
|
|
+def purge(
|
|
+ name=None, pkgs=None, root=None, inclusion_detection=False, **kwargs
|
|
+): # pylint: disable=unused-argument
|
|
"""
|
|
.. versionchanged:: 2015.8.12,2016.3.3,2016.11.0
|
|
On minions running systemd>=205, `systemd-run(1)`_ is now used to
|
|
@@ -1991,6 +2003,10 @@ def purge(name=None, pkgs=None, root=None, **kwargs): # pylint: disable=unused-
|
|
root
|
|
Operate on a different root directory.
|
|
|
|
+ inclusion_detection:
|
|
+ Detect ``includes`` based on ``pkgs``
|
|
+ By default packages are always included
|
|
+
|
|
.. versionadded:: 0.16.0
|
|
|
|
|
|
@@ -2004,7 +2020,7 @@ def purge(name=None, pkgs=None, root=None, **kwargs): # pylint: disable=unused-
|
|
salt '*' pkg.purge <package1>,<package2>,<package3>
|
|
salt '*' pkg.purge pkgs='["foo", "bar"]'
|
|
"""
|
|
- return _uninstall(name=name, pkgs=pkgs, root=root)
|
|
+ return _uninstall(inclusion_detection, name=name, pkgs=pkgs, root=root)
|
|
|
|
|
|
def list_locks(root=None):
|
|
--
|
|
2.33.0
|
|
|
|
|