From 9dad52260248bbdbeab31d19d85f39705d706277 Mon Sep 17 00:00:00 2001 From: chidanandpujar Date: Mon, 14 Oct 2024 16:49:47 +0530 Subject: [PATCH 1/3] pull requests for issue #1322 #1315 --- lib/jnpr/junos/device.py | 2 ++ lib/jnpr/junos/utils/sw.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib/jnpr/junos/device.py b/lib/jnpr/junos/device.py index 6042cd5ef..80acbf570 100644 --- a/lib/jnpr/junos/device.py +++ b/lib/jnpr/junos/device.py @@ -735,6 +735,8 @@ def cli(self, command, format="text", warning=True): if rsp is True: return "" if rsp.tag in ["output", "rpc-reply"]: + if rsp.tag == "output" and rsp.getparent() is not None: + rsp = rsp.getparent() encode = None if sys.version < "3" else "unicode" return etree.tostring( rsp, method="text", with_tail=False, encoding=encode diff --git a/lib/jnpr/junos/utils/sw.py b/lib/jnpr/junos/utils/sw.py index c9e42f58e..9aeca8bb6 100644 --- a/lib/jnpr/junos/utils/sw.py +++ b/lib/jnpr/junos/utils/sw.py @@ -984,11 +984,15 @@ def _progress(report): kwargs.update({"no_validate": True}) if issu is True: + if validate is False: # To Check validation is False + kwargs.update({"no_validate": True}) # Need to pass the no_validate option via kwargs _progress("ISSU: installing software ... please be patient ...") return self.pkgaddISSU( remote_package, vmhost=vmhost, dev_timeout=timeout, **kwargs ) elif nssu is True: + if validate is False: + kwargs.update({"no_validate": True}) # Need to pass the no_validate option via kwargs _progress("NSSU: installing software ... please be patient ...") return self.pkgaddNSSU(remote_package, dev_timeout=timeout, **kwargs) elif member_id is not None: From 8e4331d424aa3c126a4f65aae81432831170c5de Mon Sep 17 00:00:00 2001 From: chidanandpujar Date: Mon, 14 Oct 2024 16:54:40 +0530 Subject: [PATCH 2/3] pull requests for issue #1322 #1315 --- lib/jnpr/junos/utils/sw.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/jnpr/junos/utils/sw.py b/lib/jnpr/junos/utils/sw.py index 9aeca8bb6..bd2565d3b 100644 --- a/lib/jnpr/junos/utils/sw.py +++ b/lib/jnpr/junos/utils/sw.py @@ -985,14 +985,16 @@ def _progress(report): if issu is True: if validate is False: # To Check validation is False - kwargs.update({"no_validate": True}) # Need to pass the no_validate option via kwargs + # Need to pass the no_validate option via kwargs + kwargs.update({"no_validate": True}) _progress("ISSU: installing software ... please be patient ...") return self.pkgaddISSU( remote_package, vmhost=vmhost, dev_timeout=timeout, **kwargs ) elif nssu is True: if validate is False: - kwargs.update({"no_validate": True}) # Need to pass the no_validate option via kwargs + # Need to pass the no_validate option via kwargs + kwargs.update({"no_validate": True}) _progress("NSSU: installing software ... please be patient ...") return self.pkgaddNSSU(remote_package, dev_timeout=timeout, **kwargs) elif member_id is not None: From dfeb1697a5523f28a1869b6d6e7b094a69c13dbe Mon Sep 17 00:00:00 2001 From: chidanandpujar Date: Mon, 14 Oct 2024 19:12:44 +0530 Subject: [PATCH 3/3] pull requests for issue #1322 #1315 --- tests/unit/utils/test_sw.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/unit/utils/test_sw.py b/tests/unit/utils/test_sw.py index ad6cc773b..2796d8a4c 100644 --- a/tests/unit/utils/test_sw.py +++ b/tests/unit/utils/test_sw.py @@ -242,12 +242,36 @@ def test_sw_install_issu(self, mock_execute): package = "test.tgz" self.assertTrue(self.sw.install(package, issu=True, no_copy=True)) + @patch("jnpr.junos.Device.execute") + def test_sw_install_issu_validate_False(self, mock_execute): + mock_execute.side_effect = self._mock_manager + package = "test.tgz" + self.assertTrue(self.sw.install(package, issu=True, no_copy=True, validate=False)) + + @patch("jnpr.junos.Device.execute") + def test_sw_install_issu_validate_True(self, mock_execute): + mock_execute.side_effect = self._mock_manager + package = "test.tgz" + self.assertTrue(self.sw.install(package, issu=True, no_copy=True, validate=True)) + @patch("jnpr.junos.Device.execute") def test_sw_install_nssu(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, nssu=True, no_copy=True)) + @patch("jnpr.junos.Device.execute") + def test_sw_install_nssu_validate_False(self, mock_execute): + mock_execute.side_effect = self._mock_manager + package = "test.tgz" + self.assertTrue(self.sw.install(package, nssu=True, no_copy=True, validate=False)) + + @patch("jnpr.junos.Device.execute") + def test_sw_install_nssu_validate_True(self, mock_execute): + mock_execute.side_effect = self._mock_manager + package = "test.tgz" + self.assertTrue(self.sw.install(package, nssu=True, no_copy=True, validate=True)) + @patch("jnpr.junos.Device.execute") def test_sw_install_issu_nssu_both_error(self, mock_execute): mock_execute.side_effect = self._mock_manager