The cinder.volume.drivers.pure Module

Volume driver for Pure Storage FlashArray storage system.

This driver requires Purity version 4.0.0 or later.

class PureBaseVolumeDriver(*args, **kwargs)

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

Performs volume management on Pure Storage FlashArray.

CI_WIKI_NAME = 'Pure_Storage_CI'
SUPPORTED_REST_API_VERSIONS = ['1.2', '1.3', '1.4', '1.5']
check_for_setup_error()
create_cgsnapshot(*args, **kwargs)

Creates a cgsnapshot.

create_cloned_volume(*args, **kwargs)

Creates a clone of the specified volume.

create_consistencygroup(*args, **kwargs)

Creates a consistencygroup.

create_consistencygroup_from_src(*args, **kwargs)
create_export(context, volume, connector)
create_snapshot(*args, **kwargs)

Creates a snapshot.

create_volume(*args, **kwargs)

Creates a volume.

create_volume_from_snapshot(*args, **kwargs)

Creates a volume from a snapshot.

delete_cgsnapshot(*args, **kwargs)

Deletes a cgsnapshot.

delete_consistencygroup(*args, **kwargs)

Deletes a consistency group.

delete_snapshot(*args, **kwargs)

Deletes a snapshot.

delete_volume(*args, **kwargs)

Disconnect all hosts and delete the volume

do_setup(context)

Performs driver initialization steps that could raise exceptions.

do_setup_replication()
ensure_export(context, volume)
extend_volume(*args, **kwargs)

Extend volume to new_size.

failover_host(*args, **kwargs)

Failover backend to a secondary array

This action will not affect the original volumes in any way and it will stay as is. If a subsequent failover is performed we will simply overwrite the original (now unmanaged) volumes.

get_manageable_snapshots(cinder_snapshots, marker, limit, offset, sort_keys, sort_dirs)

List snapshots on the backend available for management by Cinder.

get_manageable_volumes(cinder_volumes, marker, limit, offset, sort_keys, sort_dirs)

List volumes on the backend available for management by Cinder.

Rule out volumes that are attached to a Purity host or that are already in the list of cinder_volumes. We return references of the volume names for any others.

get_volume_stats(*args, **kwargs)

Return the current state of the volume service.

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

initialize_connection(volume, connector)

Connect the volume to the specified initiator in Purity.

This implementation is specific to the host type (iSCSI, FC, etc).

manage_existing(*args, **kwargs)

Brings an existing backend storage object under Cinder management.

We expect a volume name in the existing_ref that matches one in Purity.

manage_existing_get_size(*args, **kwargs)

Return size of volume to be managed by manage_existing.

We expect a volume name in the existing_ref that matches one in Purity.

manage_existing_snapshot(snapshot, existing_ref)

Brings an existing backend storage object under Cinder management.

We expect a snapshot name in the existing_ref that matches one in Purity.

manage_existing_snapshot_get_size(snapshot, existing_ref)

Return size of snapshot to be managed by manage_existing.

We expect a snapshot name in the existing_ref that matches one in Purity.

parse_replication_configs()
retype(context, volume, new_type, diff, host)

Retype from one volume type to another on the same backend.

For a Pure Array there is currently no differentiation between types of volumes other than some being part of a protection group to be replicated.

terminate_connection(*args, **kwargs)

Terminate connection.

unmanage(*args, **kwargs)

Removes the specified volume from Cinder management.

Does not delete the underlying backend storage object.

The volume will be renamed with “-unmanaged” as a suffix

unmanage_snapshot(snapshot)

Removes the specified snapshot from Cinder management.

Does not delete the underlying backend storage object.

We expect a snapshot name in the existing_ref that matches one in Purity.

update_consistencygroup(*args, **kwargs)
class PureFCDriver(*args, **kwargs)

Bases: cinder.volume.drivers.pure.PureBaseVolumeDriver, cinder.volume.driver.FibreChannelDriver

VERSION = '3.0.0'
initialize_connection(*args, **kwargs)
terminate_connection(*args, **kwargs)
class PureISCSIDriver(*args, **kwargs)

Bases: cinder.volume.drivers.pure.PureBaseVolumeDriver, cinder.volume.drivers.san.san.SanISCSIDriver

VERSION = '5.0.0'
initialize_connection(*args, **kwargs)

Allow connection to connector and return connection info.

pure_driver_debug_trace(f)

Log the method entrance and exit including active backend name.

This should only be used on VolumeDriver class methods. It depends on having a ‘self’ argument that is a PureBaseVolumeDriver.

Previous topic

The cinder.volume.drivers.prophetstor.options Module

Next topic

The cinder.volume.drivers.quobyte Module

Project Source

This Page