The cinder.volume.drivers.san.hp.hp_lefthand_rest_proxy Module

HP LeftHand SAN ISCSI REST Proxy.

class HPLeftHandRESTProxy(*args, **kwargs)

Bases: cinder.volume.driver.ISCSIDriver

Executes REST commands relating to HP/LeftHand SAN ISCSI volumes.

Version history:

1.0.0 - Initial REST iSCSI proxy 1.0.1 - Added support for retype 1.0.2 - Added support for volume migrate 1.0.3 - Fixed bug #1285829, HP LeftHand backend assisted migration

should check for snapshots
1.0.4 - Fixed bug #1285925, LeftHand AO volume create performance
improvement
1.0.5 - Fixed bug #1311350, Live-migration of an instance when
attached to a volume was causing an error.

1.0.6 - Removing locks bug #1395953 1.0.7 - Fixed bug #1353137, Server was not removed from the HP

Lefthand backend after the last volume was detached.

1.0.8 - Fixed bug #1418201, A cloned volume fails to attach. 1.0.9 - Adding support for manage/unmanage. 1.0.10 - Add stats for goodness_function and filter_function 1.0.11 - Add over subscription support 1.0.12 - Adds consistency group support 1.0.13 - Added update_migrated_volume #1493546

VERSION = '1.0.13'
check_for_setup_error()

Checks for incorrect LeftHand API being used on backend.

create_cgsnapshot(context, cgsnapshot)

Creates a consistency group snapshot.

create_cloned_volume(volume, src_vref)
create_consistencygroup(context, group)

Creates a consistencygroup.

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

Creates a consistency group from a source

create_export(context, volume, connector)
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)

Deletes a consistency group snapshot.

delete_consistencygroup(context, group)

Deletes a consistency group.

delete_snapshot(snapshot)

Deletes a snapshot.

delete_volume(volume)

Deletes a volume.

device_stats = {}
do_setup(context)

Set up LeftHand client.

ensure_export(context, volume)
extend_volume(volume, new_size)

Extend the size of an existing volume.

get_version_string()
get_volume_stats(refresh=False)

Gets volume stats.

initialize_connection(volume, connector)

Assigns the volume to a server.

Assign any created volume to a compute node/host so that it can be used from that host. HP VSA requires a volume to be assigned to a server.

manage_existing(volume, existing_ref)

Manage an existing LeftHand volume.

existing_ref is a dictionary of the form: {‘source-name’: <name of the virtual volume>}

manage_existing_get_size(volume, existing_ref)

Return size of volume to be managed by manage_existing.

existing_ref is a dictionary of the form: {‘source-name’: <name of the virtual volume>}

migrate_volume(ctxt, volume, host)

Migrate the volume to the specified host.

Backend assisted volume migration will occur if and only if;

  1. Same LeftHand backend
  2. Volume cannot be attached
  3. Volumes with snapshots cannot be migrated
  4. Source and Destination clusters must be in the same management group

Volume re-type is not supported.

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)
retype(ctxt, volume, new_type, diff, host)

Convert the volume to be of the new type.

Returns a boolean indicating whether the retype occurred.

Parameters:
  • ctxt – Context
  • volume – A dictionary describing the volume to retype
  • 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, where host[‘host’] is its name, and host[‘capabilities’] is a dictionary of its reported capabilities.
terminate_connection(volume, connector, **kwargs)

Unassign the volume from the host.

unmanage(volume)

Removes the specified volume from Cinder management.

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

Updates a consistency group.

Because the backend has no concept of volume grouping, cinder will maintain all volume/consistency group relationships. Because of this functionality, there is no need to make any client calls; instead simply returning out of this function allows cinder to properly add/remove volumes from the consistency group.

update_migrated_volume(context, volume, new_volume, original_volume_status)

Rename the new (temp) volume to it’s original name.

This method tries to rename the new volume to it’s original name after the migration has completed.

Previous topic

The cinder.volume.drivers.san.hp.hp_lefthand_iscsi Module

Next topic

The cinder.volume.drivers.san.hp.hp_xp_fc Module

Project Source

This Page