From e5abf2ed5e2585c3aa719e61a15c258503faae19 Mon Sep 17 00:00:00 2001 From: Victor Zhestkov <35733135+vzhestkov@users.noreply.github.com> Date: Wed, 18 Aug 2021 15:05:42 +0300 Subject: [PATCH] Add missing aarch64 to rpm package architectures (#405) Required to prevent false negative results on using pkg.installed with architecture specification in package name (ex. `bash.aarch64`) --- salt/utils/pkg/rpm.py | 2 +- tests/unit/modules/test_zypperpkg.py | 34 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/salt/utils/pkg/rpm.py b/salt/utils/pkg/rpm.py index 3e990cc05d3..8203d2f989e 100644 --- a/salt/utils/pkg/rpm.py +++ b/salt/utils/pkg/rpm.py @@ -30,7 +30,7 @@ "alphaev68", "alphaev7", ) -ARCHES_ARM = ("armv5tel", "armv5tejl", "armv6l", "armv7l") +ARCHES_ARM = ("armv5tel", "armv5tejl", "armv6l", "armv7l", "aarch64") ARCHES_SH = ("sh3", "sh4", "sh4a") ARCHES = ( diff --git a/tests/unit/modules/test_zypperpkg.py b/tests/unit/modules/test_zypperpkg.py index 2d7e5f08581..20bf5eaaad4 100644 --- a/tests/unit/modules/test_zypperpkg.py +++ b/tests/unit/modules/test_zypperpkg.py @@ -2475,3 +2475,37 @@ def test_del_repo_key(self): with patch.dict(zypper.__salt__, salt_mock): self.assertTrue(zypper.del_repo_key(keyid="keyid", root="/mnt")) salt_mock["lowpkg.remove_gpg_key"].assert_called_once_with("keyid", "/mnt") + + def test_services_need_restart(self): + """ + Test that zypper ps is used correctly to list services that need to + be restarted. + """ + expected = ["salt-minion", "firewalld"] + zypper_output = "salt-minion\nfirewalld" + zypper_mock = Mock() + zypper_mock(root=None).nolock.call = Mock(return_value=zypper_output) + + with patch("salt.modules.zypperpkg.__zypper__", zypper_mock): + assert zypper.services_need_restart() == expected + zypper_mock(root=None).nolock.call.assert_called_with("ps", "-sss") + + def test_normalize_name(self): + """ + Test that package is normalized only when it should be + """ + with patch.dict(zypper.__grains__, {"osarch": "x86_64"}): + result = zypper.normalize_name("foo") + assert result == "foo", result + result = zypper.normalize_name("foo.x86_64") + assert result == "foo", result + result = zypper.normalize_name("foo.noarch") + assert result == "foo", result + + with patch.dict(zypper.__grains__, {"osarch": "aarch64"}): + result = zypper.normalize_name("foo") + assert result == "foo", result + result = zypper.normalize_name("foo.aarch64") + assert result == "foo", result + result = zypper.normalize_name("foo.noarch") + assert result == "foo", result