redfish_config new bool parameter to automatically delete 'None' type volumes. (#8990)

* Add a new boolean parameter storage_none_volume_deletion to the volume creation command of redfish_config

* Add description for storage_none_volume_deletion redfish_config parameter

* Update plugins/module_utils/redfish_utils.py

Co-authored-by: Mike Raineri <mraineri@gmail.com>

* Update plugins/modules/redfish_config.py

Co-authored-by: Mike Raineri <mraineri@gmail.com>

* Add CHANGELOG fragment

* Add punctuation.

---------

Co-authored-by: Pierre-yves FONTANIERE <pyf@cc.in2p3.fr>
Co-authored-by: Mike Raineri <mraineri@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
pull/9012/head
Pierre-yves Fontaniere 2024-10-07 23:00:56 +02:00 committed by GitHub
parent b523d1b1c9
commit 447d4b0267
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 28 additions and 15 deletions

View File

@ -0,0 +1,3 @@
minor_changes:
- redfish_config - add parameter ``storage_none_volume_deletion`` to
``CreateVolume`` command in order to control the automatic deletion of non-RAID volumes (https://github.com/ansible-collections/community.general/pull/8990).

View File

@ -3742,7 +3742,7 @@ class RedfishUtils(object):
return {'ret': True, 'changed': True,
'msg': "The following volumes were deleted: %s" % str(volume_ids)}
def create_volume(self, volume_details, storage_subsystem_id):
def create_volume(self, volume_details, storage_subsystem_id, storage_none_volume_deletion=False):
# Find the Storage resource from the requested ComputerSystem resource
response = self.get_request(self.root_uri + self.systems_uri)
if response['ret'] is False:
@ -3794,6 +3794,7 @@ class RedfishUtils(object):
data = response['data']
# Deleting any volumes of RAIDType None present on the Storage Subsystem
if storage_none_volume_deletion:
response = self.get_request(self.root_uri + data['Volumes']['@odata.id'])
if response['ret'] is False:
return response

View File

@ -145,6 +145,13 @@ options:
type: str
default: ''
version_added: '7.3.0'
storage_none_volume_deletion:
required: false
description:
- Indicates if all non-RAID volumes are automatically deleted prior to creating the new volume.
type: bool
default: false
version_added: '9.5.0'
volume_ids:
required: false
description:
@ -418,6 +425,7 @@ def main():
hostinterface_id=dict(),
sessions_config=dict(type='dict', default={}),
storage_subsystem_id=dict(type='str', default=''),
storage_none_volume_deletion=dict(type='bool', default=False),
volume_ids=dict(type='list', default=[], elements='str'),
secure_boot_enable=dict(type='bool', default=True),
volume_details=dict(type='dict', default={}),
@ -484,6 +492,7 @@ def main():
# Volume creation options
volume_details = module.params['volume_details']
storage_subsystem_id = module.params['storage_subsystem_id']
storage_none_volume_deletion = module.params['storage_none_volume_deletion']
# ciphers
ciphers = module.params['ciphers']
@ -527,7 +536,7 @@ def main():
elif command == "DeleteVolumes":
result = rf_utils.delete_volumes(storage_subsystem_id, volume_ids)
elif command == "CreateVolume":
result = rf_utils.create_volume(volume_details, storage_subsystem_id)
result = rf_utils.create_volume(volume_details, storage_subsystem_id, storage_none_volume_deletion)
elif category == "Manager":
# execute only if we find a Manager service resource