The cinder.volume.drivers.dell_emc.vmax.rest
Module¶
-
class
VMAXRest
¶ Bases:
object
Rest class based on Unisphere for VMAX Rest API.
-
add_child_sg_to_parent_sg
(array, child_sg, parent_sg, extra_specs)¶ Add a storage group to a parent storage group.
This method adds an existing storage group to another storage group, i.e. cascaded storage groups. :param array: the array serial number :param child_sg: the name of the child sg :param parent_sg: the name of the parent sg :param extra_specs: the extra specifications
-
add_vol_to_sg
(array, storagegroup_name, device_id, extra_specs)¶ Add a volume to a storage group.
Parameters: - array – the array serial number
- storagegroup_name – storage group name
- device_id – the device id
- extra_specs – extra specifications
-
static
check_status_code_success
(operation, status_code, message)¶ Check if a status code indicates success.
Parameters: - operation – the operation
- status_code – the status code
- message – the server response
Raises: VolumeBackendAPIException
-
create_initiator_group
(array, init_group_name, init_list, extra_specs)¶ Create a new initiator group containing the given initiators.
Parameters: - array – the array serial number
- init_group_name – the initiator group name
- init_list – the list of initiators
- extra_specs – extra specifications
-
create_masking_view
(array, maskingview_name, storagegroup_name, port_group_name, init_group_name, extra_specs)¶ Create a new masking view.
Parameters: - array – the array serial number
- maskingview_name – the masking view name
- storagegroup_name – the storage group name
- port_group_name – the port group
- init_group_name – the initiator group
- extra_specs – extra specifications
-
create_resource
(array, category, resource_type, payload, private=”)¶ Create a provisioning resource.
Parameters: - array – the array serial number
- category – the category
- resource_type – the resource type
- payload – the payload
- private – empty string or ‘/private’ if private url
Returns: status_code – int, message – string, server response
-
create_storage_group
(array, storagegroup_name, srp, slo, workload, extra_specs)¶ Create the volume in the specified storage group.
Parameters: - array – the array serial number
- storagegroup_name – the group name (String)
- srp – the SRP (String)
- slo – the SLO (String)
- workload – the workload (String)
- extra_specs – additional info
Returns: storagegroup_name - string
-
create_volume_from_sg
(array, volume_name, storagegroup_name, volume_size, extra_specs)¶ Create a new volume in the given storage group.
Parameters: - array – the array serial number
- volume_name – the volume name (String)
- storagegroup_name – the storage group name
- volume_size – volume size (String)
- extra_specs – the extra specifications
Returns: dict – volume_dict - the volume dict
Raises: VolumeBackendAPIException
-
create_volume_snap
(array, snap_name, device_id, extra_specs)¶ Create a snapVx snapshot of a volume.
Parameters: - array – the array serial number
- snap_name – the name of the snapshot
- device_id – the source device id
- extra_specs – the extra specifications
-
delete_initiator_group
(array, initiatorgroup_name)¶ Delete an initiator group.
Parameters: - array – the array serial number
- initiatorgroup_name – initiator group name
-
delete_masking_view
(array, maskingview_name)¶ Delete a masking view.
Parameters: - array – the array serial number
- maskingview_name – the masking view name
-
delete_resource
(array, category, resource_type, resource_name, payload=None, private=”)¶ Delete a provisioning resource.
Parameters: - array – the array serial number
- category – the resource category e.g. sloprovisioning
- resource_type – the type of resource to be deleted
- resource_name – the name of the resource to be deleted
- payload – the payload, optional
- private – empty string or ‘/private’ if private url
-
delete_storage_group
(array, storagegroup_name)¶ Delete a storage group.
Parameters: - array – the array serial number
- storagegroup_name – storage group name
-
delete_volume
(array, device_id)¶ Deallocate and delete a volume.
Parameters: - array – the array serial number
- device_id – volume device id
-
delete_volume_snap
(array, snap_name, source_device_id)¶ Delete the snapshot of a volume.
Parameters: - array – the array serial number
- snap_name – the name of the snapshot
- source_device_id – the source device id
-
extend_volume
(array, device_id, new_size, extra_specs)¶ Extend a VMAX volume.
Parameters: - array – the array serial number
- device_id – volume device id
- new_size – the new required size for the device
- extra_specs – the extra specifications
-
find_mv_connections_for_vol
(array, maskingview, device_id)¶ Find the host_lun_id for a volume in a masking view.
Parameters: - array – the array serial number
- maskingview – the masking view name
- device_id – the device ID
Returns: host_lun_id – int
-
find_snap_vx_sessions
(array, device_id, tgt_only=False)¶ Find all snapVX sessions for a device (source and target).
Parameters: - array – the array serial number
- device_id – the device id
- tgt_only – Flag - return only sessions where device is target
Returns: list of snapshot dicts
-
find_volume_device_id
(array, volume_name)¶ Given a volume identifier, find the corresponding device_id.
Parameters: - array – the array serial number
- volume_name – the volume name (OS-<UUID>)
Returns: device_id
-
find_volume_identifier
(array, device_id)¶ Get the volume identifier of a VMAX volume.
Parameters: - array – array serial number
- device_id – the device id
Returns: the volume identifier – string
-
get_array_serial
(array)¶ Get an array from its serial number.
Parameters: array – the array serial number Returns: array_details – dict or None
-
get_common_masking_views
(array, portgroup_name, ig_name)¶ Get common masking views for a given portgroup and initiator group.
Parameters: - array – the array serial number
- portgroup_name – the port group name
- ig_name – the initiator group name
Returns: masking view list
-
get_element_from_masking_view
(array, maskingview_name, portgroup=False, host=False, storagegroup=False)¶ Return the name of the specified element from a masking view.
Parameters: - array – the array serial number
- maskingview_name – the masking view name
- portgroup – the port group name - optional
- host – the host name - optional
- storagegroup – the storage group name - optional
Returns: name of the specified element – string
Raises: VolumeBackendAPIException
-
get_headroom_capacity
(array, srp, slo, workload)¶ Get capacity of the different slo/ workload combinations.
Parameters: - array – the array serial number
- srp – the storage resource srp
- slo – the service level
- workload – the workload
:return remaining_capacity – string, or None
-
get_in_use_initiator_list_from_array
(array)¶ Get the list of initiators which are in-use from the array.
Gets the list of initiators from the array which are in hosts/ initiator groups. :param array: the array serial number :return: init_list
-
get_initiator
(array, initiator_id)¶ Retrieve initaitor details from the array.
Parameters: - array – the array serial number
- initiator_id – the initiator id
Returns: initiator dict, or None
-
get_initiator_group
(array, initiator_group=None, params=None)¶ Retrieve initiator group details from the array.
Parameters: - array – the array serial number
- initiator_group – the initaitor group name
- params – optional filter parameters
Returns: initiator group dict, or None
-
get_initiator_group_from_initiator
(array, initiator)¶ Given an initiator, get its corresponding initiator group, if any.
Parameters: - array – the array serial number
- initiator – the initiator id
Returns: found_init_group_name – string
-
get_initiator_list
(array, params=None)¶ Retrieve initaitor list from the array.
Parameters: - array – the array serial number
- params – dict of optional params
Returns: list of initiators
-
get_iscsi_ip_address_and_iqn
(array, port_id)¶ Get the IPv4Address from the director port.
Parameters: - array – the array serial number
- port_id – the director port identifier
Returns: (list of ip_addresses, iqn)
-
get_masking_view
(array, masking_view_name)¶ Get details of a masking view.
Parameters: - array – array serial number
- masking_view_name – the masking view name
Returns: masking view dict
-
get_masking_view_list
(array, params)¶ Get a list of masking views from the array.
Parameters: - array – array serial number
- params – optional GET parameters
Returns: masking view list
-
get_masking_views_by_initiator_group
(array, initiatorgroup_name)¶ Given initiator group, retrieve the masking view instance name.
Retrieve the list of masking view instances associated with the given initiator group. :param array: the array serial number :param initiatorgroup_name: the name of the initiator group :returns: list of masking view names
-
get_masking_views_from_storage_group
(array, storagegroup)¶ Return any masking views associated with a storage group.
Parameters: - array – the array serial number
- storagegroup – the storage group name
Returns: masking view list
-
get_num_vols_in_sg
(array, storage_group_name)¶ Get the number of volumes in a storage group.
Parameters: - array – the array serial number
- storage_group_name – the storage group name
Returns: num_vols – int
-
get_port
(array, port_id)¶ Get director port details.
Parameters: - array – the array serial number
- port_id – the port id
Returns: port dict, or None
-
get_port_ids
(array, portgroup)¶ Get a list of port identifiers from a port group.
Parameters: - array – the array serial number
- portgroup – the name of the portgroup
Returns: list of port ids, e.g. [‘FA-3D:35’, ‘FA-4D:32’]
-
get_portgroup
(array, portgroup)¶ Get a portgroup from the array.
Parameters: - array – array serial number
- portgroup – the portgroup name
Returns: portgroup dict or None
-
get_replication_capabilities
(array)¶ Check what replication features are licensed and enabled.
Example return value for this method: {“symmetrixId”: “000197800128”,
“snapVxCapable”: true, “rdfCapable”: true}Param: array Returns: capabilities dict for the given array
-
get_resource
(array, category, resource_type, resource_name=None, params=None, private=”)¶ Get resource details from array.
Parameters: - array – the array serial number
- category – the resource category e.g. sloprovisioning
- resource_type – the resource type e.g. maskingview
- resource_name – the name of a specific resource
- params – query parameters
- private – empty string or ‘/private’ if private url
Returns: resource object – dict or None
-
get_size_of_device_on_array
(array, device_id)¶ Get the size of the volume from the array.
Parameters: - array – the array serial number
- device_id – the volume device id
Returns: size – or None
-
get_slo_list
(array)¶ Returns the list of service levels associated with an srp.
Parameters: array – the array serial number :return slo_list – list of service level names
-
get_snap_linked_device_list
(array, source_device_id, snap_name)¶ Get the list of linked devices for a particular snapVx snapshot.
Parameters: - array – the array serial number
- source_device_id – source device id
- snap_name – the snapshot name
Returns: linked_device_list
-
get_srp_by_name
(array, srp=None)¶ Returns the details of a storage pool.
Parameters: - array – the array serial number
- srp – the storage resource pool name
Returns: SRP_details – dict or None
-
get_storage_group
(array, storage_group_name)¶ Given a name, return storage group details.
Parameters: - array – the array serial number
- storage_group_name – the name of the storage group
Returns: storage group dict or None
-
get_storage_group_list
(array, params=None)¶ “Return a list of storage groups.
Parameters: - array – the array serial number
- params – optional filter parameters
Returns: storage group list
-
get_storage_groups_from_volume
(array, device_id)¶ Returns all the storage groups for a particular volume.
Parameters: - array – the array serial number
- device_id – the volume device id
Returns: storagegroup_list
-
get_target_wwns
(array, portgroup)¶ Get the director ports’ wwns.
Parameters: - array – the array serial number
- portgroup – portgroup
Returns: target_wwns – the list of target wwns for the masking view
-
get_vmax_default_storage_group
(array, srp, slo, workload)¶ Get the default storage group.
Parameters: - array – the array serial number
- srp – the pool name
- slo – the SLO
- workload – the workload
Returns: the storage group dict (or None), the storage group name
-
get_volume
(array, device_id)¶ Get a VMAX volume from array.
Parameters: - array – the array serial number
- device_id – the volume device id
Returns: volume dict
Raises: VolumeBackendAPIException
-
get_volume_list
(array, params)¶ Get a filtered list of VMAX volumes from array.
Filter parameters are required as the unfiltered volume list could be very large and could affect performance if called often. :param array: the array serial number :param params: filter parameters :return: device_ids – list
-
get_volume_snap
(array, device_id, snap_name)¶ Given a volume snap info, retrieve the snapVx object.
Parameters: - array – the array serial number
- device_id – the source volume device id
- snap_name – the name of the snapshot
Returns: snapshot dict, or None
-
get_volume_snap_info
(array, source_device_id)¶ Get snapVx information associated with a volume.
Parameters: - array – the array serial number
- source_device_id – the source volume device ID
Returns: message – dict, or None
-
get_volume_snapshot_list
(array, source_device_id)¶ Get a list of snapshot details for a particular volume.
Parameters: - array – the array serial number
- source_device_id – the osurce device id
Returns: snapshot list or None
-
get_workload_settings
(array)¶ Get valid workload options from array.
Parameters: array – the array serial number Returns: workload_setting – list of workload names
-
is_child_sg_in_parent_sg
(array, child_name, parent_name)¶ Check if a child storage group is a member of a parent group.
Parameters: - array – the array serial number
- child_name – the child sg name
- parent_name – the parent sg name
Returns: bool
-
is_snapvx_licensed
(array)¶ Check if the snapVx feature is licensed and enabled.
Parameters: array – the array serial number Returns: True if licensed and enabled; False otherwise.
-
is_sync_complete
(array, source_device_id, target_device_id, snap_name, extra_specs)¶ Check if a sync session is complete.
Parameters: - array – the array serial number
- source_device_id – source device id
- target_device_id – target device id
- snap_name – snapshot name
- extra_specs – extra specifications
Returns: bool
-
is_vol_in_rep_session
(array, device_id)¶ Check if a volume is in a replication session.
Parameters: - array – the array serial number
- device_id – the device id
Returns: snapvx_tgt – bool, snapvx_src – bool, rdf_grp – list or None
-
is_volume_in_storagegroup
(array, device_id, storagegroup)¶ See if a volume is a member of the given storage group.
Parameters: - array – the array serial number
- device_id – the device id
- storagegroup – the storage group name
Returns: bool
-
modify_resource
(array, category, resource_type, payload, resource_name=None, private=”)¶ Modify a resource.
Parameters: - array – the array serial number
- category – the category
- resource_type – the resource type
- payload – the payload
- resource_name – the resource name
- private – empty string or ‘/private’ if private url
Returns: status_code – int, message – string (server response)
-
modify_storage_group
(array, storagegroup, payload)¶ Modify a storage group (PUT operation).
Parameters: - array – the array serial number
- storagegroup – storage group name
- payload – the request payload
Returns: status_code – int, message – string, server response
-
modify_volume_snap
(array, source_id, target_id, snap_name, extra_specs, link=False, unlink=False)¶ Link or unlink a snapVx to or from a target volume.
Parameters: - array – the array serial number
- source_id – the source device id
- target_id – the target device id
- snap_name – the snapshot name
- extra_specs – extra specifications
- link – Flag to indicate action = Link
- unlink – Flag to indicate action = Unlink
-
remove_child_sg_from_parent_sg
(array, child_sg, parent_sg, extra_specs)¶ Remove a storage group from its parent storage group.
This method removes a child storage group from its parent group. :param array: the array serial number :param child_sg: the name of the child sg :param parent_sg: the name of the parent sg :param extra_specs: the extra specifications
-
remove_vol_from_sg
(*args, **kwargs)¶ Remove a volume from a storage group.
Parameters: - array – the array serial number
- storagegroup_name – storage group name
- device_id – the device id
- extra_specs – the extra specifications
-
rename_volume
(array, device_id, new_name)¶ Rename a volume.
Parameters: - array – the array serial number
- device_id – the volume device id
- new_name – the new name for the volume
-
request
(target_uri, method, params=None, request_object=None)¶ Sends a request (GET, POST, PUT, DELETE) to the target api.
Parameters: - target_uri – target uri (string)
- method – The method (GET, POST, PUT, or DELETE)
- params – Additional URL parameters
- request_object – request payload (dict)
Returns: server response object (dict)
Raises: VolumeBackendAPIException
-
set_rest_credentials
(array_info)¶ Given the array record set the rest server credentials.
Parameters: array_info – record
-
wait_for_job
(operation, status_code, job, extra_specs)¶ Check if call is async, wait for it to complete.
Parameters: - operation – the operation being performed
- status_code – the status code
- job – the job
- extra_specs – the extra specifications
Returns: task – list of dicts detailing tasks in the job
Raises: VolumeBackendAPIException
-
wait_for_job_complete
(job, extra_specs)¶ Given the job wait for it to complete.
Parameters: - job – the job dict
- extra_specs – the extra_specs dict.
- :return rc – int, result – string, status – string,
- task – list of dicts detailing tasks in the job
Raises: VolumeBackendAPIException
-