From eefc8ed50400acb371cb78bdd6c1cad798d2de48 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Thu, 22 Jun 2023 14:50:33 +0530 Subject: [PATCH 1/2] api: correct error on resize volume resource allocation failure This PR resource throws exception with correct error code and logs the erro message when a resource allocation failure is encountered during resize volume operation. Signed-off-by: Abhishek Kumar --- .../cloudstack/api/command/user/volume/ResizeVolumeCmd.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java index 6ad512ad29a1..0daf141ba4a6 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java @@ -184,7 +184,7 @@ public String getEventDescription() { } @Override - public void execute() throws ResourceAllocationException { + public void execute() { Volume volume = null; try { if (size != null) { @@ -194,6 +194,9 @@ public void execute() throws ResourceAllocationException { } volume = _volumeService.resizeVolume(this); + } catch (ResourceAllocationException ex) { + s_logger.error(ex.getMessage()); + throw new ServerApiException(ApiErrorCode.RESOURCE_ALLOCATION_ERROR, ex.getMessage()); } catch (InvalidParameterValueException ex) { s_logger.info(ex.getMessage()); throw new ServerApiException(ApiErrorCode.UNSUPPORTED_ACTION_ERROR, ex.getMessage()); From 61dabcb60f70cb0362988d337186f3d484bc02dd Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Tue, 27 Jun 2023 10:05:45 +0530 Subject: [PATCH 2/2] fix job result code Signed-off-by: Abhishek Kumar --- server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java b/server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java index 196f640252a0..b596254994cd 100644 --- a/server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java +++ b/server/src/main/java/com/cloud/api/ApiAsyncJobDispatcher.java @@ -129,9 +129,7 @@ public void runJob(final AsyncJob job) { response.setErrorText(errorMsg); response.setResponseName((cmdObj == null) ? "unknowncommandresponse" : cmdObj.getCommandName()); - // FIXME: setting resultCode to ApiErrorCode.INTERNAL_ERROR is not right, usually executors have their exception handling - // and we need to preserve that as much as possible here - _asyncJobMgr.completeAsyncJob(job.getId(), JobInfo.Status.FAILED, ApiErrorCode.INTERNAL_ERROR.getHttpCode(), ApiSerializerHelper.toSerializedString(response)); + _asyncJobMgr.completeAsyncJob(job.getId(), JobInfo.Status.FAILED, errorCode, ApiSerializerHelper.toSerializedString(response)); } } }