From 5e3e61b1bbe0770b23f85b2048ad6aba24ae62db Mon Sep 17 00:00:00 2001 From: Rares POP Date: Mon, 29 Oct 2018 07:38:14 +0200 Subject: [PATCH 1/6] Add noaction flag for opkg module Signed-off-by: Rares POP --- salt/modules/opkg.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/salt/modules/opkg.py b/salt/modules/opkg.py index 1b9583c75a95..ad93022792b5 100644 --- a/salt/modules/opkg.py +++ b/salt/modules/opkg.py @@ -366,6 +366,8 @@ def install(name=None, to_reinstall = [] to_downgrade = [] + if kwargs.get('noaction', False): + cmd_prefix.append('--noaction') if pkg_params is None or len(pkg_params) == 0: return {} elif pkg_type == 'file': @@ -540,6 +542,8 @@ def remove(name=None, pkgs=None, **kwargs): # pylint: disable=unused-argument if not targets: return {} cmd = ['opkg', 'remove'] + if kwargs.get('noaction', False): + cmd.append('--noaction') if kwargs.get('remove_dependencies', False): cmd.append('--force-removal-of-dependent-packages') if kwargs.get('auto_remove_deps', False): From 1863611187a96d37fdddfd696e0c518568b85445 Mon Sep 17 00:00:00 2001 From: Rares POP Date: Tue, 30 Oct 2018 15:19:31 +0200 Subject: [PATCH 2/6] fixup! Add noaction flag for opkg module --- tests/unit/modules/test_opkg.py | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/unit/modules/test_opkg.py b/tests/unit/modules/test_opkg.py index c52d196ecb48..876aefb00b16 100644 --- a/tests/unit/modules/test_opkg.py +++ b/tests/unit/modules/test_opkg.py @@ -143,6 +143,23 @@ def test_install(self): with patch.multiple(opkg, **patch_kwargs): self.assertEqual(opkg.install('vim:7.4'), INSTALLED) + def test_install_noaction(self): + ''' + Test - Install packages. + ''' + with patch('salt.modules.opkg.list_pkgs', MagicMock(return_value=({}))): + ret_value = {'retcode': 0} + mock = MagicMock(return_value=ret_value) + patch_kwargs = { + '__salt__': { + 'cmd.run_all': mock, + 'pkg_resource.parse_targets': MagicMock(return_value=({'vim': '7.4'}, 'repository')), + 'restartcheck.restartcheck': MagicMock(return_value='No packages seem to need to be restarted') + } + } + with patch.multiple(opkg, **patch_kwargs): + self.assertEqual(opkg.install('vim:7.4', noaction=True), {}) + def test_remove(self): ''' Test - Remove packages. @@ -160,6 +177,23 @@ def test_remove(self): with patch.multiple(opkg, **patch_kwargs): self.assertEqual(opkg.remove('vim'), REMOVED) + def test_remove_noaction(self): + ''' + Test - Remove packages. + ''' + with patch('salt.modules.opkg.list_pkgs', MagicMock(return_value=({}))): + ret_value = {'retcode': 0} + mock = MagicMock(return_value=ret_value) + patch_kwargs = { + '__salt__': { + 'cmd.run_all': mock, + 'pkg_resource.parse_targets': MagicMock(return_value=({'vim': '7.4'}, 'repository')), + 'restartcheck.restartcheck': MagicMock(return_value='No packages seem to need to be restarted') + } + } + with patch.multiple(opkg, **patch_kwargs): + self.assertEqual(opkg.remove('vim:7.4', noaction=True), {}) + def test_info_installed(self): ''' Test - Return the information of the named package(s) installed on the system. From 2bc4cf5b0264671d9bbb449d5a62b6f241ebc637 Mon Sep 17 00:00:00 2001 From: Rares POP Date: Wed, 31 Oct 2018 16:47:00 +0200 Subject: [PATCH 3/6] Rename 'noaction' to 'test' and read __opts__ too Be compliant with Salt's terminology Signed-off-by: Rares POP --- salt/modules/opkg.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/salt/modules/opkg.py b/salt/modules/opkg.py index ad93022792b5..cd92049e3707 100644 --- a/salt/modules/opkg.py +++ b/salt/modules/opkg.py @@ -366,8 +366,9 @@ def install(name=None, to_reinstall = [] to_downgrade = [] - if kwargs.get('noaction', False): + if bool(kwargs.get('test') or __opts__.get('test')): cmd_prefix.append('--noaction') + if pkg_params is None or len(pkg_params) == 0: return {} elif pkg_type == 'file': @@ -542,7 +543,7 @@ def remove(name=None, pkgs=None, **kwargs): # pylint: disable=unused-argument if not targets: return {} cmd = ['opkg', 'remove'] - if kwargs.get('noaction', False): + if bool(kwargs.get('test') or __opts__.get('test')): cmd.append('--noaction') if kwargs.get('remove_dependencies', False): cmd.append('--force-removal-of-dependent-packages') From 7e601158e3214f30e5745d5dc1e5751dec3d63e1 Mon Sep 17 00:00:00 2001 From: Rares POP Date: Wed, 31 Oct 2018 16:56:11 +0200 Subject: [PATCH 4/6] Fix linter Signed-off-by: Rares POP --- salt/modules/opkg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/modules/opkg.py b/salt/modules/opkg.py index cd92049e3707..b7da2f9bae64 100644 --- a/salt/modules/opkg.py +++ b/salt/modules/opkg.py @@ -368,7 +368,7 @@ def install(name=None, if bool(kwargs.get('test') or __opts__.get('test')): cmd_prefix.append('--noaction') - + if pkg_params is None or len(pkg_params) == 0: return {} elif pkg_type == 'file': From 5e0341f748dae41f4b36e91b11bd237c475336b8 Mon Sep 17 00:00:00 2001 From: Rares POP Date: Wed, 31 Oct 2018 17:06:53 +0200 Subject: [PATCH 5/6] Update tests too Keep 'noaction' in the test name since test_install_test sounds wrong. Signed-off-by: Rares POP --- tests/unit/modules/test_opkg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/modules/test_opkg.py b/tests/unit/modules/test_opkg.py index 876aefb00b16..f6d73a4d859d 100644 --- a/tests/unit/modules/test_opkg.py +++ b/tests/unit/modules/test_opkg.py @@ -158,7 +158,7 @@ def test_install_noaction(self): } } with patch.multiple(opkg, **patch_kwargs): - self.assertEqual(opkg.install('vim:7.4', noaction=True), {}) + self.assertEqual(opkg.install('vim:7.4', test=True), {}) def test_remove(self): ''' @@ -192,7 +192,7 @@ def test_remove_noaction(self): } } with patch.multiple(opkg, **patch_kwargs): - self.assertEqual(opkg.remove('vim:7.4', noaction=True), {}) + self.assertEqual(opkg.remove('vim:7.4', test=True), {}) def test_info_installed(self): ''' From dcaeb9ef288d7eff19f004c4d82c1bfa23b90a1f Mon Sep 17 00:00:00 2001 From: Rares POP Date: Wed, 31 Oct 2018 17:39:35 +0200 Subject: [PATCH 6/6] Refactor _append_noaction_if_testmode to make codeclimate happy Signed-off-by: Rares POP --- salt/modules/opkg.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/salt/modules/opkg.py b/salt/modules/opkg.py index b7da2f9bae64..5055666312da 100644 --- a/salt/modules/opkg.py +++ b/salt/modules/opkg.py @@ -269,6 +269,14 @@ def refresh_db(failhard=False, **kwargs): # pylint: disable=unused-argument return ret +def _append_noaction_if_testmode(cmd, **kwargs): + ''' + Adds the --noaction flag to the command if it's running in the test mode. + ''' + if bool(kwargs.get('test') or __opts__.get('test')): + cmd.append('--noaction') + + def install(name=None, refresh=False, pkgs=None, @@ -366,9 +374,7 @@ def install(name=None, to_reinstall = [] to_downgrade = [] - if bool(kwargs.get('test') or __opts__.get('test')): - cmd_prefix.append('--noaction') - + _append_noaction_if_testmode(cmd_prefix, **kwargs) if pkg_params is None or len(pkg_params) == 0: return {} elif pkg_type == 'file': @@ -543,8 +549,7 @@ def remove(name=None, pkgs=None, **kwargs): # pylint: disable=unused-argument if not targets: return {} cmd = ['opkg', 'remove'] - if bool(kwargs.get('test') or __opts__.get('test')): - cmd.append('--noaction') + _append_noaction_if_testmode(cmd, **kwargs) if kwargs.get('remove_dependencies', False): cmd.append('--force-removal-of-dependent-packages') if kwargs.get('auto_remove_deps', False):