VMAX driver - minor metadata additions
Adding metadata for delete operation and adding OpenStack display name to all operations. Change-Id: Ia21a2688fc4ec2d974d866703abef38ae25a0048
This commit is contained in:
parent
a244db46e7
commit
07c1b85419
@ -8213,6 +8213,13 @@ class VMAXVolumeMetadataDebugTest(test.TestCase):
|
|||||||
"test_group_id", self.data.extra_specs, {}, 'create', None)
|
"test_group_id", self.data.extra_specs, {}, 'create', None)
|
||||||
mock_uvim.assert_called_once()
|
mock_uvim.assert_called_once()
|
||||||
|
|
||||||
|
@mock.patch.object(metadata.VMAXVolumeMetadata,
|
||||||
|
'update_volume_info_metadata',
|
||||||
|
return_value={})
|
||||||
|
def test_capture_delete_info(self, mock_uvim):
|
||||||
|
self.volume_metadata.capture_delete_info(self.data.test_volume)
|
||||||
|
mock_uvim.assert_called_once()
|
||||||
|
|
||||||
@mock.patch.object(metadata.VMAXVolumeMetadata,
|
@mock.patch.object(metadata.VMAXVolumeMetadata,
|
||||||
'update_volume_info_metadata',
|
'update_volume_info_metadata',
|
||||||
return_value={})
|
return_value={})
|
||||||
@ -8275,7 +8282,7 @@ class VMAXVolumeMetadataDebugTest(test.TestCase):
|
|||||||
return_value={})
|
return_value={})
|
||||||
def test_capture_retype_info(self, mock_uvim):
|
def test_capture_retype_info(self, mock_uvim):
|
||||||
self.volume_metadata.capture_retype_info(
|
self.volume_metadata.capture_retype_info(
|
||||||
self.data.test_volume.id, 20, self.data.device_id, self.data.array,
|
self.data.test_volume, self.data.device_id, self.data.array,
|
||||||
self.data.srp, self.data.slo, self.data.workload,
|
self.data.srp, self.data.slo, self.data.workload,
|
||||||
self.data.storagegroup_name_target, False, None,
|
self.data.storagegroup_name_target, False, None,
|
||||||
False)
|
False)
|
||||||
|
@ -427,6 +427,7 @@ class VMAXCommon(object):
|
|||||||
LOG.info("Deleting Volume: %(volume)s",
|
LOG.info("Deleting Volume: %(volume)s",
|
||||||
{'volume': volume.name})
|
{'volume': volume.name})
|
||||||
volume_name = self._delete_volume(volume)
|
volume_name = self._delete_volume(volume)
|
||||||
|
self.volume_metadata.capture_delete_info(volume)
|
||||||
LOG.info("Leaving delete_volume: %(volume_name)s.",
|
LOG.info("Leaving delete_volume: %(volume_name)s.",
|
||||||
{'volume_name': volume_name})
|
{'volume_name': volume_name})
|
||||||
|
|
||||||
@ -2605,7 +2606,7 @@ class VMAXCommon(object):
|
|||||||
rep_mode, is_rep_enabled, target_extra_specs)
|
rep_mode, is_rep_enabled, target_extra_specs)
|
||||||
|
|
||||||
self.volume_metadata.capture_retype_info(
|
self.volume_metadata.capture_retype_info(
|
||||||
volume.id, volume.size, device_id, array, srp, target_slo,
|
volume, device_id, array, srp, target_slo,
|
||||||
target_workload, target_sg_name, is_rep_enabled, rep_mode,
|
target_workload, target_sg_name, is_rep_enabled, rep_mode,
|
||||||
is_compression_disabled)
|
is_compression_disabled)
|
||||||
|
|
||||||
|
@ -331,6 +331,7 @@ class VMAXVolumeMetadata(object):
|
|||||||
port_group=port_group,
|
port_group=port_group,
|
||||||
host=host, is_multipath=is_multipath,
|
host=host, is_multipath=is_multipath,
|
||||||
identifier_name=self.utils.get_volume_element_name(volume.id),
|
identifier_name=self.utils.get_volume_element_name(volume.id),
|
||||||
|
openstack_name=volume.display_name,
|
||||||
mv_list=mv_list, sg_list=sg_list)
|
mv_list=mv_list, sg_list=sg_list)
|
||||||
|
|
||||||
volume_metadata = self.update_volume_info_metadata(
|
volume_metadata = self.update_volume_info_metadata(
|
||||||
@ -357,6 +358,7 @@ class VMAXVolumeMetadata(object):
|
|||||||
workload=extra_specs[utils.WORKLOAD], srp=extra_specs[utils.SRP],
|
workload=extra_specs[utils.WORKLOAD], srp=extra_specs[utils.SRP],
|
||||||
default_sg_name=default_sg,
|
default_sg_name=default_sg,
|
||||||
identifier_name=self.utils.get_volume_element_name(volume.id),
|
identifier_name=self.utils.get_volume_element_name(volume.id),
|
||||||
|
openstack_name=volume.display_name,
|
||||||
mv_list=mv_list, sg_list=sg_list
|
mv_list=mv_list, sg_list=sg_list
|
||||||
)
|
)
|
||||||
volume_metadata = self.update_volume_info_metadata(
|
volume_metadata = self.update_volume_info_metadata(
|
||||||
@ -383,6 +385,7 @@ class VMAXVolumeMetadata(object):
|
|||||||
workload=extra_specs[utils.WORKLOAD],
|
workload=extra_specs[utils.WORKLOAD],
|
||||||
srp=extra_specs[utils.SRP],
|
srp=extra_specs[utils.SRP],
|
||||||
identifier_name=self.utils.get_volume_element_name(volume.id),
|
identifier_name=self.utils.get_volume_element_name(volume.id),
|
||||||
|
openstack_name=volume.display_name,
|
||||||
is_compression_disabled=self.utils.is_compression_disabled(
|
is_compression_disabled=self.utils.is_compression_disabled(
|
||||||
extra_specs))
|
extra_specs))
|
||||||
volume_metadata = self.update_volume_info_metadata(
|
volume_metadata = self.update_volume_info_metadata(
|
||||||
@ -416,6 +419,7 @@ class VMAXVolumeMetadata(object):
|
|||||||
srp=extra_specs[utils.SRP],
|
srp=extra_specs[utils.SRP],
|
||||||
identifier_name=(
|
identifier_name=(
|
||||||
self.utils.get_volume_element_name(source.id)),
|
self.utils.get_volume_element_name(source.id)),
|
||||||
|
openstack_name=source.display_name,
|
||||||
snapshot_count=snapshot_count,
|
snapshot_count=snapshot_count,
|
||||||
last_ss_name=last_ss_name)
|
last_ss_name=last_ss_name)
|
||||||
volume_metadata = self.update_volume_info_metadata(
|
volume_metadata = self.update_volume_info_metadata(
|
||||||
@ -494,6 +498,7 @@ class VMAXVolumeMetadata(object):
|
|||||||
workload=extra_specs[utils.WORKLOAD],
|
workload=extra_specs[utils.WORKLOAD],
|
||||||
srp=extra_specs[utils.SRP],
|
srp=extra_specs[utils.SRP],
|
||||||
identifier_name=self.utils.get_volume_element_name(volume.id),
|
identifier_name=self.utils.get_volume_element_name(volume.id),
|
||||||
|
openstack_name=volume.display_name,
|
||||||
source_volid=volume.source_volid,
|
source_volid=volume.source_volid,
|
||||||
group_name=group_name, group_id=group_id,
|
group_name=group_name, group_id=group_id,
|
||||||
rdf_group_no=rdf_group_no,
|
rdf_group_no=rdf_group_no,
|
||||||
@ -558,6 +563,7 @@ class VMAXVolumeMetadata(object):
|
|||||||
workload=extra_specs[utils.WORKLOAD],
|
workload=extra_specs[utils.WORKLOAD],
|
||||||
srp=extra_specs[utils.SRP],
|
srp=extra_specs[utils.SRP],
|
||||||
identifier_name=self.utils.get_volume_element_name(volume.id),
|
identifier_name=self.utils.get_volume_element_name(volume.id),
|
||||||
|
openstack_name=volume.display_name,
|
||||||
source_volid=volume.source_volid,
|
source_volid=volume.source_volid,
|
||||||
rdf_group_no=rdf_group, remote_array=array,
|
rdf_group_no=rdf_group, remote_array=array,
|
||||||
target_device_id=device_id, vol_grp_name=vol_grp_name,
|
target_device_id=device_id, vol_grp_name=vol_grp_name,
|
||||||
@ -605,6 +611,7 @@ class VMAXVolumeMetadata(object):
|
|||||||
workload=extra_specs[utils.WORKLOAD],
|
workload=extra_specs[utils.WORKLOAD],
|
||||||
srp=extra_specs[utils.SRP],
|
srp=extra_specs[utils.SRP],
|
||||||
identifier_name=self.utils.get_volume_element_name(volume.id),
|
identifier_name=self.utils.get_volume_element_name(volume.id),
|
||||||
|
openstack_name=volume.display_name,
|
||||||
source_volid=volume.source_volid,
|
source_volid=volume.source_volid,
|
||||||
rdf_group_no=rdf_group_no,
|
rdf_group_no=rdf_group_no,
|
||||||
target_name=target_name, remote_array=remote_array,
|
target_name=target_name, remote_array=remote_array,
|
||||||
@ -618,7 +625,7 @@ class VMAXVolumeMetadata(object):
|
|||||||
|
|
||||||
@debug_required
|
@debug_required
|
||||||
def capture_retype_info(
|
def capture_retype_info(
|
||||||
self, volume_id, volume_size, device_id, array, srp, target_slo,
|
self, volume, device_id, array, srp, target_slo,
|
||||||
target_workload, target_sg_name, is_rep_enabled, rep_mode,
|
target_workload, target_sg_name, is_rep_enabled, rep_mode,
|
||||||
is_compression_disabled):
|
is_compression_disabled):
|
||||||
"""Captures manage existing info in volume metadata
|
"""Captures manage existing info in volume metadata
|
||||||
@ -636,14 +643,15 @@ class VMAXVolumeMetadata(object):
|
|||||||
"""
|
"""
|
||||||
operation = "retype"
|
operation = "retype"
|
||||||
datadict = self.gather_volume_info(
|
datadict = self.gather_volume_info(
|
||||||
volume_id, operation, False, volume_size=volume_size,
|
volume.id, operation, False, volume_size=volume.size,
|
||||||
device_id=device_id,
|
device_id=device_id,
|
||||||
target_sg_name=target_sg_name,
|
target_sg_name=target_sg_name,
|
||||||
serial_number=array,
|
serial_number=array,
|
||||||
target_service_level=target_slo,
|
target_service_level=target_slo,
|
||||||
target_workload=target_workload,
|
target_workload=target_workload,
|
||||||
srp=srp,
|
srp=srp,
|
||||||
identifier_name=self.utils.get_volume_element_name(volume_id),
|
identifier_name=self.utils.get_volume_element_name(volume.id),
|
||||||
|
openstack_name=volume.display_name,
|
||||||
is_rep_enabled=('yes' if is_rep_enabled else 'no'),
|
is_rep_enabled=('yes' if is_rep_enabled else 'no'),
|
||||||
rep_mode=rep_mode, is_compression_disabled = (
|
rep_mode=rep_mode, is_compression_disabled = (
|
||||||
'yes' if is_compression_disabled else 'no')
|
'yes' if is_compression_disabled else 'no')
|
||||||
@ -651,3 +659,17 @@ class VMAXVolumeMetadata(object):
|
|||||||
volume_metadata = self.update_volume_info_metadata(
|
volume_metadata = self.update_volume_info_metadata(
|
||||||
datadict, self.version_dict)
|
datadict, self.version_dict)
|
||||||
self.print_pretty_table(volume_metadata)
|
self.print_pretty_table(volume_metadata)
|
||||||
|
|
||||||
|
@debug_required
|
||||||
|
def capture_delete_info(self, volume):
|
||||||
|
"""Captures delete info in volume metadata
|
||||||
|
|
||||||
|
:param volume: the volume object
|
||||||
|
"""
|
||||||
|
datadict = self.gather_volume_info(
|
||||||
|
volume.id, 'delete', False,
|
||||||
|
identifier_name=self.utils.get_volume_element_name(volume.id),
|
||||||
|
openstack_name=volume.display_name)
|
||||||
|
volume_metadata = self.update_volume_info_metadata(
|
||||||
|
datadict, self.version_dict)
|
||||||
|
self.print_pretty_table(volume_metadata)
|
||||||
|
Loading…
Reference in New Issue
Block a user