The cinder.volume.drivers.dell_emc.xtremio Module

Driver for Dell EMC XtremIO Storage. supported XtremIO version 2.4 and up

1.0.0 - initial release
1.0.1 - enable volume extend
1.0.2 - added FC support, improved error handling
1.0.3 - update logging level, add translation
1.0.4 - support for FC zones
1.0.5 - add support for XtremIO 4.0
1.0.6 - add support for iSCSI multipath, CA validation, consistency groups,
        R/O snapshots, CHAP discovery authentication
1.0.7 - cache glance images on the array
1.0.8 - support for volume retype, CG fixes
class XtremIOClient(configuration, cluster_id)

Bases: object

add_vol_to_cg(vol_id, cg_id)
create_snapshot(src, dest, ro=False)

Create a snapshot of a volume on the array.

XtreamIO array snapshots are also volumes.

Src:name of the source volume to be cloned
Dest:name for the new snapshot
Ro:new snapshot type ro/regular. only applicable to Client4
get_base_url(ver)
get_cluster()
get_extra_capabilities()
get_initiator(port_address)
handle_errors(response, key, object_type)
req(*args, **kwargs)
update_data(data, cluster_id)
update_url(data, cluster_id)
class XtremIOClient3(configuration, cluster_id)

Bases: cinder.volume.drivers.dell_emc.xtremio.XtremIOClient

create_snapshot(src, dest, ro=False)
find_lunmap(ig_name, vol_name)
get_initiator(port_address)
get_iscsi_portals()
num_of_mapped_volumes(initiator)
class XtremIOClient4(configuration, cluster_id)

Bases: cinder.volume.drivers.dell_emc.xtremio.XtremIOClient

add_vol_to_cg(vol_id, cg_id)
create_snapshot(src, dest, ro=False)
find_lunmap(ig_name, vol_name)
get_cluster()
get_extra_capabilities()
get_initiator(port_address)
get_iscsi_portals()
num_of_mapped_volumes(initiator)
req(object_type='volumes', method='GET', data=None, name=None, idx=None, ver='v2')
update_data(data, cluster_id)
update_url(data, cluster_id)
class XtremIOFCDriver(*args, **kwargs)

Bases: cinder.volume.drivers.dell_emc.xtremio.XtremIOVolumeDriver, cinder.volume.driver.FibreChannelDriver

get_targets()
initialize_connection(*args, **kwargs)
terminate_connection(*args, **kwargs)
class XtremIOISCSIDriver(*args, **kwargs)

Bases: cinder.volume.drivers.dell_emc.xtremio.XtremIOVolumeDriver, cinder.volume.driver.ISCSIDriver

Executes commands relating to ISCSI volumes.

We make use of model provider properties as follows:

provider_location
if present, contains the iSCSI target information in the same format as an ietadm discovery i.e. ‘<ip>:<port>,<portal> <target IQN>’
provider_auth
if present, contains a space-separated triple: ‘<auth method> <auth username> <auth password>’. CHAP is the only auth_method in use at the moment.
driver_name = 'XtremIO_ISCSI'
initialize_connection(volume, connector)
class XtremIOVolumeDriver(*args, **kwargs)

Bases: cinder.volume.drivers.san.san.SanDriver

Executes commands relating to Volumes.

CI_WIKI_NAME = 'EMC_XIO_CI'
MIN_XMS_VERSION = [3, 0, 0]
VERSION = '1.0.8'
check_for_export(context, volume_id)

Make sure volume is exported.

check_for_setup_error()
create_cgsnapshot(context, cgsnapshot, snapshots)

Creates a cgsnapshot.

create_cloned_volume(volume, src_vref)

Creates a clone of the specified volume.

create_consistencygroup(context, group)

Creates a consistency group.

Parameters:
  • context – the context
  • group – the group object to be created
Returns:

dict – modelUpdate = {‘status’: ‘available’}

Raises:

VolumeBackendAPIException

create_consistencygroup_from_src(context, group, volumes, cgsnapshot=None, snapshots=None, source_cg=None, source_vols=None)

Creates a consistencygroup from source.

Parameters:
  • context – the context of the caller.
  • group – the dictionary of the consistency group to be created.
  • volumes – a list of volume dictionaries in the group.
  • cgsnapshot – the dictionary of the cgsnapshot as source.
  • snapshots – a list of snapshot dictionaries in the cgsnapshot.
  • source_cg – the dictionary of a consistency group as source.
  • source_vols – a list of volume dictionaries in the source_cg.
Returns:

model_update, volumes_model_update

create_group(context, group)

Creates a group.

Parameters:
  • context – the context of the caller.
  • group – the group object.
Returns:

model_update

create_group_from_src(context, group, volumes, group_snapshot=None, snapshots=None, source_group=None, source_vols=None)

Creates a group from source.

Parameters:
  • context – the context of the caller.
  • group – the Group object to be created.
  • volumes – a list of Volume objects in the group.
  • group_snapshot – the GroupSnapshot object as source.
  • snapshots – a list of snapshot objects in group_snapshot.
  • source_group – the Group object as source.
  • source_vols – a list of volume objects in the source_group.
Returns:

model_update, volumes_model_update

create_group_snapshot(context, group_snapshot, snapshots)

Creates a group_snapshot.

Parameters:
  • context – the context of the caller.
  • group_snapshot – the GroupSnapshot object to be created.
  • snapshots – a list of Snapshot objects in the group_snapshot.
Returns:

model_update, snapshots_model_update

create_lun_map(volume, ig, lun_num=None)
create_snapshot(snapshot)

Creates a snapshot.

create_volume(volume)

Creates a volume.

create_volume_from_snapshot(volume, snapshot)

Creates a volume from a snapshot.

delete_cgsnapshot(context, cgsnapshot, snapshots)

Deletes a cgsnapshot.

delete_consistencygroup(context, group, volumes)

Deletes a consistency group.

delete_group(context, group, volumes)

Deletes a group.

Parameters:
  • context – the context of the caller.
  • group – the group object.
  • volumes – a list of volume objects in the group.
Returns:

model_update, volumes_model_update

delete_group_snapshot(context, group_snapshot, snapshots)

Deletes a group_snapshot.

Parameters:
  • context – the context of the caller.
  • group_snapshot – the GroupSnapshot object to be deleted.
  • snapshots – a list of snapshot objects in the group_snapshot.
Returns:

model_update, snapshots_model_update

delete_snapshot(snapshot)

Deletes a snapshot.

delete_volume(volume)

Deletes a volume.

driver_name = 'XtremIO'
extend_volume(volume, new_size)

Extend an existing volume’s size.

get_volume_stats(refresh=False)

Get volume stats.

If ‘refresh’ is True, run update the stats first.

manage_existing(volume, existing_ref, is_snapshot=False)

Manages an existing LV.

manage_existing_get_size(volume, existing_ref, is_snapshot=False)

Return size of an existing LV for manage_existing.

manage_existing_snapshot(snapshot, existing_ref)
manage_existing_snapshot_get_size(snapshot, existing_ref)
terminate_connection(volume, connector, **kwargs)

Disallow connection from connector

unmanage(volume, is_snapshot=False)

Removes the specified volume from Cinder management.

unmanage_snapshot(snapshot)
update_consistencygroup(context, group, add_volumes=None, remove_volumes=None)

Updates a consistency group.

Parameters:
  • context – the context of the caller.
  • group – the dictionary of the consistency group to be updated.
  • add_volumes – a list of volume dictionaries to be added.
  • remove_volumes – a list of volume dictionaries to be removed.
Returns:

model_update, add_volumes_update, remove_volumes_update

update_group(context, group, add_volumes=None, remove_volumes=None)

Updates a group.

Parameters:
  • context – the context of the caller.
  • group – the group object.
  • add_volumes – a list of volume objects to be added.
  • remove_volumes – a list of volume objects to be removed.
Returns:

model_update, add_volumes_update, remove_volumes_update

update_migrated_volume(ctxt, volume, new_volume, original_volume_status)