[PR #8990/447d4b02 backport][stable-9] redfish_config new bool parameter to automatically delete 'None' type volumes. (#9008)

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>
(cherry picked from commit 447d4b0267)

Co-authored-by: Pierre-yves Fontaniere <pyfontan@cc.in2p3.fr>
This commit is contained in:
patchback[bot] 2024-10-07 23:09:55 +02:00 committed by GitHub
parent e302058e2d
commit 154b5f86fd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 28 additions and 15 deletions

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,22 +3794,23 @@ class RedfishUtils(object):
data = response['data']
# Deleting any volumes of RAIDType None present on the Storage Subsystem
response = self.get_request(self.root_uri + data['Volumes']['@odata.id'])
if response['ret'] is False:
return response
volume_data = response['data']
if storage_none_volume_deletion:
response = self.get_request(self.root_uri + data['Volumes']['@odata.id'])
if response['ret'] is False:
return response
volume_data = response['data']
if "Members" in volume_data:
for member in volume_data["Members"]:
response = self.get_request(self.root_uri + member['@odata.id'])
if response['ret'] is False:
return response
member_data = response['data']
if member_data["RAIDType"] == "None":
response = self.delete_request(self.root_uri + member['@odata.id'])
if "Members" in volume_data:
for member in volume_data["Members"]:
response = self.get_request(self.root_uri + member['@odata.id'])
if response['ret'] is False:
return response
member_data = response['data']
if member_data["RAIDType"] == "None":
response = self.delete_request(self.root_uri + member['@odata.id'])
if response['ret'] is False:
return response
# Construct payload and issue POST command to create volume
volume_details["Links"] = {}