The cinder.volume.drivers.emc.vnx.adapter Module

class CommonAdapter(configuration, active_backend_id)

Bases: object

VERSION = None
append_replication_stats(stats)
assure_host_access(storage_group, host, volume, is_new_sg)

Assures that host is connected to the Array.

It first registers initiators to storage_group then add volume to storage_group.

Parameters:
  • storage_group – object of storops storage group to which the host access is registered.
  • hostcommon.Host object with initiator information.
  • volumecommon.Volume object with volume information.
  • is_new_sg – flag indicating whether the storage_group is newly created or not.
assure_storage_group(host)

Assures that the storage group with name of host exists.

If the storage group doesn’t exist, create a one.

auto_register_initiator(storage_group, host)

Registers the initiators to storage group.

Parameters:
  • storage_group – storage group object to which the initiator is registered.
  • host – information of initiator, etc.

The behavior depends on the combination of the registered initiators of SG and the configured white list of the ports (that is self.config.io_port_list).

  1. Register all non-registered initiators to self.allowed_ports.

2. For registered initiators, if the white list is configured, register them to self.allowed_ports except the ones which are already registered. Note that self.allowed_ports comprises of all iSCSI/FC ports on array or the valid ports of the white list if self.config.io_port_list is configured.

build_host(connector)
build_mirror_view(configuration, failover=True)

Builds a mirror view operation class.

Parameters:
  • configuration – driver configuration
  • failover – True if from primary to configured array,

False if from configured array to primary.

build_terminate_connection_return_data(host, sg)
cleanup_lun_replication(volume)
create_cg_from_cgsnapshot(context, group, volumes, cgsnapshot, snapshots)
create_cgsnapshot(context, cgsnapshot, snapshots)

Creates a CG snapshot(snap group).

create_cloned_cg(context, group, volumes, source_cg, source_vols)
create_cloned_volume(volume, src_vref)

Creates a clone of the specified volume.

create_consistencygroup(context, group)
create_export_snapshot(context, snapshot, connector)
create_snapshot(snapshot)

Creates a snapshot.

create_volume(volume)

Creates a EMC volume.

create_volume_from_snapshot(volume, snapshot)

Constructs a work flow to create a volume from snapshot.

Parameters:
  • volume – new volume
  • snapshot – base snapshot

This flow will do the following:

  1. Create a snap mount point (SMP) for the snapshot.
  2. Attach the snapshot to the SMP created in the first step.
  3. Create a temporary lun prepare for migration. (Skipped if snapcopy=’true’)
  4. Start a migration between the SMP and the temp lun. (Skipped if snapcopy=’true’)
delete_cgsnapshot(context, cgsnapshot, snapshots)

Deletes a CG snapshot(snap group).

delete_consistencygroup(context, group, volumes)

Deletes a consistency group.

delete_snapshot(snapshot)

Deletes a snapshot.

delete_volume(volume)

Deletes an EMC volume.

do_setup()
extend_volume(volume, new_size)

Extends an EMC volume.

failover_host(context, volumes, secondary_backend_id)

Fails over the volume back and forth.

Driver needs to update following info for failed-over volume: 1. provider_location: update serial number and lun id 2. replication_status: new status for replication-enabled volume

get_enabler_stats()
get_pool_name(volume)
get_pool_stats(enabler_stats=None)
initialize_connection(cinder_volume, connector)

Initializes the connection to cinder_volume.

initialize_connection_snapshot(snapshot, connector, **kwargs)

Initializes connection for snapshot mount point.

manage_existing(volume, existing_ref)

Imports the existing backend storage object as a volume.

manage_existing_ref:{
‘source-id’:<lun id in VNX>

} or manage_existing_ref:{

‘source-name’:<lun name in VNX>

}

When the volume has a volume_type, the driver inspects that and compare against the properties of the referenced backend storage object. If they are incompatible, raise a ManageExistingVolumeTypeMismatch exception.

manage_existing_get_size(volume, existing_ref)

Returns size of volume to be managed by manage_existing.

migrate_volume(context, volume, host)

Leverage the VNX on-array migration functionality.

This method is invoked at the source backend.

parse_pools()
prepare_target_data(storage_group, host, volume, hlu)
remove_export_snapshot(context, snapshot)
remove_host_access(volume, host, sg)

Removes the host access from volume.

Parameters:
  • volumecommon.Volume object with volume information.
  • hostcommon.Host object with host information.
  • sg – object of storops storage group.
retype(ctxt, volume, new_type, diff, host)

Changes volume from one type to another.

set_extra_spec_defaults()
setup_lun_replication(volume, primary_lun_id)

Setup replication for LUN, this only happens in primary system.

terminate_connection(cinder_volume, connector)

Terminates the connection to cinder_volume.

terminate_connection_cleanup(host, sg)
terminate_connection_snapshot(snapshot, connector, **kwargs)

Terminates connection for snapshot mount point.

unmanage(volume)

Unmanages a volume.

update_consistencygroup(context, group, add_volumes, remove_volumes)
update_migrated_volume(context, volume, new_volume, original_volume_status=None)

Updates metadata after host-assisted migration.

update_storage_group_if_required(sg)
update_volume_stats()
validate_backend_id(backend_id)
validate_ports(all_ports, ports_whitelist)
class FCAdapter(configuration, active_backend_id)

Bases: cinder.volume.drivers.emc.vnx.adapter.CommonAdapter

build_host(connector)
build_terminate_connection_return_data(host, sg)
do_setup()
prepare_target_data(storage_group, host, volume, hlu)

Prepares the target data for Nova.

Parameters:
  • storage_group – object of storops storage group.
  • hostcommon.Host object with initiator information.
  • volumecommon.Volume object with volume information.
  • hlu – the HLU number assigned to volume.
update_storage_group_if_required(sg)
update_volume_stats()

Retrieves stats info.

class ISCSIAdapter(configuration, active_backend_id)

Bases: cinder.volume.drivers.emc.vnx.adapter.CommonAdapter

arrange_io_ports(reg_port_white_list, iscsi_initiator_ips)

Arranges IO ports.

Arranges the registered IO ports and puts a pingable port in the first place as the main portal.

build_host(connector)
build_terminate_connection_return_data(host, sg)
do_setup()
prepare_target_data(storage_group, host, volume, hlu)

Prepares the target data for Nova.

Parameters:
  • storage_group – object of storops storage group.
  • hostcommon.Host object with initiator information.
  • volumecommon.Volume object with volume information.
  • hlu – the HLU number assigned to volume.
update_volume_stats()

Retrieves stats info.

Previous topic

The cinder.volume.drivers.emc.scaleio Module

Next topic

The cinder.volume.drivers.emc.vnx.client Module

Project Source

This Page