The cinder.volume.drivers.hitachi.vsp_utils Module

Utility module for Hitachi VSP Driver.

MSG

alias of VSPMsg

class VSPMsg(error_info)

Bases: enum.Enum

messages for Hitachi VSP Driver.

ADD_HBA_WWN_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to assign the WWN. (port: %(port)s, gid: %(gid)s, wwn: %(wwn)s)’, ‘msg_id’: 317, ‘suffix’: ‘W’}
ADD_PAIR_TARGET_FAILED = {‘loglevel’: 40, ‘msg’: ‘Failed to add the pair target.’, ‘msg_id’: 638, ‘suffix’: ‘E’}
CONNECT_VOLUME_FAILED = {‘loglevel’: 40, ‘msg’: ‘Failed to attach the logical device. (LDEV: %(ldev)s, reason: %(reason)s)’, ‘msg_id’: 634, ‘suffix’: ‘E’}
CREATE_HORCM_CONF_FILE_FAILED = {‘loglevel’: 40, ‘msg’: ‘Failed to open a file. (file: %(file)s, ret: %(ret)s, stderr: %(err)s)’, ‘msg_id’: 632, ‘suffix’: ‘E’}
CREATE_HOST_GROUP_FAILED = {‘loglevel’: 30, ‘msg’: ‘A host group could not be added. (port: %(port)s)’, ‘msg_id’: 308, ‘suffix’: ‘W’}
CREATE_ISCSI_TARGET_FAILED = {‘loglevel’: 30, ‘msg’: ‘An iSCSI target could not be added. (port: %(port)s)’, ‘msg_id’: 309, ‘suffix’: ‘W’}
CREATE_LDEV_FAILED = {‘loglevel’: 40, ‘msg’: ‘Failed to add the logical device.’, ‘msg_id’: 636, ‘suffix’: ‘E’}
DELETE_DEVICE_GRP_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to delete the configuration of full copy pair. (P-VOL: %(pvol)s, S-VOL: %(svol)s)’, ‘msg_id’: 327, ‘suffix’: ‘W’}
DELETE_LDEV_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to delete a logical device. (LDEV: %(ldev)s)’, ‘msg_id’: 313, ‘suffix’: ‘W’}
DELETE_SI_PAIR_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to delete full copy pair. (P-VOL: %(pvol)s, S-VOL: %(svol)s)’, ‘msg_id’: 324, ‘suffix’: ‘W’}
DELETE_TARGET_FAILED = {‘loglevel’: 30, ‘msg’: ‘A host group or an iSCSI target could not be deleted. (port: %(port)s, gid: %(id)s)’, ‘msg_id’: 306, ‘suffix’: ‘W’}
DELETE_TI_PAIR_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to delete thin copy pair. (P-VOL: %(pvol)s, S-VOL: %(svol)s)’, ‘msg_id’: 325, ‘suffix’: ‘W’}
DISCARD_ZERO_PAGE_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to perform a zero-page reclamation. (LDEV: %(ldev)s)’, ‘msg_id’: 315, ‘suffix’: ‘W’}
DISCONNECT_VOLUME_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to detach the logical device. (LDEV: %(ldev)s, reason: %(reason)s)’, ‘msg_id’: 329, ‘suffix’: ‘W’}
DRIVER_INITIALIZATION_START = {‘loglevel’: 20, ‘msg’: ‘Initialization of %(driver)s %(version)s started.’, ‘msg_id’: 4, ‘suffix’: ‘I’}
DRIVER_READY_FOR_USE = {‘loglevel’: 20, ‘msg’: ‘The storage backend can be used. (config_group: %(config_group)s)’, ‘msg_id’: 3, ‘suffix’: ‘I’}
HORCM_LOGIN_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to perform user authentication of HORCM. (user: %(user)s)’, ‘msg_id’: 323, ‘suffix’: ‘W’}
HORCM_RESTART_FAILED = {‘loglevel’: 40, ‘msg’: ‘Failed to restart HORCM. (inst: %(inst)s)’, ‘msg_id’: 609, ‘suffix’: ‘E’}
HORCM_RESTART_FOR_SI_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to reload the configuration of full copy pair. (inst: %(inst)s)’, ‘msg_id’: 322, ‘suffix’: ‘W’}
HORCM_SHUTDOWN_FAILED = {‘loglevel’: 40, ‘msg’: ‘Failed to shutdown HORCM. (inst: %(inst)s)’, ‘msg_id’: 608, ‘suffix’: ‘E’}
HORCM_START_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to start HORCM. (inst: %(inst)s)’, ‘msg_id’: 320, ‘suffix’: ‘W’}
INVALID_LDEV_ATTR_FOR_MANAGE = {‘loglevel’: 40, ‘msg’: ‘Failed to manage the specified LDEV (%(ldev)s). The LDEV must be an unpaired %(ldevtype)s.’, ‘msg_id’: 702, ‘suffix’: ‘E’}
INVALID_LDEV_FOR_CONNECTION = {‘loglevel’: 40, ‘msg’: ‘The volume %(volume_id)s to be mapped was not found.’, ‘msg_id’: 619, ‘suffix’: ‘E’}
INVALID_LDEV_FOR_DELETION = {‘loglevel’: 30, ‘msg’: ‘Failed to specify a logical device to be deleted. (method: %(method)s, id: %(id)s)’, ‘msg_id’: 304, ‘suffix’: ‘W’}
INVALID_LDEV_FOR_EXTENSION = {‘loglevel’: 40, ‘msg’: ‘The volume %(volume_id)s to be extended was not found.’, ‘msg_id’: 613, ‘suffix’: ‘E’}
INVALID_LDEV_FOR_MANAGE = {‘loglevel’: 40, ‘msg’: ‘No valid value is specified for “source-id”. A valid LDEV number must be specified in “source-id” to manage the volume.’, ‘msg_id’: 707, ‘suffix’: ‘E’}
INVALID_LDEV_FOR_UNMAPPING = {‘loglevel’: 30, ‘msg’: ‘Failed to specify a logical device for the volume %(volume_id)s to be unmapped.’, ‘msg_id’: 302, ‘suffix’: ‘W’}
INVALID_LDEV_FOR_VOLUME_COPY = {‘loglevel’: 40, ‘msg’: ‘The %(type)s %(id)s source to be replicated was not found.’, ‘msg_id’: 624, ‘suffix’: ‘E’}
INVALID_LDEV_PORT_FOR_MANAGE = {‘loglevel’: 40, ‘msg’: ‘Failed to manage the specified LDEV (%(ldev)s). The LDEV must not be mapped.’, ‘msg_id’: 704, ‘suffix’: ‘E’}
INVALID_LDEV_SIZE_FOR_MANAGE = {‘loglevel’: 40, ‘msg’: ‘Failed to manage the specified LDEV (%(ldev)s). The LDEV size must be expressed in gigabytes.’, ‘msg_id’: 703, ‘suffix’: ‘E’}
INVALID_LDEV_STATUS_FOR_COPY = {‘loglevel’: 40, ‘msg’: ‘The source logical device to be replicated does not exist in the storage system. (LDEV: %(ldev)s)’, ‘msg_id’: 612, ‘suffix’: ‘E’}
INVALID_LDEV_TYPE_FOR_UNMANAGE = {‘loglevel’: 40, ‘msg’: ‘Failed to unmanage the volume %(volume_id)s. The volume type must be %(volume_type)s.’, ‘msg_id’: 706, ‘suffix’: ‘E’}
INVALID_PARAMETER = {‘loglevel’: 40, ‘msg’: ‘A parameter is invalid. (%(param)s)’, ‘msg_id’: 601, ‘suffix’: ‘E’}
INVALID_PARAMETER_VALUE = {‘loglevel’: 40, ‘msg’: ‘A parameter value is invalid. (%(meta)s)’, ‘msg_id’: 602, ‘suffix’: ‘E’}
INVALID_VOLUME_SIZE_FOR_COPY = {‘loglevel’: 40, ‘msg’: ‘Failed to create a volume from a %(type)s. The size of the new volume must be equal to or greater than the size of the original %(type)s. (new volume: %(volume_id)s)’, ‘msg_id’: 617, ‘suffix’: ‘E’}
INVALID_VOLUME_SIZE_FOR_TI = {‘loglevel’: 40, ‘msg’: ‘Failed to create a volume from a %(type)s. The size of the new volume must be equal to the size of the original %(type)s when the new volume is created by %(copy_method)s. (new volume: %(volume_id)s)’, ‘msg_id’: 621, ‘suffix’: ‘E’}
INVALID_VOLUME_TYPE_FOR_EXTEND = {‘loglevel’: 40, ‘msg’: ‘The volume %(volume_id)s could not be extended. The volume type must be Normal.’, ‘msg_id’: 618, ‘suffix’: ‘E’}
LDEV_CREATION_WAIT_TIMEOUT = {‘loglevel’: 40, ‘msg’: ‘The creation of a logical device could not be completed. (LDEV: %(ldev)s)’, ‘msg_id’: 653, ‘suffix’: ‘E’}
LDEV_DELETION_WAIT_TIMEOUT = {‘loglevel’: 40, ‘msg’: ‘Failed to delete a logical device. (LDEV: %(ldev)s)’, ‘msg_id’: 652, ‘suffix’: ‘E’}
LDEV_NOT_EXIST = {‘loglevel’: 30, ‘msg’: ‘The logical device does not exist in the storage system. (LDEV: %(ldev)s)’, ‘msg_id’: 319, ‘suffix’: ‘W’}
MAP_LDEV_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to map a logical device. (LDEV: %(ldev)s, port: %(port)s, id: %(id)s, lun: %(lun)s)’, ‘msg_id’: 314, ‘suffix’: ‘W’}
METHOD_END = {‘loglevel’: 20, ‘msg’: ‘%(method)s ended. (config_group: %(config_group)s)’, ‘msg_id’: 2, ‘suffix’: ‘I’}
METHOD_START = {‘loglevel’: 20, ‘msg’: ‘%(method)s starts. (config_group: %(config_group)s)’, ‘msg_id’: 0, ‘suffix’: ‘I’}
NO_AVAILABLE_MIRROR_UNIT = {‘loglevel’: 40, ‘msg’: ‘A pair could not be created. The maximum number of pair is exceeded. (copy method: %(copy_method)s, P-VOL: %(pvol)s)’, ‘msg_id’: 615, ‘suffix’: ‘E’}
NO_AVAILABLE_RESOURCE = {‘loglevel’: 40, ‘msg’: ‘There are no resources available for use. (resource: %(resource)s)’, ‘msg_id’: 648, ‘suffix’: ‘E’}
NO_CONNECTED_TARGET = {‘loglevel’: 40, ‘msg’: ‘The host group or iSCSI target was not found.’, ‘msg_id’: 649, ‘suffix’: ‘E’}
NO_HBA_WWN_ADDED_TO_HOST_GRP = {‘loglevel’: 40, ‘msg’: ‘No WWN is assigned. (port: %(port)s, gid: %(gid)s)’, ‘msg_id’: 614, ‘suffix’: ‘E’}
NO_MAPPING_FOR_LDEV = {‘loglevel’: 40, ‘msg’: ‘Failed to map a logical device to any pair targets. (LDEV: %(ldev)s)’, ‘msg_id’: 639, ‘suffix’: ‘E’}
OBJECT_CREATED = {‘loglevel’: 20, ‘msg’: ‘Created %(object)s. (%(details)s)’, ‘msg_id’: 6, ‘suffix’: ‘I’}
OUTPUT_PARAMETER_VALUES = {‘loglevel’: 20, ‘msg’: ‘The parameter of the storage backend. (config_group: %(config_group)s)’, ‘msg_id’: 1, ‘suffix’: ‘I’}
POOL_INFO_RETRIEVAL_FAILED = {‘loglevel’: 40, ‘msg’: ‘Failed to provide information about a pool. (pool: %(pool)s)’, ‘msg_id’: 620, ‘suffix’: ‘E’}
POOL_NOT_FOUND = {‘loglevel’: 40, ‘msg’: ‘A pool could not be found. (pool: %(pool)s)’, ‘msg_id’: 640, ‘suffix’: ‘E’}
RESOURCE_NOT_FOUND = {‘loglevel’: 40, ‘msg’: ‘The resource %(resource)s was not found.’, ‘msg_id’: 650, ‘suffix’: ‘E’}
SET_CONFIG_VALUE = {‘loglevel’: 20, ‘msg’: ‘Set %(object)s to %(value)s.’, ‘msg_id’: 5, ‘suffix’: ‘I’}
SI_PAIR_STATUS_WAIT_TIMEOUT = {‘loglevel’: 40, ‘msg’: ‘The status change of full copy pair could not be completed. (S-VOL: %(svol)s)’, ‘msg_id’: 610, ‘suffix’: ‘E’}
STORAGE_COMMAND_FAILED = {‘loglevel’: 40, ‘msg’: ‘The command %(cmd)s failed. (ret: %(ret)s, stdout: %(out)s, stderr: %(err)s)’, ‘msg_id’: 600, ‘suffix’: ‘E’}
TI_PAIR_STATUS_WAIT_TIMEOUT = {‘loglevel’: 40, ‘msg’: ‘The status change of thin copy pair could not be completed. (S-VOL: %(svol)s)’, ‘msg_id’: 611, ‘suffix’: ‘E’}
UNABLE_TO_DELETE_PAIR = {‘loglevel’: 40, ‘msg’: ‘A pair cannot be deleted. (P-VOL: %(pvol)s, S-VOL: %(svol)s)’, ‘msg_id’: 616, ‘suffix’: ‘E’}
UNMAP_LDEV_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to unmap a logical device. (LDEV: %(ldev)s)’, ‘msg_id’: 310, ‘suffix’: ‘W’}
VOLUME_COPY_FAILED = {‘loglevel’: 40, ‘msg’: ‘Failed to copy a volume. (copy method: %(copy_method)s, P-VOL: %(pvol)s, S-VOL: %(svol)s)’, ‘msg_id’: 722, ‘suffix’: ‘E’}
WAIT_SI_PAIR_STATUS_FAILED = {‘loglevel’: 30, ‘msg’: ‘Failed to change the status of full copy pair. (P-VOL: %(pvol)s, S-VOL: %(svol)s)’, ‘msg_id’: 326, ‘suffix’: ‘W’}
output_log(**kwargs)

Output the message to the log file and return the message.

build_initiator_target_map(connector, target_wwns, lookup_service)

Return a dictionary mapping server-wwns and lists of storage-wwns.

check_ignore_error(ignore_error, stderr)

Return True if ignore_error is in stderr, False otherwise.

check_opt_value(conf, names)

Check if the parameter names and values are valid.

check_opts(conf, opts)

Check if the specified configuration is valid.

check_timeout(start_time, timeout)

Return True if the specified time has passed, False otherwise.

execute(*cmd, **kwargs)

Run the specified command and return its results.

get_ldev(obj)

Get the LDEV number from the given object and return it as integer.

get_volume_metadata(volume)

Return a dictionary of the metadata of the specified volume.

import_object(conf, driver_info, db)

Import a class and return an instance of it.

mask_password(cmd)

Return a string in which the password is masked.

output_log(msg_enum, **kwargs)

Output the specified message to the log file and return the message.

output_opt_info(conf, names)

Output parameter names and values to the log file.

output_opts(conf, opts)

Output parameter names and values to the log file.

output_start_end_log(func)

Output the log of the start and the end of the method.

output_storage_cli_info(name, version)

Output storage CLI info to the log file.

require_target_existed(targets)

Check if the target list includes one or more members.

update_conn_info(conn_info, connector, lookup_service)

Set wwn mapping list to the connection info.