The cinder.volume.drivers.infortrend.infortrend_iscsi_cli Module

iSCSI Driver for Infortrend Eonstor based on CLI.

class InfortrendCLIISCSIDriver(*args, **kwargs)

Bases: cinder.volume.driver.ISCSIDriver

Infortrend iSCSI Driver for Eonstor DS using CLI.

Version history:
1.0.0 - Initial driver 1.0.1 - Support DS4000 1.0.2 - Support GS Series
CI_WIKI_NAME = ‘Infortrend_Storage_CI’
SUPPORTED = False
VERSION = ‘1.0.2’
check_for_setup_error()
create_cloned_volume(volume, src_vref)

Creates a clone of the specified volume.

create_export(context, volume, connector)

Exports the volume.

Can optionally return a Dictionary of changes to the volume object to be persisted.

create_snapshot(snapshot)

Creates a snapshot.

create_volume(volume)

Creates a volume.

Can optionally return a Dictionary of changes to the volume object to be persisted.

create_volume_from_snapshot(volume, snapshot)

Creates a volume from a snapshot.

delete_snapshot(snapshot)

Deletes a snapshot.

delete_volume(volume)

Deletes a volume.

ensure_export(context, volume)

Synchronously recreates an export for a volume.

extend_volume(volume, new_size)

Extend a volume.

get_volume_stats(refresh=False)

Get volume stats.

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

initialize_connection(volume, connector)

Initializes the connection and returns connection information.

The iscsi driver returns a driver_volume_type of ‘iscsi’. The format of the driver data is defined in _get_iscsi_properties. Example return value:

{
    'driver_volume_type': 'iscsi'
    'data': {
        'target_discovered': True,
        'target_iqn': 'iqn.2010-10.org.openstack:volume-00000001',
        'target_portal': '127.0.0.0.1:3260',
        'volume_id': 1,
    }
}
manage_existing(volume, existing_ref)

Manage an existing lun in the array.

The lun should be in a manageable pool backend, otherwise error would return. Rename the backend storage object so that it matches the, volume[‘name’] which is how drivers traditionally map between a cinder volume and the associated backend storage object.

existing_ref:{
    'id':lun_id
}
manage_existing_get_size(volume, existing_ref)

Return size of volume to be managed by manage_existing.

When calculating the size, round up to the next GB.

migrate_volume(ctxt, volume, host)

Migrate the volume to the specified host.

Returns a boolean indicating whether the migration occurred, as well as model_update.

Parameters:
  • ctxt – Context
  • volume – A dictionary describing the volume to migrate
  • host – A dictionary describing the host to migrate to, where host[‘host’] is its name, and host[‘capabilities’] is a dictionary of its reported capabilities.
remove_export(context, volume)

Removes an export for a volume.

retype(ctxt, volume, new_type, diff, host)

Convert the volume to be of the new type.

Parameters:
  • ctxt – Context
  • volume – A dictionary describing the volume to migrate
  • new_type – A dictionary describing the volume type to convert to
  • diff – A dictionary with the difference between the two types
  • host – A dictionary describing the host to migrate to, where host[‘host’] is its name, and host[‘capabilities’] is a dictionary of its reported capabilities.
terminate_connection(volume, connector, **kwargs)

Disallow connection from connector.

unmanage(volume)

Removes the specified volume from Cinder management.

Does not delete the underlying backend storage object.

Parameters:volume – Cinder volume to unmanage
update_migrated_volume(ctxt, volume, new_volume, original_volume_status)

Return model update for migrated volume.

Parameters:
  • volume – The original volume that was migrated to this backend
  • new_volume – The migration volume object that was created on this backend as part of the migration process
  • original_volume_status – The status of the original volume
Returns:

model_update to update DB with any needed changes