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

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

class CommonAdapter(configuration, active_backend_id)

Bases: cinder.volume.drivers.dell_emc.vnx.replication.ReplicationAdapter

VERSION = None
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_terminate_connection_return_data(host, sg)
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_group(context, group, volumes, source_group, source_vols)

Clones a group

create_cloned_volume(volume, src_vref)

Creates a clone of the specified volume.

create_consistencygroup(context, group)
create_export_snapshot(context, snapshot, connector)
create_group(context, group)
create_group_from_group_snapshot(context, group, volumes, group_snapshot, snapshots)

Creates a group from a group snapshot.

create_group_snapshot(context, group_snapshot, snapshots)

Creates a group_snapshot.

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_group(context, group, volumes)
delete_group_snapshot(context, group_snapshot, snapshots)

Deletes a group snapshot.

delete_snapshot(snapshot)

Deletes a snapshot.

delete_volume(volume)

Deletes an EMC volume.

do_clone_cg(cg_id, cg_host, volumes, source_cg_id, source_vols)
do_create_cg_from_cgsnap(cg_id, cg_host, volumes, cgsnap_id, snapshots)
do_create_cgsnap(group_name, snap_name, snapshots)
do_delete_cgsnap(group_name, snap_name, snap_status, snapshots)
do_setup()
do_update_cg(cg_name, add_volumes, remove_volumes)
extend_volume(volume, new_size)

Extends an EMC 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()
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_group(context, group, add_volumes=None, remove_volumes=None)

Updates a group.

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_ports(all_ports, ports_whitelist)
class FCAdapter(configuration, active_backend_id)

Bases: cinder.volume.drivers.dell_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.dell_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.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.