in data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java [267:315]
public void updateResource(ResourceUpdateRequest
request, StreamObserver<ResourceUpdateResponse> responseObserver) {
try {
AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
String type = request.getResource().getType();
String parentId = request.getResource().getParentId();
String entityId = request.getResource().getResourceId();
String name = request.getResource().getResourceName();
Optional<Resource> exResource = resourceRepository.findById(entityId);
if (exResource.isPresent()) {
List<ResourceProperty> resourceProperties = resourcePropertyRepository.
findByPropertyKeyAndResourceId("owner", exResource.get().getId());
if (parentId == null || parentId.isEmpty())
parentId = exResource.get().getParentResourceId();
if (!resourceProperties.isEmpty()) {
Optional<Entity> exEntity = CustosUtils.mergeResourceEntity(custosClientProvider, callUser.getTenantId(),
parentId, type, entityId,
request.getResource().getResourceName(), request.getResource().getResourceName(),
resourceProperties.get(0).getPropertyValue());
if (exEntity.isPresent()) {
Resource resource = ResourceMapper.map(request.getResource(), exResource.get(), exEntity.get(), callUser);
resource.setResourceType(type);
resource.setParentResourceId(parentId);
resourceRepository.save(resource);
GenericResource genericResource = ResourceMapper.map(resource, exEntity.get());
ResourceUpdateResponse response = ResourceUpdateResponse
.newBuilder()
.setResource(genericResource)
.build();
responseObserver.onNext(response);
responseObserver.onCompleted();
return;
}
}
}
//TODO: Error
} catch (Exception ex) {
logger.error("Error occurred while creating resource {}", request.getResource().getResourceId(), ex);
String msg = "Error occurred while creating resource" + ex.getMessage();
responseObserver.onError(Status.INTERNAL.withDescription(msg).asRuntimeException());
}
}