protected void cleanUpNetworksAndFirewallsForGroup(String groupName) { String resourceName = namingConvention.create().sharedNameForGroup(groupName); AtomicReference<Operation> operation = new AtomicReference<Operation>( api.getFirewallApiForProject(project.get()).delete(resourceName)); retry( operationDonePredicate, operationCompleteCheckTimeout, operationCompleteCheckInterval, MILLISECONDS) .apply(operation); if (operation.get().getHttpError().isPresent()) { HttpResponse response = operation.get().getHttpError().get(); logger.warn( "delete orphaned firewall failed. Http Error Code: " + response.getStatusCode() + " HttpError: " + response.getMessage()); } operation = new AtomicReference<Operation>( api.getNetworkApiForProject(project.get()).delete(resourceName)); retry( operationDonePredicate, operationCompleteCheckTimeout, operationCompleteCheckInterval, MILLISECONDS) .apply(operation); if (operation.get().getHttpError().isPresent()) { HttpResponse response = operation.get().getHttpError().get(); logger.warn( "delete orphaned network failed. Http Error Code: " + response.getStatusCode() + " HttpError: " + response.getMessage()); } }
@Override public void handleError(final HttpCommand command, final HttpResponse response) { Exception exception = null; String defaultMessage = String.format( "%s -> %s", command.getCurrentRequest().getRequestLine(), response.getStatusLine()); try { switch (response.getStatusCode()) { case 401: case 403: // Authorization exceptions do not return an errors DTO, so we // encapsulate a generic exception exception = new AuthorizationException( defaultMessage, new HttpResponseException(command, response, defaultMessage)); break; case 404: // TODO: get the exception to encapsulate from the returned error // object exception = new ResourceNotFoundException(defaultMessage); break; case 301: // Moved resources in Abiquo should be handled with the // ReturnMovedResource exception parser to return the moved // entity. exception = new HttpResponseException(command, response, defaultMessage); break; default: // TODO: get the exception to encapsulate from the returned error // object exception = new HttpResponseException(response.getMessage(), command, response); break; } } finally { closeQuietly(response.getPayload()); command.setException(exception); } }