blob: e167dee22bb6477ffbcf870f1b9c2a2da1e88a33 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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.
//
package com.cloud.utils.exception;
import java.util.HashMap;
import org.apache.log4j.Logger;
/**
* CSExceptionErrorCode lists the CloudStack error codes that correspond
* to a each exception thrown by the CloudStack API.
*/
public class CSExceptionErrorCode {
public static final Logger s_logger = Logger.getLogger(CSExceptionErrorCode.class.getName());
// Declare a hashmap of CloudStack Error Codes for Exceptions.
protected static final HashMap<String, Integer> ExceptionErrorCodeMap;
static {
try {
ExceptionErrorCodeMap = new HashMap<String, Integer>();
ExceptionErrorCodeMap.put("com.cloud.utils.exception.CloudRuntimeException", 4250);
ExceptionErrorCodeMap.put("com.cloud.utils.exception.ExecutionException", 4260);
ExceptionErrorCodeMap.put("com.cloud.utils.exception.HypervisorVersionChangedException", 4265);
ExceptionErrorCodeMap.put("com.cloud.utils.exception.NioConnectionException", 4270);
ExceptionErrorCodeMap.put("com.cloud.exception.CloudException", 4275);
ExceptionErrorCodeMap.put("com.cloud.exception.AccountLimitException", 4280);
ExceptionErrorCodeMap.put("com.cloud.exception.AgentUnavailableException", 4285);
ExceptionErrorCodeMap.put("com.cloud.exception.CloudAuthenticationException", 4290);
ExceptionErrorCodeMap.put("com.cloud.exception.CloudTwoFactorAuthenticationException", 4295);
ExceptionErrorCodeMap.put("com.cloud.exception.ConcurrentOperationException", 4300);
ExceptionErrorCodeMap.put("com.cloud.exception.ConflictingNetworkSettingsException", 4305);
ExceptionErrorCodeMap.put("com.cloud.exception.DiscoveredWithErrorException", 4310);
ExceptionErrorCodeMap.put("com.cloud.exception.HAStateException", 4315);
ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientAddressCapacityException", 4320);
ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientCapacityException", 4325);
ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientNetworkCapacityException", 4330);
ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientVirtualNetworkCapacityException", 4331);
ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientServerCapacityException", 4335);
ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientStorageCapacityException", 4340);
ExceptionErrorCodeMap.put("com.cloud.exception.InternalErrorException", 4345);
ExceptionErrorCodeMap.put("com.cloud.exception.InvalidParameterValueException", 4350);
ExceptionErrorCodeMap.put("com.cloud.exception.ManagementServerException", 4355);
ExceptionErrorCodeMap.put("com.cloud.exception.NetworkRuleConflictException", 4360);
ExceptionErrorCodeMap.put("com.cloud.exception.PermissionDeniedException", 4365);
ExceptionErrorCodeMap.put("com.cloud.exception.ResourceAllocationException", 4370);
ExceptionErrorCodeMap.put("com.cloud.exception.ResourceInUseException", 4375);
ExceptionErrorCodeMap.put("com.cloud.exception.ResourceUnavailableException", 4380);
ExceptionErrorCodeMap.put("com.cloud.exception.StorageUnavailableException", 4385);
ExceptionErrorCodeMap.put("com.cloud.exception.UnsupportedServiceException", 4390);
ExceptionErrorCodeMap.put("com.cloud.exception.VirtualMachineMigrationException", 4395);
ExceptionErrorCodeMap.put("com.cloud.async.AsyncCommandQueued", 4540);
ExceptionErrorCodeMap.put("com.cloud.exception.RequestLimitException", 4545);
ExceptionErrorCodeMap.put("com.cloud.exception.StorageConflictException", 4550);
ExceptionErrorCodeMap.put("com.cloud.exception.UnavailableCommandException", 4555);
ExceptionErrorCodeMap.put("com.cloud.exception.OperationTimedoutException", 4560);
// Have a special error code for ServerApiException when it is
// thrown in a standalone manner when failing to detect any of the above
// standard exceptions.
ExceptionErrorCodeMap.put("org.apache.cloudstack.api.ServerApiException", 9999);
} catch (Exception e) {
e.printStackTrace();
throw new ExceptionInInitializerError(e);
}
}
public static HashMap<String, Integer> getErrCodeList() {
return ExceptionErrorCodeMap;
}
public static int getCSErrCode(String exceptionName) {
if (ExceptionErrorCodeMap.containsKey(exceptionName)) {
return ExceptionErrorCodeMap.get(exceptionName);
} else {
s_logger.info("Could not find exception: " + exceptionName + " in error code list for exceptions");
return -1;
}
}
public static String getCurMethodName() {
StackTraceElement stackTraceCalls[] = (new Throwable()).getStackTrace();
return stackTraceCalls[1].toString();
}
}