in data-resource-management-service/drms-graph-impl/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java [946:990]
public void fetchResourceMetadata(FetchResourceMetadataRequest
request, StreamObserver<FetchResourceMetadataResponse> responseObserver) {
try {
AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
String resourceId = request.getResourceId();
String type = request.getType();
if (type == null || type.isEmpty()) {
type = "";
} else {
type = ":" + type;
}
if (hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), resourceId)) {
Optional<List<String>> metadataArray = readMetadata(resourceId, type, callUser.getTenantId());
FetchResourceMetadataResponse.Builder builder = FetchResourceMetadataResponse.newBuilder();
if (metadataArray.isPresent()) {
metadataArray.get().forEach(val -> {
try {
Struct.Builder structBuilder = Struct.newBuilder();
JsonFormat.parser().merge(val, structBuilder);
builder.addMetadata(structBuilder.build());
} catch (InvalidProtocolBufferException e) {
String msg = " Error occurred while fetching resource metadata " + e.getMessage();
logger.error(" Error occurred while fetching resource metadata: Messages {} ", e.getMessage(), e);
responseObserver.onError(Status.INTERNAL.withDescription(msg).asRuntimeException());
return;
}
});
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
} else {
String msg = " Cannot find accessible resource ";
logger.error(" Cannot find accessible resource");
responseObserver.onError(Status.PERMISSION_DENIED.withDescription(msg).asRuntimeException());
}
} catch (Exception ex) {
String msg = " Error occurred while fetching resource metadata " + ex.getMessage();
logger.error(" Error occurred while fetching resource metadata: Messages {} ", ex.getMessage(), ex);
responseObserver.onError(Status.INTERNAL.withDescription(msg).asRuntimeException());
}
}