| // |
| // 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(); |
| } |
| } |