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;
- Same LeftHand backend
- Volume cannot be attached
- Volumes with snapshots cannot be migrated
- 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.