Skip to content

Commit

Permalink
[PR #6871/9adc82d5 backport][stable-7] Redfish: Added support for dis…
Browse files Browse the repository at this point in the history
…playing and setting account types (#6919)

Redfish: Added support for displaying and setting account types (#6871)

* Redfish: Added support for displaying and setting account types

Signed-off-by: Mike Raineri <[email protected]>

* Update 6823-redfish-add-account-type-management.yml

* CI fixes

Signed-off-by: Mike Raineri <[email protected]>

---------

Signed-off-by: Mike Raineri <[email protected]>
(cherry picked from commit 9adc82d)

Co-authored-by: Mike Raineri <[email protected]>
  • Loading branch information
patchback[bot] and mraineri authored Jul 12, 2023
1 parent 7c0e4bd commit db8f38e
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
minor_changes:
- redfish_info - add ``AccountTypes`` and ``OEMAccountTypes`` to the output of ``ListUsers`` (https://github.com/ansible-collections/community.general/issues/6823, https://github.com/ansible-collections/community.general/pull/6871).
- redfish_command - add ``account_types`` and ``oem_account_types`` as optional inputs to ``AddUser`` (https://github.com/ansible-collections/community.general/issues/6823, https://github.com/ansible-collections/community.general/pull/6871).
11 changes: 10 additions & 1 deletion plugins/module_utils/redfish_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -1140,7 +1140,8 @@ def list_users(self):
user_list = []
users_results = []
# Get these entries, but does not fail if not found
properties = ['Id', 'Name', 'UserName', 'RoleId', 'Locked', 'Enabled']
properties = ['Id', 'Name', 'UserName', 'RoleId', 'Locked', 'Enabled',
'AccountTypes', 'OEMAccountTypes']

response = self.get_request(self.root_uri + self.accounts_uri)
if response['ret'] is False:
Expand Down Expand Up @@ -1191,6 +1192,10 @@ def add_user_via_patch(self, user):
payload['Password'] = user.get('account_password')
if user.get('account_roleid'):
payload['RoleId'] = user.get('account_roleid')
if user.get('account_accounttypes'):
payload['AccountTypes'] = user.get('account_accounttypes')
if user.get('account_oemaccounttypes'):
payload['OEMAccountTypes'] = user.get('account_oemaccounttypes')
return self.patch_request(self.root_uri + uri, payload, check_pyld=True)

def add_user(self, user):
Expand Down Expand Up @@ -1221,6 +1226,10 @@ def add_user(self, user):
payload['Password'] = user.get('account_password')
if user.get('account_roleid'):
payload['RoleId'] = user.get('account_roleid')
if user.get('account_accounttypes'):
payload['AccountTypes'] = user.get('account_accounttypes')
if user.get('account_oemaccounttypes'):
payload['OEMAccountTypes'] = user.get('account_oemaccounttypes')
if user.get('account_id'):
payload['Id'] = user.get('account_id')

Expand Down
48 changes: 42 additions & 6 deletions plugins/modules/redfish_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,22 @@
description:
- Role of account to add/modify.
type: str
account_types:
required: false
aliases: [ account_accounttypes ]
description:
- Array of account types to apply to a user account.
type: list
elements: str
version_added: '7.2.0'
oem_account_types:
required: false
aliases: [ account_oemaccounttypes ]
description:
- Array of OEM account types to apply to a user account.
type: list
elements: str
version_added: '7.2.0'
bootdevice:
required: false
description:
Expand Down Expand Up @@ -380,6 +396,20 @@
new_password: "{{ new_password }}"
roleid: "{{ roleid }}"
- name: Add user with specified account types
community.general.redfish_command:
category: Accounts
command: AddUser
baseuri: "{{ baseuri }}"
username: "{{ username }}"
password: "{{ password }}"
new_username: "{{ new_username }}"
new_password: "{{ new_password }}"
roleid: "{{ roleid }}"
account_types:
- Redfish
- WebUI
- name: Add user using new option aliases
community.general.redfish_command:
category: Accounts
Expand Down Expand Up @@ -747,6 +777,8 @@ def main():
new_username=dict(aliases=["account_username"]),
new_password=dict(aliases=["account_password"], no_log=True),
roleid=dict(aliases=["account_roleid"]),
account_types=dict(type='list', elements='str', aliases=["account_accounttypes"]),
oem_account_types=dict(type='list', elements='str', aliases=["account_oemaccounttypes"]),
update_username=dict(type='str', aliases=["account_updatename"]),
account_properties=dict(type='dict', default={}),
bootdevice=dict(),
Expand Down Expand Up @@ -806,12 +838,16 @@ def main():
'token': module.params['auth_token']}

# user to add/modify/delete
user = {'account_id': module.params['id'],
'account_username': module.params['new_username'],
'account_password': module.params['new_password'],
'account_roleid': module.params['roleid'],
'account_updatename': module.params['update_username'],
'account_properties': module.params['account_properties']}
user = {
'account_id': module.params['id'],
'account_username': module.params['new_username'],
'account_password': module.params['new_password'],
'account_roleid': module.params['roleid'],
'account_accounttypes': module.params['account_types'],
'account_oemaccounttypes': module.params['oem_account_types'],
'account_updatename': module.params['update_username'],
'account_properties': module.params['account_properties'],
}

# timeout
timeout = module.params['timeout']
Expand Down

0 comments on commit db8f38e

Please sign in to comment.