dede5bd1d4
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=166
68 lines
2.5 KiB
Diff
68 lines
2.5 KiB
Diff
From cd66b1e6636013440577a38a5a68729fec2f3f99 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
|
|
<psuarezhernandez@suse.com>
|
|
Date: Mon, 14 May 2018 11:33:13 +0100
|
|
Subject: [PATCH] Add "all_versions" parameter to include all installed
|
|
version on rpm.info
|
|
|
|
Enable "all_versions" parameter for zypper.info_installed
|
|
|
|
Enable "all_versions" parameter for yumpkg.info_installed
|
|
|
|
Prevent adding failed packages when pkg name contains the arch (on SUSE)
|
|
|
|
Add 'all_versions' documentation for info_installed on yum/zypper modules
|
|
|
|
Add unit tests for info_installed with all_versions
|
|
|
|
Refactor: use dict.setdefault instead if-else statement
|
|
|
|
Allow removing only specific package versions with zypper and yum
|
|
---
|
|
salt/states/pkg.py | 21 +++++++++++++++++++++
|
|
1 file changed, 21 insertions(+)
|
|
|
|
diff --git a/salt/states/pkg.py b/salt/states/pkg.py
|
|
index a13d418400..c0fa2f6b69 100644
|
|
--- a/salt/states/pkg.py
|
|
+++ b/salt/states/pkg.py
|
|
@@ -450,6 +450,16 @@ def _find_remove_targets(name=None,
|
|
|
|
if __grains__['os'] == 'FreeBSD' and origin:
|
|
cver = [k for k, v in six.iteritems(cur_pkgs) if v['origin'] == pkgname]
|
|
+ elif __grains__['os_family'] == 'Suse':
|
|
+ # On SUSE systems. Zypper returns packages without "arch" in name
|
|
+ try:
|
|
+ namepart, archpart = pkgname.rsplit('.', 1)
|
|
+ except ValueError:
|
|
+ cver = cur_pkgs.get(pkgname, [])
|
|
+ else:
|
|
+ if archpart in salt.utils.pkg.rpm.ARCHES + ("noarch",):
|
|
+ pkgname = namepart
|
|
+ cver = cur_pkgs.get(pkgname, [])
|
|
else:
|
|
cver = cur_pkgs.get(pkgname, [])
|
|
|
|
@@ -856,6 +866,17 @@ def _verify_install(desired, new_pkgs, ignore_epoch=False, new_caps=None):
|
|
cver = new_pkgs.get(pkgname.split('%')[0])
|
|
elif __grains__['os_family'] == 'Debian':
|
|
cver = new_pkgs.get(pkgname.split('=')[0])
|
|
+ elif __grains__['os_family'] == 'Suse':
|
|
+ # On SUSE systems. Zypper returns packages without "arch" in name
|
|
+ try:
|
|
+ namepart, archpart = pkgname.rsplit('.', 1)
|
|
+ except ValueError:
|
|
+ cver = new_pkgs.get(pkgname)
|
|
+ else:
|
|
+ if archpart in salt.utils.pkg.rpm.ARCHES + ("noarch",):
|
|
+ cver = new_pkgs.get(namepart)
|
|
+ else:
|
|
+ cver = new_pkgs.get(pkgname)
|
|
else:
|
|
cver = new_pkgs.get(pkgname)
|
|
if not cver and pkgname in new_caps:
|
|
--
|
|
2.16.4
|
|
|
|
|