make error handling code in ultradns more readable

This commit is contained in:
adriancole 2013-03-24 14:22:39 -07:00
parent 308d460a8b
commit a27d11ddef
1 changed files with 52 additions and 10 deletions

View File

@ -17,7 +17,7 @@
* under the License. * under the License.
*/ */
package org.jclouds.ultradns.ws.handlers; package org.jclouds.ultradns.ws.handlers;
import static org.jclouds.ultradns.ws.handlers.UltraDNSWSErrorHandler.ErrorCodes.*;
import static org.jclouds.http.HttpUtils.closeClientButKeepContentStream; import static org.jclouds.http.HttpUtils.closeClientButKeepContentStream;
import static org.jclouds.http.HttpUtils.releasePayload; import static org.jclouds.http.HttpUtils.releasePayload;
@ -74,18 +74,60 @@ public class UltraDNSWSErrorHandler implements HttpErrorHandler {
} }
} }
/**
* there are 51002 potential codes. This defines the ones we are handling.
*/
static final class ErrorCodes {
/**
* Cannot find task with guid.
*/
static final int TASK_NOT_FOUND = 0;
/**
* Zone does not exist in the system.
*/
static final int ZONE_NOT_FOUND = 1801;
/**
* Zone already exists in the system.
*/
static final int ZONE_ALREADY_EXISTS = 1802;
/**
* No resource record with GUID found in the system.
*/
static final int RESOURCE_RECORD_NOT_FOUND = 2103;
/**
* Resource record exists with the same name and type.
*/
static final int RESOURCE_RECORD_ALREADY_EXISTS = 2111;
/**
* Account not found in the system.
*/
static final int ACCOUNT_NOT_FOUND = 2401;
/**
* Pool does not exist in the system.
*/
static final int POOL_NOT_FOUND = 2911;
/**
* Pool already created for the given rrGUID.
*/
static final int POOL_ALREADY_EXISTS = 2912;
/**
* Pool Record does not exist.
*/
static final int POOL_RECORD_NOT_FOUND = 3101;
}
private Exception refineException(UltraDNSWSResponseException exception) { private Exception refineException(UltraDNSWSResponseException exception) {
switch (exception.getError().getCode()) { switch (exception.getError().getCode()) {
case 0: case TASK_NOT_FOUND:
case 1801: case ZONE_NOT_FOUND:
case 2103: case RESOURCE_RECORD_NOT_FOUND:
case 2401: case ACCOUNT_NOT_FOUND:
case 2911: case POOL_NOT_FOUND:
case 3101: case POOL_RECORD_NOT_FOUND:
return new ResourceNotFoundException(exception.getError().getDescription(), exception); return new ResourceNotFoundException(exception.getError().getDescription(), exception);
case 1802: case ZONE_ALREADY_EXISTS:
case 2111: case RESOURCE_RECORD_ALREADY_EXISTS:
case 2912: case POOL_ALREADY_EXISTS:
return new ResourceAlreadyExistsException(exception.getError().getDescription(), exception); return new ResourceAlreadyExistsException(exception.getError().getDescription(), exception);
} }
return exception; return exception;