Dell PwrButton requires a job initated at reboot (#9012)

Dell systems do not change the bios setting PwrButton right away. The
command will return changed=true, but it is not applied. Also no job is
scheduled at next reboot for the change to take place. This patch aims
to fix this issue.
pull/9026/head
Ruben Bosch 2024-10-10 22:04:04 +02:00 committed by GitHub
parent 3de4682193
commit 67ddb567c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View File

@ -0,0 +1,4 @@
minor_changes:
- redfish_utils module utils - schedule a BIOS configuration job at next
reboot when the BIOS config is changed
(https://github.com/ansible-collections/community.general/pull/9012).

View File

@ -2311,11 +2311,19 @@ class RedfishUtils(object):
# Construct payload and issue PATCH command # Construct payload and issue PATCH command
payload = {"Attributes": attrs_to_patch} payload = {"Attributes": attrs_to_patch}
# WORKAROUND
# Dell systems require manually setting the apply time to "OnReset"
# to spawn a proprietary job to apply the BIOS settings
vendor = self._get_vendor()['Vendor']
if vendor == 'Dell':
payload.update({"@Redfish.SettingsApplyTime": {"ApplyTime": "OnReset"}})
response = self.patch_request(self.root_uri + set_bios_attr_uri, payload) response = self.patch_request(self.root_uri + set_bios_attr_uri, payload)
if response['ret'] is False: if response['ret'] is False:
return response return response
return {'ret': True, 'changed': True, return {'ret': True, 'changed': True,
'msg': "Modified BIOS attributes %s" % (attrs_to_patch), 'msg': "Modified BIOS attributes %s. A reboot is required" % (attrs_to_patch),
'warning': warning} 'warning': warning}
def set_boot_order(self, boot_list): def set_boot_order(self, boot_list):