in data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java [285:358]
public void searchStoragePreference(StoragePreferenceSearchRequest request, StreamObserver<StoragePreferenceSearchResponse> responseObserver) {
try {
AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
List<AnyStoragePreference> anyStoragePreferenceList = new ArrayList<>();
try (SharingManagementClient sharingManagementClient = custosClientProvider.getSharingManagementClient()) {
SearchCriteria searchCriteria = SearchCriteria.newBuilder()
.setSearchField(EntitySearchField.ENTITY_TYPE_ID)
.setCondition(SearchCondition.EQUAL)
.setValue(StoragePreferenceConstants.STORAGE_PREFERENCE_LABEL).build();
SearchRequest searchRequest = SearchRequest.newBuilder().setOwnerId(callUser.getUsername())
.addSearchCriteria(searchCriteria).build();
Entities entities = sharingManagementClient.searchEntities(callUser.getTenantId(),
searchRequest);
List<Entity> entityList = entities.getEntityArrayList();
entityList.forEach(entity -> {
Optional<Resource> resource = resourceRepository.findById(entity.getId());
if (resource.isPresent()) {
String storageId = resource.get().getParentResourceId();
if (request.getQueriesList().size() > 0) {
request.getQueriesList().forEach(query -> {
if (query.getField().equals("storageId") && query.getValue().equals(storageId)) {
Optional<Resource> storageOptional = resourceRepository.findById(storageId);
if (storageOptional.isPresent()) {
try {
AnyStorage anyStorage = StorageMapper.map(storageOptional.get());
AnyStoragePreference anyStoragePreference = StoragePreferenceMapper.map(resource.get(), anyStorage);
anyStoragePreferenceList.add(anyStoragePreference);
} catch (Exception exception) {
logger.error(" Mapping error ", exception);
}
}
}
});
} else {
Optional<Resource> storageOptional = resourceRepository.findById(storageId);
if (storageOptional.isPresent()) {
try {
AnyStorage anyStorage = StorageMapper.map(storageOptional.get());
AnyStoragePreference anyStoragePreference = StoragePreferenceMapper.map(resource.get(), anyStorage);
anyStoragePreferenceList.add(anyStoragePreference);
} catch (Exception exception) {
logger.error(" Mapping error ", exception);
}
}
}
}
});
}
StoragePreferenceSearchResponse.Builder builder = StoragePreferenceSearchResponse.newBuilder();
builder.addAllStoragesPreference(anyStoragePreferenceList);
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
} catch (Exception e) {
String msg = "Errored while searching storage preferences; Message:" + e.getMessage();
logger.error("Errored while searching storage preferences; Message: {}", e.getMessage(), e);
responseObserver.onError(io.grpc.Status.INTERNAL.withDescription(msg).asRuntimeException());
}
}