The cinder.volume.drivers.nimble Module

Volume driver for Nimble Storage.

This driver supports Nimble Storage controller CS-Series and Nimble AF Arrays.

exception NimbleAPIException(message=None, **kwargs)

Bases: cinder.exception.VolumeBackendAPIException

message = u'Unexpected response from Nimble API'
class NimbleBaseVolumeDriver(*args, **kwargs)

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

OpenStack driver to enable Nimble Controller.

Version history:

1.0 - Initial driver
1.1.1 - Updated VERSION to Nimble driver version
1.1.2 - Update snap-quota to unlimited
2.0.0 - Added Extra Spec Capability
        Correct capacity reporting
        Added Manage/Unmanage volume support
2.0.1 - Added multi-initiator support through extra-specs
2.0.2 - Fixed supporting extra specs while cloning vols
3.0.0 - Newton Support for Force Backup
3.1.0 - Fibre Channel Support
4.0.0 - Migrate from SOAP to REST API
        Add support for Group Scoped Target
4.0.1 - Add QoS and dedupe support
CI_WIKI_NAME = 'Nimble_Storage_CI'
VERSION = '4.0.1'
create_cloned_volume(volume, src_vref)

Create a clone of the specified volume.

create_export(context, volume, connector)

Driver entry point to get the export info for a new volume.

create_snapshot(snapshot)

Create a snapshot.

create_volume(volume)

Create a new volume.

create_volume_from_snapshot(volume, snapshot)

Create a volume from a snapshot.

delete_snapshot(snapshot)

Delete a snapshot.

delete_volume(volume)

Delete the specified volume.

do_setup(context)

Setup the Nimble Cinder volume driver.

ensure_export(context, volume)

Driver entry point to get the export info for an existing volume.

extend_volume(volume, new_size)

Extend an existing volume.

get_lun_number(volume, initiator_group_name)
get_volume_stats(refresh=False)

Get volume stats. This is more of getting group stats.

is_volume_backup_clone(volume)

check if the volume is created through cinder-backup workflow.

:param volume

manage_existing(volume, external_ref)

Manage an existing nimble volume (import to cinder)

manage_existing_get_size(volume, external_ref)

Return size of an existing volume

unmanage(volume)

Removes the specified volume from Cinder management.

exception NimbleDriverException(message=None, **kwargs)

Bases: cinder.exception.VolumeDriverException

message = u'Nimble Cinder Driver exception'
class NimbleFCDriver(*args, **kwargs)

Bases: cinder.volume.drivers.nimble.NimbleBaseVolumeDriver, cinder.volume.driver.FibreChannelDriver

OpenStack driver to enable Nimble FC Driver Controller.

get_wwpns_from_array(array_name)

Retrieve the wwpns from the array

initialize_connection(*args, **kwargs)
terminate_connection(*args, **kwargs)
class NimbleISCSIDriver(*args, **kwargs)

Bases: cinder.volume.drivers.nimble.NimbleBaseVolumeDriver, cinder.volume.drivers.san.san.SanISCSIDriver

OpenStack driver to enable Nimble ISCSI Controller.

initialize_connection(volume, connector)

Driver entry point to attach a volume to an instance.

terminate_connection(volume, connector, **kwargs)

Driver entry point to unattach a volume from an instance.

class NimbleRestAPIExecutor(api_version=1, *args, **kwargs)

Bases: object

Makes Nimble REST API calls.

add_acl(volume, initiator_group_name)
add_initiator_to_igroup(initiator_grp_name, initiator_name)
add_initiator_to_igroup_fc(initiator_grp_name, wwpn)
clone_vol(volume, snapshot, reserve, is_gst_enabled, protocol, pool_name)
create_initiator_group(initiator_grp_name)
create_initiator_group_fc(initiator_grp_name)
create_vol(volume, pool_name, reserve, protocol, is_gst_enabled)
delete(*args, **kwargs)
delete_snap(volume_name, snap_name)
delete_vol(volume_name)
edit_vol(volume_name, data)
enable_group_scoped_target()
get(*args, **kwargs)
get_acl_record(volume_id, initiator_group_id)
get_fc_interface_list(array_name)

getFibreChannelInterfaceList API to get FC interfaces on array.

get_folder_id(folder_name)
get_folder_info(folder_name)
get_group_id()
get_group_info()
get_initiator_grp_id(initiator_grp_name)
get_initiator_grp_id_by_name(initiator_group_name)
get_initiator_grp_list()
get_netconfig(role)
get_performance_policy_id(perf_policy_name)
get_pool_id(pool_name)
get_pool_info(pool_id)
get_query(*args, **kwargs)
get_snap_info(snap_name, vol_name)
get_snap_info_by_id(snap_id, vol_id)
get_snap_info_detail(snap_id)
get_vol_info(*args, **kwargs)
get_volume_id_by_name(name)
get_volume_name(volume_id)
login()
online_snap(volume_name, online_flag, snap_name)
online_vol(*args, **kwargs)
post(*args, **kwargs)
put(*args, **kwargs)
remove_acl(volume, initiator_group_name)
snap_vol(snapshot)