Skip to content

Commit

Permalink
Merge pull request #70 from dell/usr/Trisha_Datta/Volume_defect_fix
Browse files Browse the repository at this point in the history
Fixing volume module defect
  • Loading branch information
trisha-dell authored Dec 20, 2024
2 parents 3c6e9b7 + 6821021 commit ce15497
Showing 1 changed file with 36 additions and 11 deletions.
47 changes: 36 additions & 11 deletions plugins/modules/volume.py
Original file line number Diff line number Diff line change
Expand Up @@ -1658,10 +1658,15 @@ def get_diff_after(self, volume_params, volume_details, fetched_params, before_d
"source_timestamp": None
},
"protection_policy": {
"id": "",
"name": volume_params['protection_policy']
"id": fetched_params.get('protection_policy_id'),
"name": volume_params.get('protection_policy')
},
"protection_policy_id": "",
"protection_policy_id": fetched_params.get('protection_policy_id'),
"performance_policy": {
"id": fetched_params.get('performance_policy'),
"name": volume_params.get('performance_policy')
},
"performance_policy_id": fetched_params.get('performance_policy'),
"size": fetched_params['size'],
"snapshots": [],
"state": "Ready",
Expand All @@ -1671,6 +1676,18 @@ def get_diff_after(self, volume_params, volume_details, fetched_params, before_d
"volume_groups": [],
"wwn": "naa.68ccf09800f637b92d1c2289688f128d"
}
if fetched_params.get('host'):
hlu_dict = {
'host_id': fetched_params.get('host'),
'hostgroup_id': None
}
diff_dict.get('hlu_details').append(hlu_dict)
if fetched_params['hostgroup_details']:
hlu_dict = {
'host_id': None,
'hostgroup_id': fetched_params.get('hostgroup_details')['id']
}
diff_dict.get('hlu_details').append(hlu_dict)

else:
diff_dict, before_dict = self.modify_diff(volume_params, volume_details, fetched_params, before_dict)
Expand Down Expand Up @@ -1834,14 +1851,14 @@ def get_powerstore_volume_parameters():
"Virtualization_Virtual_Servers_VSI",
"Virtualization_Containers_Kubernetes",
"Virtualization_Virtual_Desktops_VDI", "Other"]),
app_type_other=dict(),
appliance_name=dict(),
appliance_id=dict()
app_type_other=dict(type='str'),
appliance_name=dict(type='str'),
appliance_id=dict(type='str')
)


class VolumeExitHandler:
def handle(self, volume_obj, volume_params, volume_id, changed):
def handle(self, volume_obj, volume_params, volume_id, volume_details, changed):
volume_obj.result["changed"] = changed
if volume_params['state'] == 'present':
if volume_id is not None:
Expand All @@ -1854,6 +1871,11 @@ def handle(self, volume_obj, volume_params, volume_id, changed):
volume_obj.result["volume_details"]['id'], all_snapshots=True)[1])
volume_obj.result["volume_details"].update(
appliance_name=volume_obj.update_volume_details(volume_obj.result["volume_details"]))
if volume_params['state'] == 'absent':
if volume_obj.module.check_mode:
volume_obj.result['volume_details'] = volume_details
else:
volume_obj.result['volume_details'] = dict()
volume_obj.module.exit_json(**volume_obj.result)


Expand All @@ -1862,7 +1884,7 @@ def handle(self, volume_obj, volume_params, volume_details, volume_id, changed):
if volume_params['state'] == 'absent' and volume_details:
LOG.info('Deleting volume %s ', volume_details['name'])
changed = volume_obj.delete_volume(volume=volume_details) or changed
VolumeExitHandler().handle(volume_obj, volume_params, volume_id, changed)
VolumeExitHandler().handle(volume_obj, volume_params, volume_id, volume_details, changed)


class VolumeEndMetroHandler:
Expand Down Expand Up @@ -1904,7 +1926,8 @@ def handle(self, volume_obj, volume_params, volume_details, fetched_params, volu
}
volume_obj.result["is_volume_restored"] = False
changed = volume_obj.restore_volume(volume=volume_details, restore_details=restore_details)
volume_obj.result["is_volume_restored"] = changed
if not volume_obj.module.check_mode:
volume_obj.result["is_volume_restored"] = changed
VolumeConfigureMetroHandler().handle(volume_obj, volume_params, volume_details, fetched_params, volume_id,
changed)

Expand All @@ -1919,7 +1942,8 @@ def handle(self, volume_obj, volume_params, volume_details, fetched_params, volu
}
volume_obj.result["is_volume_refreshed"] = False
changed = volume_obj.refresh_volume(volume=volume_details, refresh_details=refresh_details)
volume_obj.result["is_volume_refreshed"] = changed
if not volume_obj.module.check_mode:
volume_obj.result["is_volume_refreshed"] = changed
VolumeRestoreHandler().handle(volume_obj, volume_params, volume_details, fetched_params, volume_id, changed)


Expand All @@ -1928,7 +1952,8 @@ def handle(self, volume_obj, volume_params, volume_details, fetched_params, volu
if volume_params['state'] == 'present' and volume_params['clone_volume'] is not None:
volume_obj.result["is_volume_cloned"] = False
changed = volume_obj.clone_volume(vol_id=volume_id, clone_details=volume_params['clone_volume'])
volume_obj.result["is_volume_cloned"] = changed
if not volume_obj.module.check_mode:
volume_obj.result["is_volume_cloned"] = changed
VolumeRefreshHandler().handle(volume_obj, volume_params, volume_details, fetched_params, volume_id, changed)


Expand Down

0 comments on commit ce15497

Please sign in to comment.