The cinder.volume.drivers.emc.emc_vmax_masking Module

class EMCVMAXMasking(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

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 the 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 the 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 the ecom server
  • storageGroupInstanceName – the storage group instance name
Returns:

instance name foundMaskingViewInstanceName

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, noReset=None)

Part of unmap device or rollback.

Removes volume from the Device Masking Group that belongs to a Masking View. Check if fast policy is in the extra specs, if it isn’t we do not need to do any thing for FAST. Assume that isTieringPolicySupported is False unless the FAST policy is in the extra specs and tiering is enabled on the array.

Parameters:
  • conn – connection the the ecom server
  • controllerConfigService – the controller configuration service
  • volumeInstance – the volume Instance
  • volumeName – the volume name
  • extraSpecs – additional info
  • connector – optional
  • noReset – optional, if none, then reset
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

setup_masking_view(conn, maskingViewDict, extraSpecs)

Previous topic

The cinder.volume.drivers.emc.emc_vmax_iscsi Module

Next topic

The cinder.volume.drivers.emc.emc_vmax_provision Module

Project Source

This Page