OpenSolaris_b135/cmd/iscsi/iscsitgtd/util_err.c

/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */

/*
 * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#pragma ident	"%Z%%M%	%I%	%E% SMI"

#include <libintl.h>
#include "errcode.h"

char *
errcode_to_str(err_code_t err_code)
{
	switch (err_code) {
	case ERR_SUCCESS:
		return ((char *)gettext("Operation completed successfully"));
	case ERR_NULL_XML_MESSAGE:
		return ((char *)gettext("Null XML message"));
	case ERR_SYNTAX_EMPTY:
		return ((char *)gettext("Syntax error: "
		    "Empty XML message or syntax error"));
	case ERR_SYNTAX_MISSING_ALL:
		return ((char *)gettext("Syntax error: Missing --all"));
	case ERR_SYNTAX_MISSING_BACKING_STORE:
		return ((char *)gettext("Syntax error: Missing backing-store"));
	case ERR_SYNTAX_MISSING_INAME:
		return ((char *)gettext("Syntax error: Missing iscsi name"));
	case ERR_SYNTAX_MISSING_IPADDR:
		return ((char *)gettext("Syntax error: Missing IP address"));
	case ERR_SYNTAX_MISSING_NAME:
		return ((char *)gettext("Syntax error: Missing name"));
	case ERR_SYNTAX_MISSING_OBJECT:
		return ((char *)gettext("Syntax error: Missing object"));
	case ERR_SYNTAX_MISSING_OPERAND:
		return ((char *)gettext("Syntax error: Missing operand"));
	case ERR_SYNTAX_MISSING_SIZE:
		return ((char *)gettext("Syntax error: Missing size"));
	case ERR_SYNTAX_MISSING_TYPE:
		return ((char *)gettext("Syntax error: Missing type"));
	case ERR_SYNTAX_EMPTY_ACL:
		return ((char *)gettext("Syntax error: empty ACL"));
	case ERR_SYNTAX_EMPTY_ALIAS:
		return ((char *)gettext("Syntax error: empty alias"));
	case ERR_SYNTAX_EMPTY_CHAPNAME:
		return ((char *)gettext("Empty chap-name"));
	case ERR_SYNTAX_EMPTY_CHAPSECRET:
		return ((char *)gettext("Empty 'chap-secret' element"));
	case ERR_SYNTAX_EMPTY_IPADDR:
		return ((char *)gettext("Syntax error: empty IP address"));
	case ERR_SYNTAX_EMPTY_MAXRECV:
		return ((char *)gettext("Syntax error: empty maxrecv"));
	case ERR_SYNTAX_EMPTY_TPGT:
		return ((char *)gettext("Syntax error: empty TPGT"));
	case ERR_SYNTAX_INVALID_NAME:
		return ((char *)gettext("Syntax error: name may contain only "
		    "a..z, A..Z, 0-9, dot(.), dash(-), colon(:) characters"));
	case ERR_INVALID_COMMAND:
		return ((char *)gettext("Invalid command"));
	case ERR_INVALID_OBJECT:
		return ((char *)gettext("Invalid object"));
	case ERR_INVALID_BASEDIR:
		return ((char *)gettext("Invalid base directory"));
	case ERR_INVALID_IP:
		return ((char *)gettext("Invalid IP address"));
	case ERR_INVALID_TPGT:
		return ((char *)gettext("Invalid TPGT"));
	case ERR_INVALID_MAXRECV:
		return ((char *)gettext("Invalid MaxRecvDataSegmentLength"));
	case ERR_INVALID_RADSRV:
		return ((char *)gettext("Invalid RADIUS server name"));
	case ERR_INVALID_SIZE:
		return ((char *)gettext("Invalid size parameter"));
	case ERR_INIT_EXISTS:
		return ((char *)gettext("Initiator already exists"));
	case ERR_LUN_EXISTS:
		return ((char *)gettext("LUN already exists"));
	case ERR_LUN_INVALID_RANGE:
		return ((char *)gettext("LUN must be between 0 and 16383"));
	case ERR_TPGT_EXISTS:
		return ((char *)gettext("TPGT already exists"));
	case ERR_ACL_NOT_FOUND:
		return ((char *)gettext("ACL list not found"));
	case ERR_INIT_NOT_FOUND:
		return ((char *)gettext("Initiator not found"));
	case ERR_TARG_NOT_FOUND:
		return ((char *)gettext("Target not found"));
	case ERR_LUN_NOT_FOUND:
		return ((char *)gettext("LUN not found"));
	case ERR_TPGT_NOT_FOUND:
		return ((char *)gettext("TPGT not found"));
	case ERR_ACCESS_RAW_DEVICE_FAILED:
		return ((char *)gettext("Failed to "
		    "access a direct access device"));
	case ERR_CREATE_METADATA_FAILED:
		return ((char *)gettext("Failed to "
		    "create meta data for tape device"));
	case ERR_CREATE_SYMLINK_FAILED:
		return ((char *)gettext("Failed to "
		    "create a symbolic link to the backing store"));
	case ERR_CREATE_NAME_TOO_LONG:
		return ((char *)gettext("Name must be less than 166 "
		    "characters"));
	case ERR_NAME_TOO_LONG:
		return ((char *)gettext("Name too long, must be less than 223 "
		    "characters"));
	case ERR_DISK_BACKING_SIZE_OR_FILE:
		return ((char *)gettext("Size must be 0 if backing store "
		    "exists"));
	case ERR_DISK_BACKING_MUST_BE_REGULAR_FILE:
		return ((char *)gettext("For type "
		    "'disk' backing must be a regular file"));
	case ERR_DISK_BACKING_NOT_VALID_RAW:
		return ((char *)gettext("Backing store is not a valid raw "
		    "device"));
	case ERR_STAT_BACKING_FAILED:
		return ((char *)gettext("Failed to "
		    "stat(2) backing for 'disk'"));
	case ERR_RAW_PART_NOT_CAP:
		return ((char *)gettext("Partition size does not match capacity"
		    " of device. Use p0 or ctd name"));
	case ERR_CREATE_TARGET_DIR_FAILED:
		return ((char *)gettext("Failed to "
		    "create target directory"));
	case ERR_ENCODE_GUID_FAILED:
		return ((char *)gettext("Failed to encode GUID value"));
	case ERR_INIT_XML_READER_FAILED:
		return ((char *)gettext("Failed to initialize XML reader"));
	case ERR_INVALID_XML_REQUEST:
		return ((char *)gettext("Invalid characters in XML request"));
	case ERR_OPEN_PARAM_FILE_FAILED:
		return ((char *)gettext("Failed to open parameter file"));
	case ERR_UPDATE_MAINCFG_FAILED:
		return ((char *)gettext("Failed to "
		    "update main configuration file"));
	case ERR_UPDATE_TARGCFG_FAILED:
		return ((char *)gettext("Failed to "
		    "update target configuration file"));
	case ERR_VALID_TARG_EXIST:
		return ((char *)gettext("Valid targets "
		    "exist under current base directory"));
	case ERR_TARGCFG_MISSING_INAME:
		return ((char *)gettext("Missing "
		    "iscsi name in target configuration"));
	case ERR_NO_MATCH:
		return ((char *)gettext("No match"));
	case ERR_NO_MEM:
		return ((char *)gettext("Internal error: Out of memory"));
	case ERR_LUN_ZERO_NOT_LAST:
		return ((char *)gettext("LUN 0 must be the last one deleted"));
	case ERR_LUN_ZERO_NOT_FIRST:
		return ((char *)gettext("LUN 0 must exist before creating "
		    "other LUNs"));
	case ERR_SIZE_MOD_BLOCK:
		return ((char *)gettext("Size must be multiple of 512"));
	case ERR_CANT_SHRINK_LU:
		return ((char *)gettext("Shrinking of LU is not supported"));
	case ERR_RESIZE_WRONG_TYPE:
		return ((char *)gettext("Backing store must be regular file"));
	case ERR_RESIZE_WRONG_DTYPE:
		return ((char *)gettext("Cannot resize 'raw' targets"));
	case ERR_LUN_NOT_GROWN:
		return ((char *)gettext("Failed to grow LU"));
	case ERR_FILE_TOO_BIG:
		return ((char *)gettext("Requested size is too large for "
		    "system"));
	case ERR_FAILED_TO_CREATE_LU:
		return ((char *)gettext("Failed to create backing store"));
	case ERR_INTERNAL_ERROR:
		return ((char *)gettext("Internal error"));
	case ERR_TAPE_NOT_SUPPORTED_IN_32BIT:
		return ((char *)gettext("Tape emulation not supported in "
		    "32-bit mode"));
	case ERR_BAD_CREDS:
		return ((char *)gettext("No credentials available from door"));
	case ERR_NO_PERMISSION:
		return ((char *)gettext("Permission denied"));
	case ERR_INVALID_ISNS_SRV:
		return ((char *)gettext("Invalid ISNS Server name"));
	case ERR_ISNS_ERROR:
		return ((char *)gettext("ISNS error"));
	case ERR_TPGT_NO_IPADDR:
		return ((char *)gettext("TPGT has no ip-addr"));
	case ERR_TPGT_IN_USE:
		return ((char *)gettext("Specified TPGT is in-use"));
	case ERR_ZFS_ISCSISHARE_OFF:
		return ((char *)gettext("ZFS shareiscsi property is off"));
	default:
		return ((char *)gettext("Internal error: unknown message"));
	}
}