def test_proxy_check_upgrade_required_fail(self): """Verify proxy_check_upgrade_required throws expected exceptions.""" self._set_args({ "firmware": "test_firmware.dlp", "nvsram": "test_nvsram.dlp" }) firmware = NetAppESeriesFirmware() firmware.firmware_version = lambda: b"08.42.50.00" firmware.nvsram_version = lambda: b"not_nvsram_version" with self.assertRaisesRegexp( AnsibleFailJson, "Failed to retrieve controller firmware information."): with patch(self.REQUEST_FUNC, return_value=Exception()): firmware.proxy_check_upgrade_required() with self.assertRaisesRegexp( AnsibleFailJson, "Failed to retrieve storage system's NVSRAM version."): with patch(self.REQUEST_FUNC, side_effect=[(200, [{ "versionString": "08.42.50.00" }]), Exception()]): firmware.is_firmware_bundled = lambda: True firmware.proxy_check_upgrade_required() with self.assertRaisesRegexp( AnsibleFailJson, "Failed to retrieve storage system's NVSRAM version."): with patch(self.REQUEST_FUNC, side_effect=[(200, ["08.42.50.00"]), Exception()]): firmware.is_firmware_bundled = lambda: False firmware.proxy_check_upgrade_required() with self.assertRaisesRegexp(AnsibleFailJson, "Downgrades are not permitted."): with patch(self.REQUEST_FUNC, side_effect=[(200, [{ "versionString": "08.42.50.00" }]), (200, ["nvsram_version"])]): firmware.firmware_version = lambda: b"08.40.00.00" firmware.nvsram_version = lambda: "nvsram_version" firmware.is_firmware_bundled = lambda: True firmware.proxy_check_upgrade_required() with self.assertRaisesRegexp(AnsibleFailJson, "Downgrades are not permitted."): with patch(self.REQUEST_FUNC, side_effect=[(200, ["08.42.50.00"]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: False firmware.proxy_check_upgrade_required()
def test_nvsram_version(self): """Verify correct nvsram version is returned.""" self._set_args({"firmware": "test.dlp", "nvsram": "test.dlp"}) firmware = NetAppESeriesFirmware() with patch(builtin_path, mock_open_with_iter( read_data=self.NVSRAM_HEADER)) as mock_file: self.assertEqual(firmware.nvsram_version(), b"N280X-852834-D02")
def test_wait_for_web_services_pass(self): """Verify controller reboot wait succeeds.""" self._set_args({"firmware": "test.dlp", "nvsram": "test.dlp"}) firmware = NetAppESeriesFirmware() firmware.firmware_version = lambda: b"08.42.30.05" firmware.nvsram_version = lambda: b"N280X-842834-D02" firmware.is_firmware_bundled = lambda: False with patch(self.SLEEP_FUNC, return_value=None): with patch(self.REQUEST_FUNC, side_effect=[(200, ["08.42.30.05"]), (200, ["N280X-842834-D02"]), (200, { "status": "optimal" })]): firmware.wait_for_web_services()
def test_proxy_check_upgrade_required_pass(self): """Verify proxy_check_upgrade_required.""" self._set_args({ "firmware": "test_firmware.dlp", "nvsram": "test_nvsram.dlp" }) firmware = NetAppESeriesFirmware() firmware.firmware_version = lambda: b"08.42.50.00" firmware.nvsram_version = lambda: b"nvsram_version" with patch(self.REQUEST_FUNC, side_effect=[(200, [{ "versionString": "08.42.50.00" }]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: True firmware.proxy_check_upgrade_required() self.assertFalse(firmware.upgrade_required) with patch(self.REQUEST_FUNC, side_effect=[(200, ["08.42.50.00"]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: False firmware.proxy_check_upgrade_required() self.assertFalse(firmware.upgrade_required) self._set_args({ "firmware": "test_firmware.dlp", "nvsram": "test_nvsram.dlp" }) firmware = NetAppESeriesFirmware() firmware.firmware_version = lambda: b"08.42.50.00" firmware.nvsram_version = lambda: b"not_nvsram_version" with patch(self.REQUEST_FUNC, side_effect=[(200, [{ "versionString": "08.42.50.00" }]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: True firmware.proxy_check_upgrade_required() self.assertTrue(firmware.upgrade_required) with patch(self.REQUEST_FUNC, side_effect=[(200, ["08.42.50.00"]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: False firmware.proxy_check_upgrade_required() self.assertTrue(firmware.upgrade_required) self._set_args({ "firmware": "test_firmware.dlp", "nvsram": "test_nvsram.dlp" }) firmware = NetAppESeriesFirmware() firmware.firmware_version = lambda: b"08.52.00.00" firmware.nvsram_version = lambda: b"nvsram_version" with patch(self.REQUEST_FUNC, side_effect=[(200, [{ "versionString": "08.42.50.00" }]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: True firmware.proxy_check_upgrade_required() self.assertTrue(firmware.upgrade_required) with patch(self.REQUEST_FUNC, side_effect=[(200, ["08.42.50.00"]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: False firmware.proxy_check_upgrade_required() self.assertTrue(firmware.upgrade_required) self._set_args({ "firmware": "test_firmware.dlp", "nvsram": "test_nvsram.dlp" }) firmware = NetAppESeriesFirmware() firmware.firmware_version = lambda: b"08.52.00.00" firmware.nvsram_version = lambda: b"not_nvsram_version" with patch(self.REQUEST_FUNC, side_effect=[(200, [{ "versionString": "08.42.50.00" }]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: True firmware.proxy_check_upgrade_required() self.assertTrue(firmware.upgrade_required) with patch(self.REQUEST_FUNC, side_effect=[(200, ["08.42.50.00"]), (200, ["nvsram_version"])]): firmware.is_firmware_bundled = lambda: False firmware.proxy_check_upgrade_required() self.assertTrue(firmware.upgrade_required)