2020-04-07 14:14:01 +02:00
|
|
|
From 8f9478ffba672767e77b9b263f279e0379ab1ed1 Mon Sep 17 00:00:00 2001
|
2019-09-06 14:06:25 +02:00
|
|
|
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 | 32 +++++++++++++++++++++++---------
|
|
|
|
1 file changed, 23 insertions(+), 9 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/salt/modules/zypperpkg.py b/salt/modules/zypperpkg.py
|
2020-04-07 14:14:01 +02:00
|
|
|
index 8179cd8c1d..f7158e0810 100644
|
2019-09-06 14:06:25 +02:00
|
|
|
--- a/salt/modules/zypperpkg.py
|
|
|
|
+++ b/salt/modules/zypperpkg.py
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1304,8 +1304,10 @@ def refresh_db(root=None):
|
2019-09-06 14:06:25 +02:00
|
|
|
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})
|
|
|
|
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1321,6 +1323,7 @@ def install(name=None,
|
2019-09-06 14:06:25 +02:00
|
|
|
ignore_repo_failure=False,
|
|
|
|
no_recommends=False,
|
|
|
|
root=None,
|
|
|
|
+ inclusion_detection=False,
|
|
|
|
**kwargs):
|
|
|
|
'''
|
|
|
|
.. versionchanged:: 2015.8.12,2016.3.3,2016.11.0
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1435,6 +1438,9 @@ def install(name=None,
|
2019-09-06 14:06:25 +02:00
|
|
|
|
|
|
|
.. 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::
|
|
|
|
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1500,7 +1506,8 @@ def install(name=None,
|
2019-09-06 14:06:25 +02:00
|
|
|
|
|
|
|
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 else list_downloaded(root)
|
|
|
|
|
|
|
|
downgrades = []
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1692,7 +1699,7 @@ def upgrade(refresh=True,
|
2019-09-06 14:06:25 +02:00
|
|
|
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.
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1702,7 +1709,7 @@ def _uninstall(name=None, pkgs=None, root=None):
|
2019-09-06 14:06:25 +02:00
|
|
|
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:
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1761,7 +1768,7 @@ def normalize_name(name):
|
2019-09-06 14:06:25 +02:00
|
|
|
return name
|
|
|
|
|
|
|
|
|
|
|
|
-def remove(name=None, pkgs=None, root=None, **kwargs): # pylint: disable=unused-argument
|
|
|
|
+def remove(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
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1792,8 +1799,11 @@ def remove(name=None, pkgs=None, root=None, **kwargs): # pylint: disable=unused
|
2019-09-06 14:06:25 +02:00
|
|
|
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.
|
|
|
|
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1805,10 +1815,10 @@ def remove(name=None, pkgs=None, root=None, **kwargs): # pylint: disable=unused
|
2019-09-06 14:06:25 +02:00
|
|
|
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
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1840,6 +1850,10 @@ def purge(name=None, pkgs=None, root=None, **kwargs): # pylint: disable=unused-
|
2019-09-06 14:06:25 +02:00
|
|
|
root
|
|
|
|
Operate on a different root directory.
|
|
|
|
|
|
|
|
+ inclusion_detection:
|
|
|
|
+ Detect ``includes`` based on ``pkgs``
|
|
|
|
+ By default packages are always included
|
|
|
|
+
|
|
|
|
.. versionadded:: 0.16.0
|
|
|
|
|
|
|
|
|
2020-04-07 14:14:01 +02:00
|
|
|
@@ -1853,7 +1867,7 @@ def purge(name=None, pkgs=None, root=None, **kwargs): # pylint: disable=unused-
|
2019-09-06 14:06:25 +02:00
|
|
|
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):
|
|
|
|
--
|
2019-11-28 16:41:55 +01:00
|
|
|
2.16.4
|
2019-09-06 14:06:25 +02:00
|
|
|
|
|
|
|
|