322 lines
13 KiB
Python
322 lines
13 KiB
Python
|
# Copyright 2016 Cloudbase Solutions Srl
|
||
|
# All Rights Reserved.
|
||
|
#
|
||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||
|
# not use this file except in compliance with the License. You may obtain
|
||
|
# a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||
|
# License for the specific language governing permissions and limitations
|
||
|
# under the License.
|
||
|
|
||
|
# Error codes and descriptions, as provided by iscsierr.h
|
||
|
|
||
|
from os_win._i18n import _
|
||
|
from os_win.utils.winapi import constants as w_const
|
||
|
|
||
|
err_msg_dict = {
|
||
|
w_const.ISDSC_NON_SPECIFIC_ERROR:
|
||
|
_('A non specific error occurred.'),
|
||
|
w_const.ISDSC_LOGIN_FAILED:
|
||
|
_('Login Failed.'),
|
||
|
w_const.ISDSC_CONNECTION_FAILED:
|
||
|
_('Connection Failed.'),
|
||
|
w_const.ISDSC_INITIATOR_NODE_ALREADY_EXISTS:
|
||
|
_('Initiator Node Already Exists.'),
|
||
|
w_const.ISDSC_INITIATOR_NODE_NOT_FOUND:
|
||
|
_('Initiator Node Does Not Exist.'),
|
||
|
w_const.ISDSC_TARGET_MOVED_TEMPORARILY:
|
||
|
_('Target Moved Temporarily.'),
|
||
|
w_const.ISDSC_TARGET_MOVED_PERMANENTLY:
|
||
|
_('Target Moved Permanently.'),
|
||
|
w_const.ISDSC_INITIATOR_ERROR:
|
||
|
_('Initiator Error.'),
|
||
|
w_const.ISDSC_AUTHENTICATION_FAILURE:
|
||
|
_('Authentication Failure.'),
|
||
|
w_const.ISDSC_AUTHORIZATION_FAILURE:
|
||
|
_('Authorization Failure.'),
|
||
|
w_const.ISDSC_NOT_FOUND:
|
||
|
_('Not Found.'),
|
||
|
w_const.ISDSC_TARGET_REMOVED:
|
||
|
_('Target Removed.'),
|
||
|
w_const.ISDSC_UNSUPPORTED_VERSION:
|
||
|
_('Unsupported Version.'),
|
||
|
w_const.ISDSC_TOO_MANY_CONNECTIONS:
|
||
|
_('Too many Connections.'),
|
||
|
w_const.ISDSC_MISSING_PARAMETER:
|
||
|
_('Missing Parameter.'),
|
||
|
w_const.ISDSC_CANT_INCLUDE_IN_SESSION:
|
||
|
_('Can not include in session.'),
|
||
|
w_const.ISDSC_SESSION_TYPE_NOT_SUPPORTED:
|
||
|
_('Session type not supported.'),
|
||
|
w_const.ISDSC_TARGET_ERROR:
|
||
|
_('Target Error.'),
|
||
|
w_const.ISDSC_SERVICE_UNAVAILABLE:
|
||
|
_('Service Unavailable.'),
|
||
|
w_const.ISDSC_OUT_OF_RESOURCES:
|
||
|
_('Out of Resources.'),
|
||
|
w_const.ISDSC_CONNECTION_ALREADY_EXISTS:
|
||
|
_('Connections already exist on initiator node.'),
|
||
|
w_const.ISDSC_SESSION_ALREADY_EXISTS:
|
||
|
_('Session Already Exists.'),
|
||
|
w_const.ISDSC_INITIATOR_INSTANCE_NOT_FOUND:
|
||
|
_('Initiator Instance Does Not Exist.'),
|
||
|
w_const.ISDSC_TARGET_ALREADY_EXISTS:
|
||
|
_('Target Already Exists.'),
|
||
|
w_const.ISDSC_DRIVER_BUG:
|
||
|
_('The iscsi driver implementation did '
|
||
|
'not complete an operation correctly.'),
|
||
|
w_const.ISDSC_INVALID_TEXT_KEY:
|
||
|
_('An invalid key text was encountered.'),
|
||
|
w_const.ISDSC_INVALID_SENDTARGETS_TEXT:
|
||
|
_('Invalid SendTargets response text was encountered.'),
|
||
|
w_const.ISDSC_INVALID_SESSION_ID:
|
||
|
_('Invalid Session Id.'),
|
||
|
w_const.ISDSC_SCSI_REQUEST_FAILED:
|
||
|
_('The scsi request failed.'),
|
||
|
w_const.ISDSC_TOO_MANY_SESSIONS:
|
||
|
_('Exceeded max sessions for this initiator.'),
|
||
|
w_const.ISDSC_SESSION_BUSY:
|
||
|
_('Session is busy since a request is already in progress.'),
|
||
|
w_const.ISDSC_TARGET_MAPPING_UNAVAILABLE:
|
||
|
_('The target mapping requested is not available.'),
|
||
|
w_const.ISDSC_ADDRESS_TYPE_NOT_SUPPORTED:
|
||
|
_('The Target Address type given is not supported.'),
|
||
|
w_const.ISDSC_LOGON_FAILED:
|
||
|
_('Logon Failed.'),
|
||
|
w_const.ISDSC_SEND_FAILED:
|
||
|
_('TCP Send Failed.'),
|
||
|
w_const.ISDSC_TRANSPORT_ERROR:
|
||
|
_('TCP Transport Error'),
|
||
|
w_const.ISDSC_VERSION_MISMATCH:
|
||
|
_('iSCSI Version Mismatch'),
|
||
|
w_const.ISDSC_TARGET_MAPPING_OUT_OF_RANGE:
|
||
|
_('The Target Mapping Address passed is out of range for the '
|
||
|
'adapter configuration.'),
|
||
|
w_const.ISDSC_TARGET_PRESHAREDKEY_UNAVAILABLE:
|
||
|
_('The preshared key for the target or IKE identification '
|
||
|
'payload is not available.'),
|
||
|
w_const.ISDSC_TARGET_AUTHINFO_UNAVAILABLE:
|
||
|
_('The authentication information for '
|
||
|
'the target is not available.'),
|
||
|
w_const.ISDSC_TARGET_NOT_FOUND:
|
||
|
_('The target name is not found or is '
|
||
|
'marked as hidden from login.'),
|
||
|
w_const.ISDSC_LOGIN_USER_INFO_BAD:
|
||
|
_('One or more parameters specified in '
|
||
|
'LoginTargetIN structure is invalid.'),
|
||
|
w_const.ISDSC_TARGET_MAPPING_EXISTS:
|
||
|
_('Given target mapping already exists.'),
|
||
|
w_const.ISDSC_HBA_SECURITY_CACHE_FULL:
|
||
|
_('The HBA security information cache '
|
||
|
'is full.'),
|
||
|
w_const.ISDSC_INVALID_PORT_NUMBER:
|
||
|
_('The port number passed is '
|
||
|
'not valid for the initiator.'),
|
||
|
w_const.ISDSC_OPERATION_NOT_ALL_SUCCESS:
|
||
|
_('The operation was not successful '
|
||
|
'for all initiators or discovery '
|
||
|
'methods.'),
|
||
|
w_const.ISDSC_HBA_SECURITY_CACHE_NOT_SUPPORTED:
|
||
|
_('The HBA security information '
|
||
|
'cache is not supported by '
|
||
|
'this adapter.'),
|
||
|
w_const.ISDSC_IKE_ID_PAYLOAD_TYPE_NOT_SUPPORTED:
|
||
|
_('The IKE id payload type '
|
||
|
'specified is not supported.'),
|
||
|
w_const.ISDSC_IKE_ID_PAYLOAD_INCORRECT_SIZE:
|
||
|
_('The IKE id payload size '
|
||
|
'specified is not correct.'),
|
||
|
w_const.ISDSC_TARGET_PORTAL_ALREADY_EXISTS:
|
||
|
_('Target Portal Structure '
|
||
|
'Already Exists.'),
|
||
|
w_const.ISDSC_TARGET_ADDRESS_ALREADY_EXISTS:
|
||
|
_('Target Address Structure '
|
||
|
'Already Exists.'),
|
||
|
w_const.ISDSC_NO_AUTH_INFO_AVAILABLE:
|
||
|
_('There is no IKE authentication '
|
||
|
'information available.'),
|
||
|
w_const.ISDSC_NO_TUNNEL_OUTER_MODE_ADDRESS:
|
||
|
_('There is no tunnel mode outer '
|
||
|
'address specified.'),
|
||
|
w_const.ISDSC_CACHE_CORRUPTED:
|
||
|
_('Authentication or tunnel '
|
||
|
'address cache is corrupted.'),
|
||
|
w_const.ISDSC_REQUEST_NOT_SUPPORTED:
|
||
|
_('The request or operation '
|
||
|
'is not supported.'),
|
||
|
w_const.ISDSC_TARGET_OUT_OF_RESORCES:
|
||
|
_('The target does not have enough '
|
||
|
'resources to process the '
|
||
|
'given request.'),
|
||
|
w_const.ISDSC_SERVICE_DID_NOT_RESPOND:
|
||
|
_('The initiator service did '
|
||
|
'not respond to the request '
|
||
|
'sent by the driver.'),
|
||
|
w_const.ISDSC_ISNS_SERVER_NOT_FOUND:
|
||
|
_('The Internet Storage Name Server (iSNS) '
|
||
|
'server was not found or is unavailable.'),
|
||
|
w_const.ISDSC_OPERATION_REQUIRES_REBOOT:
|
||
|
_('The operation was successful but '
|
||
|
'requires a driver reload or reboot '
|
||
|
'to become effective.'),
|
||
|
w_const.ISDSC_NO_PORTAL_SPECIFIED:
|
||
|
_('There is no target portal available '
|
||
|
'to complete the login.'),
|
||
|
w_const.ISDSC_CANT_REMOVE_LAST_CONNECTION:
|
||
|
_('Cannot remove the last '
|
||
|
'connection for a session.'),
|
||
|
w_const.ISDSC_SERVICE_NOT_RUNNING:
|
||
|
_('The Microsoft iSCSI initiator '
|
||
|
'service has not been started.'),
|
||
|
w_const.ISDSC_TARGET_ALREADY_LOGGED_IN:
|
||
|
_('The target has already been '
|
||
|
'logged in via an iSCSI session.'),
|
||
|
w_const.ISDSC_DEVICE_BUSY_ON_SESSION:
|
||
|
_('The session cannot be logged out '
|
||
|
'since a device on that session is '
|
||
|
'currently being used.'),
|
||
|
w_const.ISDSC_COULD_NOT_SAVE_PERSISTENT_LOGIN_DATA:
|
||
|
_('Failed to save persistent '
|
||
|
'login information.'),
|
||
|
w_const.ISDSC_COULD_NOT_REMOVE_PERSISTENT_LOGIN_DATA:
|
||
|
_('Failed to remove '
|
||
|
'persistent login '
|
||
|
'information.'),
|
||
|
w_const.ISDSC_PORTAL_NOT_FOUND:
|
||
|
_('The specified portal was not found.'),
|
||
|
w_const.ISDSC_INITIATOR_NOT_FOUND:
|
||
|
_('The specified initiator '
|
||
|
'name was not found.'),
|
||
|
w_const.ISDSC_DISCOVERY_MECHANISM_NOT_FOUND:
|
||
|
_('The specified discovery '
|
||
|
'mechanism was not found.'),
|
||
|
w_const.ISDSC_IPSEC_NOT_SUPPORTED_ON_OS:
|
||
|
_('iSCSI does not support IPSEC '
|
||
|
'for this version of the OS.'),
|
||
|
w_const.ISDSC_PERSISTENT_LOGIN_TIMEOUT:
|
||
|
_('The iSCSI service timed out waiting '
|
||
|
'for all persistent logins to '
|
||
|
'complete.'),
|
||
|
w_const.ISDSC_SHORT_CHAP_SECRET:
|
||
|
_('The specified CHAP secret is less than '
|
||
|
'96 bits and will not be usable for '
|
||
|
'authenticating over non ipsec connections.'),
|
||
|
w_const.ISDSC_EVALUATION_PEROID_EXPIRED:
|
||
|
_('The evaluation period for the '
|
||
|
'iSCSI initiator service has '
|
||
|
'expired.'),
|
||
|
w_const.ISDSC_INVALID_CHAP_SECRET:
|
||
|
_('CHAP secret given does not conform '
|
||
|
'to the standard. Please see system '
|
||
|
'event log for more information.'),
|
||
|
w_const.ISDSC_INVALID_TARGET_CHAP_SECRET:
|
||
|
_('Target CHAP secret given is invalid. Maximum size of CHAP secret'
|
||
|
'is 16 bytes. Minimum size is 12 bytes if IPSec is not used.'),
|
||
|
w_const.ISDSC_INVALID_INITIATOR_CHAP_SECRET:
|
||
|
_('Initiator CHAP secret given is '
|
||
|
'invalid. Maximum size of CHAP '
|
||
|
'secret is 16 bytes. Minimum size '
|
||
|
'is 12 bytes if IPSec is '
|
||
|
'not used.'),
|
||
|
w_const.ISDSC_INVALID_CHAP_USER_NAME:
|
||
|
_('CHAP Username given is invalid.'),
|
||
|
w_const.ISDSC_INVALID_LOGON_AUTH_TYPE:
|
||
|
_('Logon Authentication type '
|
||
|
'given is invalid.'),
|
||
|
w_const.ISDSC_INVALID_TARGET_MAPPING:
|
||
|
_('Target Mapping information '
|
||
|
'given is invalid.'),
|
||
|
w_const.ISDSC_INVALID_TARGET_ID:
|
||
|
_('Target Id given in '
|
||
|
'Target Mapping is invalid.'),
|
||
|
w_const.ISDSC_INVALID_ISCSI_NAME:
|
||
|
_('The iSCSI name specified contains '
|
||
|
'invalid characters or is too long.'),
|
||
|
w_const.ISDSC_INCOMPATIBLE_ISNS_VERSION:
|
||
|
_('The version number returned from the '
|
||
|
'Internet Storage Name Server (iSNS) '
|
||
|
'server is not compatible with this '
|
||
|
'version of the iSNS client.'),
|
||
|
w_const.ISDSC_FAILED_TO_CONFIGURE_IPSEC:
|
||
|
_('Initiator failed to configure IPSec '
|
||
|
'for the given connection. This could '
|
||
|
'be because of low resources.'),
|
||
|
w_const.ISDSC_BUFFER_TOO_SMALL:
|
||
|
_('The buffer given for processing '
|
||
|
'the request is too small.'),
|
||
|
w_const.ISDSC_INVALID_LOAD_BALANCE_POLICY:
|
||
|
_('The given Load Balance '
|
||
|
'policy is not recognized '
|
||
|
'by iScsi initiator.'),
|
||
|
w_const.ISDSC_INVALID_PARAMETER:
|
||
|
_('One or more paramaters '
|
||
|
'specified is not valid.'),
|
||
|
w_const.ISDSC_DUPLICATE_PATH_SPECIFIED:
|
||
|
_('Duplicate PathIds were '
|
||
|
'specified in the call to '
|
||
|
'set Load Balance Policy.'),
|
||
|
w_const.ISDSC_PATH_COUNT_MISMATCH:
|
||
|
_('Number of paths specified in '
|
||
|
'Set Load Balance Policy does not '
|
||
|
'match the number of paths to the target.'),
|
||
|
w_const.ISDSC_INVALID_PATH_ID:
|
||
|
_('Path Id specified in the call to '
|
||
|
'set Load Balance Policy is not valid'),
|
||
|
w_const.ISDSC_MULTIPLE_PRIMARY_PATHS_SPECIFIED:
|
||
|
_('Multiple primary paths '
|
||
|
'specified when only one '
|
||
|
'primary path is expected.'),
|
||
|
w_const.ISDSC_NO_PRIMARY_PATH_SPECIFIED:
|
||
|
_('No primary path specified when '
|
||
|
'at least one is expected.'),
|
||
|
w_const.ISDSC_DEVICE_ALREADY_PERSISTENTLY_BOUND:
|
||
|
_('Device is already a '
|
||
|
'persistently bound device.'),
|
||
|
w_const.ISDSC_DEVICE_NOT_FOUND:
|
||
|
_('Device was not found.'),
|
||
|
w_const.ISDSC_DEVICE_NOT_ISCSI_OR_PERSISTENT:
|
||
|
_('The device specified does not '
|
||
|
'originate from an iSCSI disk '
|
||
|
'or a persistent iSCSI login.'),
|
||
|
w_const.ISDSC_DNS_NAME_UNRESOLVED:
|
||
|
_('The DNS name specified was not resolved.'),
|
||
|
w_const.ISDSC_NO_CONNECTION_AVAILABLE:
|
||
|
_('There is no connection available '
|
||
|
'in the iSCSI session to '
|
||
|
'process the request.'),
|
||
|
w_const.ISDSC_LB_POLICY_NOT_SUPPORTED:
|
||
|
_('The given Load Balance '
|
||
|
'policy is not supported.'),
|
||
|
w_const.ISDSC_REMOVE_CONNECTION_IN_PROGRESS:
|
||
|
_('A remove connection request '
|
||
|
'is already in progress for '
|
||
|
'this session.'),
|
||
|
w_const.ISDSC_INVALID_CONNECTION_ID:
|
||
|
_('Given connection was not '
|
||
|
'found in the session.'),
|
||
|
w_const.ISDSC_CANNOT_REMOVE_LEADING_CONNECTION:
|
||
|
_('The leading connection in '
|
||
|
'the session cannot be '
|
||
|
'removed.'),
|
||
|
w_const.ISDSC_RESTRICTED_BY_GROUP_POLICY:
|
||
|
_('The operation cannot be performed '
|
||
|
'since it does not conform with '
|
||
|
'the group policy assigned to '
|
||
|
'this computer.'),
|
||
|
w_const.ISDSC_ISNS_FIREWALL_BLOCKED:
|
||
|
_('The operation cannot be performed since '
|
||
|
'the Internet Storage Name Server '
|
||
|
'(iSNS) firewall exception has '
|
||
|
'not been enabled.'),
|
||
|
w_const.ISDSC_FAILURE_TO_PERSIST_LB_POLICY:
|
||
|
_('Failed to persist load '
|
||
|
'balancing policy parameters.'),
|
||
|
w_const.ISDSC_INVALID_HOST:
|
||
|
_('The name could not be resolved to an IP Address.'),
|
||
|
}
|