mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-24 03:11:24 -07:00
Fix idempotency issues in set_bios_attributes
- Added check to see if attribute even exists, if not, it exits. - Then checks if attribute is already set to value we want to update it to. If yes, then it exits and changed=False - Otherwise updates the attribute and changed=True
This commit is contained in:
parent
8592bacb23
commit
1c37471274
3 changed files with 11 additions and 4 deletions
|
@ -701,6 +701,15 @@ class RedfishUtils(object):
|
|||
return response
|
||||
result['ret'] = True
|
||||
data = response['data']
|
||||
|
||||
# First, check if BIOS attribute exists
|
||||
if attr['bios_attr_name'] not in data[u'Attributes']:
|
||||
return {'ret': False, 'msg': "BIOS attribute not found"}
|
||||
|
||||
# Find out if value is already set to what we want. If yes, return
|
||||
if data[u'Attributes'][attr['bios_attr_name']] == attr['bios_attr_value']:
|
||||
return {'ret': True, 'changed': False, 'msg': "BIOS attribute already set"}
|
||||
|
||||
set_bios_attr_uri = data["@Redfish.Settings"]["SettingsObject"]["@odata.id"]
|
||||
|
||||
# Example: bios_attr = {\"name\":\"value\"}
|
||||
|
@ -709,7 +718,7 @@ class RedfishUtils(object):
|
|||
response = self.patch_request(self.root_uri + set_bios_attr_uri, payload, HEADERS)
|
||||
if response['ret'] is False:
|
||||
return response
|
||||
return {'ret': True}
|
||||
return {'ret': True, 'changed': True, 'msg': "Modified BIOS attribute"}
|
||||
|
||||
def create_bios_config_job(self):
|
||||
result = {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue