remove non-standard GetManagerAttributes, SetManagerAttributes (#51898)
This commit is contained in:
parent
158ae76d65
commit
3b20b186d7
3 changed files with 4 additions and 121 deletions
|
@ -531,25 +531,6 @@ class RedfishUtils(object):
|
||||||
result['entries'].append(firmware)
|
result['entries'].append(firmware)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def get_manager_attributes(self):
|
|
||||||
result = {}
|
|
||||||
manager_attributes = {}
|
|
||||||
key = "Attributes"
|
|
||||||
|
|
||||||
response = self.get_request(self.root_uri + self.manager_uri + "/" + key)
|
|
||||||
if response['ret'] is False:
|
|
||||||
return response
|
|
||||||
result['ret'] = True
|
|
||||||
data = response['data']
|
|
||||||
|
|
||||||
if key not in data:
|
|
||||||
return {'ret': False, 'msg': "Key %s not found" % key}
|
|
||||||
|
|
||||||
for attribute in data[key].items():
|
|
||||||
manager_attributes[attribute[0]] = attribute[1]
|
|
||||||
result["entries"] = manager_attributes
|
|
||||||
return result
|
|
||||||
|
|
||||||
def get_bios_attributes(self):
|
def get_bios_attributes(self):
|
||||||
result = {}
|
result = {}
|
||||||
bios_attributes = {}
|
bios_attributes = {}
|
||||||
|
@ -686,44 +667,6 @@ class RedfishUtils(object):
|
||||||
return response
|
return response
|
||||||
return {'ret': True}
|
return {'ret': True}
|
||||||
|
|
||||||
def set_manager_attributes(self, attr):
|
|
||||||
result = {}
|
|
||||||
# Here I'm making the assumption that the key 'Attributes' is part of the URI.
|
|
||||||
# It may not, but in the hardware I tested with, getting to the final URI where
|
|
||||||
# the Manager Attributes are, appear to be part of a specific OEM extension.
|
|
||||||
key = "Attributes"
|
|
||||||
|
|
||||||
# Search for key entry and extract URI from it
|
|
||||||
response = self.get_request(self.root_uri + self.manager_uri + "/" + key)
|
|
||||||
if response['ret'] is False:
|
|
||||||
return response
|
|
||||||
result['ret'] = True
|
|
||||||
data = response['data']
|
|
||||||
|
|
||||||
if key not in data:
|
|
||||||
return {'ret': False, 'msg': "Key %s not found" % key}
|
|
||||||
|
|
||||||
# Check if attribute exists
|
|
||||||
if attr['mgr_attr_name'] not in data[key]:
|
|
||||||
return {'ret': False, 'msg': "Manager attribute %s not found" % attr['mgr_attr_name']}
|
|
||||||
|
|
||||||
# Example: manager_attr = {\"name\":\"value\"}
|
|
||||||
# Check if value is a number. If so, convert to int.
|
|
||||||
if attr['mgr_attr_value'].isdigit():
|
|
||||||
manager_attr = "{\"%s\": %i}" % (attr['mgr_attr_name'], int(attr['mgr_attr_value']))
|
|
||||||
else:
|
|
||||||
manager_attr = "{\"%s\": \"%s\"}" % (attr['mgr_attr_name'], attr['mgr_attr_value'])
|
|
||||||
|
|
||||||
# Find out if value is already set to what we want. If yes, return
|
|
||||||
if data[key][attr['mgr_attr_name']] == attr['mgr_attr_value']:
|
|
||||||
return {'ret': True, 'changed': False, 'msg': "Manager attribute already set"}
|
|
||||||
|
|
||||||
payload = {"Attributes": json.loads(manager_attr)}
|
|
||||||
response = self.patch_request(self.root_uri + self.manager_uri + "/" + key, payload, HEADERS)
|
|
||||||
if response['ret'] is False:
|
|
||||||
return response
|
|
||||||
return {'ret': True, 'changed': True, 'msg': "Modified Manager attribute %s" % attr['mgr_attr_name']}
|
|
||||||
|
|
||||||
def set_bios_attributes(self, attr):
|
def set_bios_attributes(self, attr):
|
||||||
result = {}
|
result = {}
|
||||||
key = "Bios"
|
key = "Bios"
|
||||||
|
|
|
@ -55,18 +55,6 @@ options:
|
||||||
- value of BIOS attribute to update
|
- value of BIOS attribute to update
|
||||||
default: 'null'
|
default: 'null'
|
||||||
version_added: "2.8"
|
version_added: "2.8"
|
||||||
manager_attribute_name:
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
- name of Manager attribute to update
|
|
||||||
default: 'null'
|
|
||||||
version_added: "2.8"
|
|
||||||
manager_attribute_value:
|
|
||||||
required: false
|
|
||||||
description:
|
|
||||||
- value of Manager attribute to update
|
|
||||||
default: 'null'
|
|
||||||
version_added: "2.8"
|
|
||||||
|
|
||||||
author: "Jose Delarosa (@jose-delarosa)"
|
author: "Jose Delarosa (@jose-delarosa)"
|
||||||
'''
|
'''
|
||||||
|
@ -109,36 +97,6 @@ EXAMPLES = '''
|
||||||
baseuri: "{{ baseuri }}"
|
baseuri: "{{ baseuri }}"
|
||||||
username: "{{ username }}"
|
username: "{{ username }}"
|
||||||
password: "{{ password }}"
|
password: "{{ password }}"
|
||||||
|
|
||||||
- name: Enable NTP in the OOB Controller
|
|
||||||
redfish_config:
|
|
||||||
category: Manager
|
|
||||||
command: SetManagerAttributes
|
|
||||||
manager_attribute_name: NTPConfigGroup.1.NTPEnable
|
|
||||||
manager_attribute_value: Enabled
|
|
||||||
baseuri: "{{ baseuri }}"
|
|
||||||
username: "{{ username}}"
|
|
||||||
password: "{{ password }}"
|
|
||||||
|
|
||||||
- name: Set NTP server 1 to {{ ntpserver1 }} in the OOB Controller
|
|
||||||
redfish_config:
|
|
||||||
category: Manager
|
|
||||||
command: SetManagerAttributes
|
|
||||||
manager_attribute_name: NTPConfigGroup.1.NTP1
|
|
||||||
manager_attribute_value: "{{ ntpserver1 }}"
|
|
||||||
baseuri: "{{ baseuri }}"
|
|
||||||
username: "{{ username}}"
|
|
||||||
password: "{{ password }}"
|
|
||||||
|
|
||||||
- name: Set Timezone to {{ timezone }} in the OOB Controller
|
|
||||||
redfish_config:
|
|
||||||
category: Manager
|
|
||||||
command: SetManagerAttributes
|
|
||||||
manager_attribute_name: Time.1.Timezone
|
|
||||||
manager_attribute_value: "{{ timezone }}"
|
|
||||||
baseuri: "{{ baseuri }}"
|
|
||||||
username: "{{ username}}"
|
|
||||||
password: "{{ password }}"
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
RETURN = '''
|
RETURN = '''
|
||||||
|
@ -156,8 +114,7 @@ from ansible.module_utils._text import to_native
|
||||||
|
|
||||||
# More will be added as module features are expanded
|
# More will be added as module features are expanded
|
||||||
CATEGORY_COMMANDS_ALL = {
|
CATEGORY_COMMANDS_ALL = {
|
||||||
"Systems": ["SetBiosDefaultSettings", "SetBiosAttributes"],
|
"Systems": ["SetBiosDefaultSettings", "SetBiosAttributes"]
|
||||||
"Manager": ["SetManagerAttributes"],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -170,8 +127,6 @@ def main():
|
||||||
baseuri=dict(required=True),
|
baseuri=dict(required=True),
|
||||||
username=dict(required=True),
|
username=dict(required=True),
|
||||||
password=dict(required=True, no_log=True),
|
password=dict(required=True, no_log=True),
|
||||||
manager_attribute_name=dict(default='null'),
|
|
||||||
manager_attribute_value=dict(default='null'),
|
|
||||||
bios_attribute_name=dict(default='null'),
|
bios_attribute_name=dict(default='null'),
|
||||||
bios_attribute_value=dict(default='null'),
|
bios_attribute_value=dict(default='null'),
|
||||||
),
|
),
|
||||||
|
@ -185,9 +140,6 @@ def main():
|
||||||
creds = {'user': module.params['username'],
|
creds = {'user': module.params['username'],
|
||||||
'pswd': module.params['password']}
|
'pswd': module.params['password']}
|
||||||
|
|
||||||
# Manager attributes to update
|
|
||||||
mgr_attributes = {'mgr_attr_name': module.params['manager_attribute_name'],
|
|
||||||
'mgr_attr_value': module.params['manager_attribute_value']}
|
|
||||||
# BIOS attributes to update
|
# BIOS attributes to update
|
||||||
bios_attributes = {'bios_attr_name': module.params['bios_attribute_name'],
|
bios_attributes = {'bios_attr_name': module.params['bios_attribute_name'],
|
||||||
'bios_attr_value': module.params['bios_attribute_value']}
|
'bios_attr_value': module.params['bios_attribute_value']}
|
||||||
|
@ -220,16 +172,6 @@ def main():
|
||||||
elif command == "SetBiosAttributes":
|
elif command == "SetBiosAttributes":
|
||||||
result = rf_utils.set_bios_attributes(bios_attributes)
|
result = rf_utils.set_bios_attributes(bios_attributes)
|
||||||
|
|
||||||
elif category == "Manager":
|
|
||||||
# execute only if we find a Manager service resource
|
|
||||||
result = rf_utils._find_managers_resource(rf_uri)
|
|
||||||
if result['ret'] is False:
|
|
||||||
module.fail_json(msg=to_native(result['msg']))
|
|
||||||
|
|
||||||
for command in command_list:
|
|
||||||
if command == "SetManagerAttributes":
|
|
||||||
result = rf_utils.set_manager_attributes(mgr_attributes)
|
|
||||||
|
|
||||||
# Return data back or fail with proper message
|
# Return data back or fail with proper message
|
||||||
if result['ret'] is True:
|
if result['ret'] is True:
|
||||||
module.exit_json(changed=result['changed'], msg=to_native(result['msg']))
|
module.exit_json(changed=result['changed'], msg=to_native(result['msg']))
|
||||||
|
|
|
@ -135,7 +135,7 @@ CATEGORY_COMMANDS_ALL = {
|
||||||
"Chassis": ["GetFanInventory"],
|
"Chassis": ["GetFanInventory"],
|
||||||
"Accounts": ["ListUsers"],
|
"Accounts": ["ListUsers"],
|
||||||
"Update": ["GetFirmwareInventory"],
|
"Update": ["GetFirmwareInventory"],
|
||||||
"Manager": ["GetManagerAttributes", "GetManagerNicInventory", "GetLogs"],
|
"Manager": ["GetManagerNicInventory", "GetLogs"],
|
||||||
}
|
}
|
||||||
|
|
||||||
CATEGORY_COMMANDS_DEFAULT = {
|
CATEGORY_COMMANDS_DEFAULT = {
|
||||||
|
@ -143,7 +143,7 @@ CATEGORY_COMMANDS_DEFAULT = {
|
||||||
"Chassis": "GetFanInventory",
|
"Chassis": "GetFanInventory",
|
||||||
"Accounts": "ListUsers",
|
"Accounts": "ListUsers",
|
||||||
"Update": "GetFirmwareInventory",
|
"Update": "GetFirmwareInventory",
|
||||||
"Manager": "GetManagerAttributes"
|
"Manager": "GetManagerNicInventory"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -263,9 +263,7 @@ def main():
|
||||||
module.fail_json(msg=resource['msg'])
|
module.fail_json(msg=resource['msg'])
|
||||||
|
|
||||||
for command in command_list:
|
for command in command_list:
|
||||||
if command == "GetManagerAttributes":
|
if command == "GetManagerNicInventory":
|
||||||
result["manager_attributes"] = rf_utils.get_manager_attributes()
|
|
||||||
elif command == "GetManagerNicInventory":
|
|
||||||
result["manager_nics"] = rf_utils.get_nic_inventory(resource_type=category)
|
result["manager_nics"] = rf_utils.get_nic_inventory(resource_type=category)
|
||||||
elif command == "GetLogs":
|
elif command == "GetLogs":
|
||||||
result["log"] = rf_utils.get_logs()
|
result["log"] = rf_utils.get_logs()
|
||||||
|
|
Loading…
Reference in a new issue