public void updateStoragePreference()

in data-resource-management-service/drms-graph-impl/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java [187:235]


    public void updateStoragePreference(StoragePreferenceUpdateRequest request, StreamObserver<StoragePreferenceUpdateResponse> responseObserver) {
        try {
            AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();

            AnyStoragePreference storage = request.getStoragePreference();
            Map<String, Object> serializedMap = AnyStoragePreferenceSerializer.serializeToMap(storage);
            String storagePreferenceId = (String) serializedMap.get("storagePreferenceId");
            serializedMap.remove("storage");
            String storageId = null;
            Map<String, Object> parentPropertiesMap = null;
            if (storage.getStorageCase().name()
                    .equals(AnyStoragePreference.StorageCase.S3_STORAGE_PREFERENCE)) {
                storageId = storage.getS3StoragePreference().getStorage().getStorageId();
                parentPropertiesMap = AnyStorageSerializer.serializeToMap(AnyStorage
                        .newBuilder().setS3Storage(storage.getS3StoragePreference().getStorage()).build());

            } else if (storage.getStorageCase()
                    .equals(AnyStoragePreference.StorageCase.SSH_STORAGE_PREFERENCE)) {

                storageId = storage.getSshStoragePreference().getStorage().getStorageId();
                parentPropertiesMap = AnyStorageSerializer.serializeToMap(AnyStorage
                        .newBuilder().setSshStorage(storage.getSshStoragePreference().getStorage()).build());
            } else if (storage.getStorageCase()
                    .equals(AnyStoragePreference.StorageCase.SDA_STORAGE_PREFERENCE)) {

                storageId = storage.getSdaStoragePreference().getStorage().getStorageId();
                parentPropertiesMap = AnyStorageSerializer.serializeToMap(AnyStorage
                        .newBuilder().setSshStorage(storage.getSdaStoragePreference().getStorage()).build());
            }


            if (storageId != null) {
                CustosUtils.
                        mergeStoragePreferenceEntity(custosClientProvider, callUser.getTenantId(),
                                storagePreferenceId, storageId, callUser.getUsername());

                this.neo4JConnector.mergeNodesWithParentChildRelationShip(serializedMap, parentPropertiesMap,
                        StoragePreferenceConstants.STORAGE_PREFERENCE_LABEL, StorageConstants.STORAGE_LABEL,
                        callUser.getUsername(), storagePreferenceId, storageId, callUser.getTenantId());
            }
            StoragePreferenceUpdateResponse response = StoragePreferenceUpdateResponse.newBuilder().setStoragePreference(storage).build();
            responseObserver.onNext(response);
            responseObserver.onCompleted();
        } catch (Exception ex) {
            String msg = "Errored while updating storage; Message: {}" + ex.getMessage();
            logger.error(msg, ex);
            responseObserver.onError(io.grpc.Status.INTERNAL.withDescription(msg).asRuntimeException());
        }
    }