The cinder.volume.drivers.netapp.eseries.library Module

The cinder.volume.drivers.netapp.eseries.library Module

class NetAppESeriesLibrary(*args, **kwargs)

Bases: object

Executes commands relating to Volumes.

AUTOSUPPORT_INTERVAL_SECONDS = 3600
DA_UQ_SPEC = 'netapp_eseries_data_assurance'
DEFAULT_CHAP_USER_NAME = 'eserieschapuser'
DEFAULT_HOST_TYPE = 'linux_dm_mp'
DISK_TYPE_UQ_SPEC = 'netapp_disk_type'
DRIVER_NAME = 'NetApp_iSCSI_ESeries'
ENCRYPTION_UQ_SPEC = 'netapp_disk_encryption'
FLASH_CACHE_UQ_SPEC = 'netapp_eseries_flash_read_cache'
HOST_TYPES = {'windows_clustered': 'W2KNETCL', 'linux_pathmanager': 'LnxTPGSALUA_PM', 'windows_atto': 'WinTPGSALUA', 'ontap': 'ONTAP_ALUA', 'linux_mpp_rdac': 'LNX', 'vmware': 'VmwTPGSALUA', 'windows': 'W2KNETNCL', 'linux_atto': 'LnxTPGSALUA', 'linux_sf': 'LnxTPGSALUA_SF', 'linux_dm_mp': 'LnxALUA', 'ontap_rdac': 'ONTAP_RDAC', 'factoryDefault': 'FactoryDefault'}
MAX_SNAPSHOT_COUNT = 32
MAX_SNAPSHOT_GROUP_COUNT = 4
RAID_UQ_SPEC = 'netapp_raid_type'
READ_CACHE_Q_SPEC = 'netapp:read_cache'
REQUIRED_FLAGS = ['netapp_server_hostname', 'netapp_controller_ips', 'netapp_login', 'netapp_password']
RESERVED_SNAPSHOT_GROUP_COUNT = 1
SA_COMM_TIMEOUT = 30
SLEEP_SECS = 5
SNAPSHOT_PERSISTENT_STORE_KEY = 'cinder-snapshots'
SNAPSHOT_PERSISTENT_STORE_LOCK = '0a6ffa1e-0dc1-4ed8-be42-955490e51ceb'
SNAPSHOT_VOL_COPY_SUFFIX = 'SGCV'
SNAPSHOT_VOL_DEL_SUFFIX = '_DEL'
SPINDLE_SPD_UQ_SPEC = 'netapp_eseries_disk_spindle_speed'
SSC_DISK_TYPE_MAPPING = {'sas': 'SAS', 'fibre': 'FCAL', 'scsi': 'SCSI', 'ssd': 'SSD', 'sata': 'SATA'}
SSC_RAID_TYPE_MAPPING = {'raidDiskPool': 'DDP', 'raid5': 'raid5', 'raid6': 'raid6', 'raid1': 'raid1', 'raid0': 'raid0', 'raid3': 'raid5'}
SSC_UPDATE_INTERVAL = 60
THIN_UQ_SPEC = 'netapp_thin_provisioned'
VERSION = '1.0.0'
WORLDWIDENAME = 'worldWideName'
WRITE_CACHE_Q_SPEC = 'netapp:write_cache'
check_for_setup_error(*args, **kwargs)
create_cgsnapshot(*args, **kwargs)

Creates a cgsnapshot.

create_cloned_volume(*args, **kwargs)

Creates a clone of the specified volume.

create_consistencygroup(*args, **kwargs)

Define a consistency group.

create_consistencygroup_from_src(*args, **kwargs)

Define a consistency group based on an existing group

Define a new consistency group from a source consistency group. If only a source_cg is provided, then clone each base volume and add it to a new consistency group. If a cgsnapshot is provided, clone each snapshot image to a new volume and add it to the cg.

Parameters:
  • group – The new consistency group to define
  • volumes – The volumes to add to the consistency group
  • cgsnapshot – The cgsnapshot to base the group on
  • snapshots – The list of snapshots on the source cg
  • source_cg – The source consistency group
  • source_vols – The volumes added to the source cg
create_export(*args, **kwargs)

Exports the volume.

create_snapshot(*args, **kwargs)

Creates a snapshot.

Parameters:
  • snapshot – The Cinder snapshot
  • group_name – An optional label for the snapshot group
Returns:

An E-Series snapshot image

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)

Delete a snapshot.

delete_volume(*args, **kwargs)

Deletes a volume.

do_setup(*args, **kwargs)

Any initialization the volume driver does while starting.

ensure_export(*args, **kwargs)

Synchronously recreates an export for a volume.

extend_volume(*args, **kwargs)

Extend an existing volume to the new size.

get_pool(*args, **kwargs)

Return pool name where volume resides.

Parameters:volume – The volume hosted by the driver.
Returns:Name of the pool where given volume is hosted.
get_volume_stats(*args, **kwargs)

Return the current state of the volume service.

initialize_connection_fc(*args, **kwargs)

Initializes the connection and returns connection info.

Assigns the specified volume to a compute node/host so that it can be used from that host.

The driver returns a driver_volume_type of ‘fibre_channel’. The target_wwn can be a single entry or a list of wwns that correspond to the list of remote wwn(s) that will export the volume. Example return values:

{
    'driver_volume_type': 'fibre_channel'
    'data': {
        'target_discovered': True,
        'target_lun': 1,
        'target_wwn': '500a098280feeba5',
        'initiator_target_map': {
            '21000024ff406cc3': ['500a098280feeba5'],
            '21000024ff406cc2': ['500a098280feeba5']
        }
    }
}

or

 {
    'driver_volume_type': 'fibre_channel'
    'data': {
        'target_discovered': True,
        'target_lun': 1,
        'target_wwn': ['500a098280feeba5', '500a098290feeba5',
                       '500a098190feeba5', '500a098180feeba5'],
        'initiator_target_map': {
            '21000024ff406cc3': ['500a098280feeba5',
                                 '500a098290feeba5'],
            '21000024ff406cc2': ['500a098190feeba5',
                                 '500a098180feeba5']
        }
    }
}
initialize_connection_iscsi(*args, **kwargs)

Allow connection to connector and return connection info.

manage_existing(*args, **kwargs)

Brings an existing storage object under Cinder management.

manage_existing_get_size(*args, **kwargs)

Return size of volume to be managed by manage_existing.

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

map_volume_to_host(*args, **kwargs)

Ensures the specified initiator has access to the volume.

remove_export(*args, **kwargs)

Removes an export for a volume.

terminate_connection_fc(*args, **kwargs)

Disallow connection from connector.

Return empty data if other volumes are in the same zone. The FibreChannel ZoneManager doesn’t remove zones if there isn’t an initiator_target_map in the return of terminate_connection.

Returns:data - the target_wwns and initiator_target_map if the zone is to be removed, otherwise the same map with an empty dict for the ‘data’ key
terminate_connection_iscsi(*args, **kwargs)

Disallow connection from connector.

unmanage(*args, **kwargs)

Removes the specified volume from Cinder management.

Does not delete the underlying backend storage object. Logs a message to indicate the volume is no longer under Cinder’s control.

update_consistencygroup(*args, **kwargs)

Add or remove volumes from an existing consistency group

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.