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