| // 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.bridge.service.exception; | |
| import javax.xml.namespace.QName; | |
| import org.apache.axis2.AxisFault; | |
| public class EC2ServiceException extends RuntimeException { | |
| private static final long serialVersionUID = 8857313467757867680L; | |
| // ServerError & ClientError are correct as of schema version 2010-08-31 | |
| public static enum ServerError { | |
| InsufficientAddressCapacity("Server.InsufficientAddressCapacity", 500), | |
| InsufficientInstanceCapacity("Server.InsufficientInstanceCapacity", 500), | |
| InsufficientReservedInstanceCapacity("Server.InsufficientReservedInstanceCapacity", 500), | |
| InternalError("Server.InternalError", 500), | |
| Unavailable("Server.Unavailable", 501); | |
| private String errorString; | |
| private int httpErrorCode; | |
| private ServerError(String errorString, int errorCode) { | |
| this.errorString = errorString; | |
| this.httpErrorCode = errorCode; | |
| } | |
| public String getErrorString() { | |
| return errorString; | |
| } | |
| public int getHttpErrorCode() { | |
| return httpErrorCode; | |
| } | |
| } | |
| public static enum ClientError { | |
| AddressLimitExceeded("Client.AddressLimitExceeded", 400), | |
| AttachmentLimitExceeded("Client.AttachmentLimitExceeded", 400), | |
| AuthFailure("Client.AuthFailure", 400), | |
| Blocked("Client.Blocked", 400), | |
| DependencyViolation("Client.DependencyViolation", 400), | |
| FilterLimitExceeded("Client.FilterLimitExceeded", 400), | |
| IdempotentParameterMismatch("Client.IdempotentParameterMismatch", 400), | |
| IncorrectState("Client.IncorrectState", 400), | |
| IncorrectInstanceState("Client.IncorrectInstanceState", 400), | |
| InstanceLimitExceeded("Client.InstanceLimitExceeded", 400), | |
| InsufficientInstanceCapacity("Client.InsufficientInstanceCapacity", 400), | |
| InsufficientReservedInstancesCapacity("Client.InsufficientReservedInstancesCapacity", 400), | |
| InvalidAMIAttributeItemValue("Client.InvalidAMIAttributeItemValue", 400), | |
| InvalidAMIID_Malformed("Client.InvalidAMIID.Malformed", 400), | |
| InvalidAMIID_NotFound("Client.InvalidAMIID.NotFound", 400), | |
| InvalidAMIID_Unavailable("Client.InvalidAMIID.Unavailable", 400), | |
| InvalidAttachment_NotFound("Client.InvalidAttachment.NotFound", 400), | |
| InvalidDevice_InUse("Client.InvalidDevice.InUse", 400), | |
| InvalidFilter("Client.InvalidFilter", 400), | |
| InvalidGroup_Duplicate("Client.InvalidGroup.Duplicate", 400), | |
| InvalidGroup_InUse("Client.InvalidGroup.InUse", 400), | |
| InvalidGroup_NotFound("Client.InvalidGroup.NotFound", 400), | |
| InvalidGroup_Reserved("Client.InvalidGroup.Reserved", 400), | |
| InvalidInstanceID_Malformed("Client.InvalidInstanceID.Malformed", 400), | |
| InvalidInstanceID_NotFound("Client.InvalidInstanceID.NotFound", 400), | |
| InvalidIPAddress_InUse("Client.InvalidIPAddress.InUse", 400), | |
| InvalidKeyPair_Duplicate("Client.InvalidKeyPair.Duplicate", 400), | |
| InvalidKeyPair_Format("Client.InvalidKeyPair.Format", 400), | |
| InvalidKeyPair_NotFound("Client.InvalidKeyPair.NotFound", 400), | |
| InvalidManifest("Client.InvalidManifest", 400), | |
| InvalidParameterCombination("Client.InvalidParameterCombination", 400), | |
| InvalidParameterValue("Client.InvalidParameterValue", 400), | |
| InvalidPermission_Duplicate("Client.InvalidPermission.Duplicate", 400), | |
| InvalidPermission_Malformed("Client.InvalidPermission.Malformed", 400), | |
| InvalidReservationID_Malformed("Client.InvalidReservationID.Malformed", 400), | |
| InvalidReservationID_NotFound("Client.InvalidReservationID.NotFound", 400), | |
| InvalidSecurity_RequestHasExpired("Client.InvalidSecurity.RequestHasExpired", 400), | |
| InvalidSnapshotID_Malformed("Client.InvalidSnapshotID.Malformed", 400), | |
| InvalidSnapshot_NotFound("Client.InvalidSnapshot.NotFound", 400), | |
| InvalidUserID_Malformed("Client.InvalidUserID.Malformed", 400), | |
| InvalidReservedInstancesId("Client.InvalidReservedInstancesId", 400), | |
| InvalidReservedInstancesOfferingId("Client.InvalidReservedInstancesOfferingId", 400), | |
| InvalidVolumeID_Duplicate("Client.InvalidVolumeID.Duplicate", 400), | |
| InvalidVolumeID_Malformed("Client.InvalidVolumeID.Malformed", 400), | |
| InvalidVolume_NotFound("Client.InvalidVolume.NotFound", 400), | |
| InvalidVolumeID_ZoneMismatch("Client.InvalidVolumeID.ZoneMismatch", 400), | |
| InvalidZone_NotFound("Client.InvalidZone.NotFound", 400), | |
| MissingParamter("Client.MissingParamter", 400), | |
| NonEBSInstance("Client.NonEBSInstance", 400), | |
| PendingVerification("Client.PendingVerification", 400), | |
| PendingSnapshotLimitExceeded("Client.PendingSnapshotLimitExceeded", 400), | |
| SignatureDoesNotMatch("Client.SignatureDoesNotMatch", 400), | |
| ReservedInstancesLimitExceeded("Client.ReservedInstancesLimitExceeded", 400), | |
| ResourceLimitExceeded("Client.ResourceLimitExceeded", 400), | |
| SnapshotLimitExceeded("Client.SnapshotLimitExceeded", 400), | |
| UnknownParameter("Client.UnknownParameter", 400), | |
| Unsupported("Client.UnsupportedOperation", 400), | |
| VolumeLimitExceeded("Client.VolumeLimitExceeded", 400); | |
| private String errorString; | |
| private int httpErrorCode; | |
| private ClientError(String errorString, int errorCode) { | |
| this.errorString = errorString; | |
| this.httpErrorCode = errorCode; | |
| } | |
| public String getErrorString() { | |
| return errorString; | |
| } | |
| public int getHttpErrorCode() { | |
| return httpErrorCode; | |
| } | |
| } | |
| private int httpErrorCode = 0; | |
| public EC2ServiceException() { | |
| } | |
| public EC2ServiceException(String message) { | |
| super(message); | |
| } | |
| public EC2ServiceException(Throwable e) { | |
| super(e); | |
| } | |
| public EC2ServiceException(String message, Throwable e) { | |
| super(message, e); | |
| } | |
| public EC2ServiceException(String message, int errorCode) { | |
| super(message, new AxisFault(message, new QName("Error"))); | |
| this.httpErrorCode = errorCode; | |
| } | |
| public EC2ServiceException(String message, Throwable e, int errorCode) { | |
| super(message, e); | |
| this.httpErrorCode = errorCode; | |
| } | |
| public EC2ServiceException(ServerError errorCode, String message) { | |
| super(message, new AxisFault(message, new QName(errorCode.getErrorString()))); | |
| this.httpErrorCode = errorCode.getHttpErrorCode(); | |
| } | |
| public EC2ServiceException(ClientError errorCode, String message) { | |
| super(message, new AxisFault(message, new QName(errorCode.getErrorString()))); | |
| this.httpErrorCode = errorCode.getHttpErrorCode(); | |
| } | |
| public int getErrorCode() { | |
| return this.httpErrorCode; | |
| } | |
| } |