You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by di...@apache.org on 2022/04/05 23:19:48 UTC
[airavata-mft] branch master updated: Proper error handling for transfer API
This is an automated email from the ASF dual-hosted git repository.
dimuthuupe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-mft.git
The following commit(s) were added to refs/heads/master by this push:
new e14d60b Proper error handling for transfer API
e14d60b is described below
commit e14d60b91bd760ac9d8e0134b0e3f7dd6ff4dc0a
Author: Dimuthu Wannipurage <di...@gmail.com>
AuthorDate: Tue Apr 5 19:19:40 2022 -0400
Proper error handling for transfer API
---
.../airavata/mft/api/handler/MFTApiHandler.java | 55 ++++++++++++++++------
1 file changed, 40 insertions(+), 15 deletions(-)
diff --git a/api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java b/api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java
index cfca425..7e5d525 100644
--- a/api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java
+++ b/api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java
@@ -19,6 +19,7 @@ package org.apache.airavata.mft.api.handler;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.protobuf.util.JsonFormat;
+import io.grpc.Status;
import io.grpc.stub.StreamObserver;
import org.apache.airavata.mft.admin.MFTConsulClient;
import org.apache.airavata.mft.admin.SyncRPCClient;
@@ -85,7 +86,9 @@ public class MFTApiHandler extends MFTTransferServiceGrpc.MFTTransferServiceImpl
responseObserver.onCompleted();
} catch (Exception e) {
logger.error("Error in submitting transfer request", e);
- responseObserver.onError(new Exception("Failed to submit transfer", e));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Failed to submit http download request. " + e.getMessage())
+ .asException());
}
}
@@ -127,14 +130,19 @@ public class MFTApiHandler extends MFTTransferServiceGrpc.MFTTransferServiceImpl
case FAIL:
logger.error("Errored while processing the download request to resource {}. Error msg : {}",
request.getSourceResourceId(), rpcResponse.getErrorAsStr());
- responseObserver.onError(new Exception("Errored while processing the the fetch file metadata response. Error msg : " +
- rpcResponse.getErrorAsStr()));
+
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Errored while processing the the fetch file metadata response. Error msg : " +
+ rpcResponse.getErrorAsStr())
+ .asException());
}
} catch (Exception e) {
logger.error("Error while submitting http download request to resource {}",
request.getSourceResourceId() , e);
- responseObserver.onError(new Exception("Failed to submit http download request", e));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Failed to submit http download request. " + e.getMessage())
+ .asException());
}
}
@@ -149,7 +157,9 @@ public class MFTApiHandler extends MFTTransferServiceGrpc.MFTTransferServiceImpl
responseObserver.onCompleted();
} catch (Exception e) {
logger.error("Error in fetching transfer states", e);
- responseObserver.onError(new Exception("Failed to retrieve transfer states", e));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Failed to retrieve transfer states. " + e.getMessage())
+ .asException());
}
}
@@ -162,13 +172,18 @@ public class MFTApiHandler extends MFTTransferServiceGrpc.MFTTransferServiceImpl
TransferStateApiResponse s = dozerBeanMapper.map(stateOp.get(),
TransferStateApiResponse.newBuilder().getClass()).build();
responseObserver.onNext(s);
+ responseObserver.onCompleted();
} else {
- responseObserver.onNext(TransferStateApiResponse.getDefaultInstance());
+ logger.error("There is no state for transfer " + request.getTransferId());
+ responseObserver.onError(Status.NOT_FOUND
+ .withDescription("There is no state for transfer " + request.getTransferId())
+ .asRuntimeException());
}
- responseObserver.onCompleted();
} catch (Exception e) {
logger.error("Error in fetching transfer state", e);
- responseObserver.onError(new Exception("Failed to retrieve transfer state", e));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Failed to retrieve transfer state. " + e.getMessage())
+ .asException());
}
}
@@ -187,7 +202,9 @@ public class MFTApiHandler extends MFTTransferServiceGrpc.MFTTransferServiceImpl
} catch (Exception e) {
logger.error("Error while checking availability of resource " + request.getResourceId(), e);
- responseObserver.onError(new Exception("Failed to check the availability", e));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Failed to check the availability. " + e.getMessage())
+ .asException());
}
}
@@ -235,12 +252,16 @@ public class MFTApiHandler extends MFTTransferServiceGrpc.MFTTransferServiceImpl
case FAIL:
logger.error("Errored while processing the fetch file metadata response for resource id {}. Error msg : {}",
request.getResourceId(), rpcResponse.getErrorAsStr());
- responseObserver.onError(new Exception("Errored while processing the the fetch file metadata response. Error msg : " +
- rpcResponse.getErrorAsStr()));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Errored while processing the the fetch file metadata response. Error msg : " +
+ rpcResponse.getErrorAsStr())
+ .asException());
}
} catch (Exception e) {
logger.error("Error while fetching resource metadata for file resource " + request.getResourceId(), e);
- responseObserver.onError(new Exception("Failed to fetch file resource metadata", e));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Failed to fetch file resource metadata. " + e.getMessage())
+ .asException());
}
}
@@ -301,12 +322,16 @@ public class MFTApiHandler extends MFTTransferServiceGrpc.MFTTransferServiceImpl
case FAIL:
logger.error("Errored while processing the fetch directory metadata response for resource id {}. Error msg : {}",
request.getResourceId(), rpcResponse.getErrorAsStr());
- responseObserver.onError(new Exception("Errored while processing the the fetch directory metadata response. Error msg : " +
- rpcResponse.getErrorAsStr()));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Errored while processing the the fetch directory metadata response. Error msg : " +
+ rpcResponse.getErrorAsStr())
+ .asException());
}
} catch (Exception e) {
logger.error("Error while fetching directory resource metadata for resource " + request.getResourceId(), e);
- responseObserver.onError(new Exception("Failed to fetch directory resource metadata", e));
+ responseObserver.onError(Status.INTERNAL
+ .withDescription("Failed to fetch directory resource metadata. " + e.getMessage())
+ .asException());
}
}