diff --git a/proliantutils/redfish/resources/system/bios.py b/proliantutils/redfish/resources/system/bios.py index 92da354..a0e2a6f 100644 --- a/proliantutils/redfish/resources/system/bios.py +++ b/proliantutils/redfish/resources/system/bios.py @@ -89,7 +89,7 @@ class BIOSSettings(base.ResourceBase): def update_bios_to_default(self): """Updates bios default settings""" - self.pending_settings.update_bios_data( + self.pending_settings.update_bios_data_by_post( self._get_base_configs().default_config) def refresh(self): @@ -125,10 +125,10 @@ class BIOSPendingSettings(base.ResourceBase): if boot_mode == sys_cons.BIOS_BOOT_MODE_UEFI: bios_properties['UefiOptimizedBoot'] = 'Enabled' - self._conn.patch(self.path, bios_properties) + self.update_bios_data_by_patch(bios_properties) - def update_bios_data(self, data): - """Update bios data + def update_bios_data_by_post(self, data): + """Update bios data by post :param data: default bios config data """ @@ -137,6 +137,16 @@ class BIOSPendingSettings(base.ResourceBase): } self._conn.post(self.path, data=bios_settings_data) + def update_bios_data_by_patch(self, data): + """Update bios data by patch + + :param data: default bios config data + """ + bios_settings_data = { + 'Attributes': data + } + self._conn.patch(self.path, data=bios_settings_data) + class BIOSBootSettings(base.ResourceBase): diff --git a/proliantutils/tests/redfish/resources/system/test_bios.py b/proliantutils/tests/redfish/resources/system/test_bios.py index c38fb91..008fe40 100644 --- a/proliantutils/tests/redfish/resources/system/test_bios.py +++ b/proliantutils/tests/redfish/resources/system/test_bios.py @@ -201,21 +201,27 @@ class BIOSPendingSettingsTestCase(testtools.TestCase): def test_set_pending_boot_mode_bios(self): self.bios_settings_inst.set_pending_boot_mode( sys_cons.BIOS_BOOT_MODE_LEGACY_BIOS) - data = {} - data['BootMode'] = 'LegacyBios' + data = { + 'Attributes': { + 'BootMode': 'LegacyBios' + } + } self.bios_settings_inst._conn.patch.assert_called_once_with( - '/redfish/v1/Systems/1/bios/settings', data) + '/redfish/v1/Systems/1/bios/settings', data=data) def test_set_pending_boot_mode_uefi(self): self.bios_settings_inst.set_pending_boot_mode( sys_cons.BIOS_BOOT_MODE_UEFI) - data = {} - data['UefiOptimizedBoot'] = 'Enabled' - data['BootMode'] = 'Uefi' + data = { + 'Attributes': { + 'BootMode': 'Uefi', + 'UefiOptimizedBoot': 'Enabled' + } + } self.bios_settings_inst._conn.patch.assert_called_once_with( - '/redfish/v1/Systems/1/bios/settings', data) + '/redfish/v1/Systems/1/bios/settings', data=data) - def test_update_bios_data(self): + def test_update_bios_data_by_post(self): with open('proliantutils/tests/redfish/' 'json_samples/bios_base_configs.json', 'r') as f: bios_settings = json.loads(f.read())['BaseConfigs'][0]['default'] @@ -223,10 +229,22 @@ class BIOSPendingSettingsTestCase(testtools.TestCase): data = { 'Attributes': bios_settings } - self.bios_settings_inst.update_bios_data(bios_settings) + self.bios_settings_inst.update_bios_data_by_post(bios_settings) self.bios_settings_inst._conn.post.assert_called_once_with(target_uri, data=data) + def test_update_bios_data_by_patch(self): + with open('proliantutils/tests/redfish/' + 'json_samples/bios_base_configs.json', 'r') as f: + bios_settings = json.loads(f.read())['BaseConfigs'][0]['default'] + target_uri = '/redfish/v1/Systems/1/bios/settings' + data = { + 'Attributes': bios_settings + } + self.bios_settings_inst.update_bios_data_by_patch(bios_settings) + self.bios_settings_inst._conn.patch.assert_called_once_with(target_uri, + data=data) + class BIOSBootSettingsTestCase(testtools.TestCase): diff --git a/proliantutils/tests/redfish/test_redfish.py b/proliantutils/tests/redfish/test_redfish.py index c7a9fe2..8b2a9f0 100644 --- a/proliantutils/tests/redfish/test_redfish.py +++ b/proliantutils/tests/redfish/test_redfish.py @@ -721,7 +721,7 @@ class RedfishOperationsTestCase(testtools.TestCase): self.rf_client.get_server_capabilities) @mock.patch.object(redfish.RedfishOperations, '_get_sushy_system') - @mock.patch.object(bios.BIOSPendingSettings, 'update_bios_data') + @mock.patch.object(bios.BIOSPendingSettings, 'update_bios_data_by_post') def test_reset_bios_to_default(self, update_bios_mock, get_system_mock): with open('proliantutils/tests/redfish/' 'json_samples/system.json', 'r') as f: