The cinder.volume.drivers.dell_emc.vmax.masking Module

class VMAXMasking(prtcl)

Bases: object

Masking class for SMI-S based EMC volume drivers.

Masking code to dynamically create a masking view This masking class is for EMC volume drivers based on SMI-S. It supports VMAX arrays.

add_volume_to_storage_group(conn, controllerConfigService, storageGroupInstanceName, volumeInstance, volumeName, sgGroupName, extraSpecs)

Add a volume to an existing storage group.

Parameters:
  • conn – connection to ecom server
  • controllerConfigService – the controller configuration service
  • storageGroupInstanceName – storage group instance name
  • volumeInstance – the volume instance
  • volumeName – the name of the volume (String)
  • sgGroupName – the name of the storage group (String)
  • extraSpecs – additional info
Returns:

int – rc the return code of the job

Returns:

dict – the job dict

delete_storage_group(conn, controllerConfigService, storageGroupInstanceName, extraSpecs)

Delete a given storage group.

Parameters:
  • conn – connection to the ecom server
  • controllerConfigService – controller config service
  • storageGroupInstanceName – the storage group instance
  • extraSpecs – the extra specifications
find_new_masking_view(conn, jobDict)

Find the newly created volume.

Parameters:
  • conn – the connection to the ecom server
  • jobDict – the job dictionary
Returns:

dict – maskingViewInstance

find_port_group(conn, controllerConfigService, portGroupName)

Given the port Group name get the port group instance name.

Parameters:
  • conn – connection to the ecom server
  • controllerConfigService – the controller configuration service
  • portGroupName – the name of the port group you are getting
Returns:

foundPortGroupInstanceName

get_associated_masking_groups_from_device(conn, volumeInstanceName)

Get the associated storage groups from the volume Instance name.

Given the volume instance name get the associated storage group instance names.

Parameters:
  • conn – connection to the ecom server
  • volumeInstanceName – the volume instance name
Returns:

list – list of storage group instance names

get_devices_from_storage_group(conn, storageGroupInstanceName)

Get the associated volume Instance names.

Given the storage group instance name get the associated volume Instance names.

Parameters:
  • conn – connection to the ecom server
  • storageGroupInstanceName – the storage group instance name
Returns:

list – volumeInstanceNames list of volume instance names

get_initiator_group_from_masking_view(conn, maskingViewInstanceName)

Get initiator group in a masking view.

Parameters:
  • conn – the ecom connection
  • maskingViewInstanceName – masking view instance name
Returns:

initiatorGroupInstanceName or None if it is not found

get_masking_view_by_volume(conn, volumeInstance, connector)

Given volume, retrieve the masking view instance name.

Parameters:
  • conn – the ecom connection
  • volumeInstance – the volume instance
  • connector – the connector object
Returns:

masking view instance name

get_masking_view_from_storage_group(conn, storageGroupInstanceName)

Get the associated maskingview instance name.

Given storage group instance name, get the associated masking view instance name.

Parameters:
  • conn – connection to the ecom server
  • storageGroupInstanceName – the storage group instance name
Returns:

instance name foundMaskingViewInstanceName

get_masking_views_by_initiator_group(conn, initiatorGroupInstanceName)

Given initiator group, retrieve the masking view instance name.

Retrieve the list of masking view instances associated with the initiator group instance name.
Parameters:
  • conn – the ecom connection
  • initiatorGroupInstanceName – the instance name of the initiator group
Returns:

list of masking view instance names

get_masking_views_by_port_group(conn, portGroupInstanceName)

Given port group, retrieve the masking view instance name.

Parameters:
  • conn – the ecom connection
  • portGroupInstanceName – the instance name of the port group
Returns:

masking view instance names

get_or_create_masking_view_and_map_lun(conn, maskingViewDict, extraSpecs)

Get or Create a masking view and add a volume to the storage group.

Given a masking view tuple either get or create a masking view and add the volume to the associated storage group. If it is a live migration operation then we do not need to remove the volume from any storage group (default or otherwise).

Parameters:
  • conn – the connection to ecom
  • maskingViewDict – the masking view dict
  • extraSpecs – additional info
Returns:

dict – rollbackDict

Raises:

VolumeBackendAPIException

get_port_group_from_masking_view(conn, maskingViewInstanceName)

Get the port group in a masking view.

Parameters:
  • conn – the ecom connection
  • maskingViewInstanceName – masking view instance name
Returns:

portGroupInstanceName

get_target_wwns(conn, mvInstanceName)

Get the DA ports wwns.

Parameters:
  • conn – the ecom connection
  • mvInstanceName – masking view instance name
Returns:

list – the list of target wwns for the masking view

remove_and_reset_members(conn, controllerConfigService, volumeInstance, volumeName, extraSpecs, connector=None, reset=True)

This is called on a delete, unmap device or rollback.

If the connector is not None get the associated SG and remove volume from the storage group, otherwise it is a VMAX3 deletion.

Parameters:
  • conn – connection to the ecom server
  • controllerConfigService – the controller configuration service
  • volumeInstance – the volume Instance
  • volumeName – the volume name
  • extraSpecs – additional info
  • connector – optional
  • reset – reset, return to original SG (optional)
Returns:

storageGroupInstanceName

remove_device_from_default_storage_group(conn, controllerConfigService, volumeInstanceName, volumeName, fastPolicyName, extraSpecs)

Remove the volume from the default storage group.

Remove the volume from the default storage group for the FAST policy and return the default storage group instance name.

Parameters:
  • conn – the connection to the ecom server
  • controllerConfigService – the controller config service
  • volumeInstanceName – the volume instance name
  • volumeName – the volume name (String)
  • fastPolicyName – the fast policy name (String)
  • extraSpecs – additional info
Returns:

instance name defaultStorageGroupInstanceName

remove_device_from_storage_group(conn, controllerConfigService, storageGroupInstanceName, volumeInstance, volumeName, storageGroupName, extraSpecs)

Remove a device from a storage group.

Parameters:
  • conn – the connection to the ecom server
  • controllerConfigService – the controller config service
  • storageGroupInstanceName – the sg instance
  • volumeInstance – the volume instance
  • extraSpecs – the extra specifications
return_volume_to_default_storage_group_v3(conn, controllerConfigurationService, volumeInstance, volumeName, extraSpecs)

Return volume to the default storage group in v3.

Parameters:
  • conn – the ecom connection
  • controllerConfigurationService – controller config service
  • volumeInstance – volumeInstance
  • volumeName – the volume name
  • extraSpecs – additional info
Raises:

VolumeBackendAPIException

setup_masking_view(conn, maskingViewDict, extraSpecs)