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 2021/01/27 18:05:55 UTC

[airavata-mft] branch master updated: Fixing SCP storage loading issue in file backend

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 f1ce313  Fixing SCP storage loading issue in file backend
f1ce313 is described below

commit f1ce313fa11854689aa4f048f7cf07b060e7a9c6
Author: Dimuthu Wannipurage <di...@gmail.com>
AuthorDate: Wed Jan 27 13:05:40 2021 -0500

    Fixing SCP storage loading issue in file backend
---
 .../backend/file/FileBasedResourceBackend.java     | 41 +++++++++++++++-------
 1 file changed, 28 insertions(+), 13 deletions(-)

diff --git a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/file/FileBasedResourceBackend.java b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/file/FileBasedResourceBackend.java
index eace41a..d127d6a 100644
--- a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/file/FileBasedResourceBackend.java
+++ b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/file/FileBasedResourceBackend.java
@@ -137,21 +137,36 @@ public class FileBasedResourceBackend implements ResourceBackend {
                     .map(resource -> {
                         JSONObject r = (JSONObject) resource;
 
-                        SCPResource.Builder builder = SCPResource.newBuilder()
-                                .setResourceId(r.get("resourceId").toString())
-                                .setScpStorage(SCPStorage.newBuilder().setStorageId(r.get("storageId").toString()).getDefaultInstanceForType());
+                        Optional<SCPStorage> storage = Optional.of(SCPStorage.getDefaultInstance());
+                        String storageId = r.get("storageId").toString();
+
+                        try {
+                            storage = getSCPStorage(SCPStorageGetRequest.newBuilder().setStorageId(storageId).build());
+                        } catch (Exception e) {
+                            logger.error("Errored while fetching storage with id {}", storageId, e);
+                            return null;
+                        }
 
-                        switch (r.get("resourceMode").toString()) {
-                            case "FILE":
-                                FileResource fileResource = FileResource.newBuilder().setResourcePath(r.get("resourcePath").toString()).build();
-                                builder = builder.setFile(fileResource);
-                                break;
-                            case "DIRECTORY":
-                                DirectoryResource directoryResource = DirectoryResource.newBuilder().setResourcePath(r.get("resourcePath").toString()).build();
-                                builder = builder.setDirectory(directoryResource);
-                                break;
+                        if (storage.isPresent()) {
+                            SCPResource.Builder builder = SCPResource.newBuilder()
+                                    .setResourceId(r.get("resourceId").toString())
+                                    .setScpStorage(storage.get());
+
+                            switch (r.get("resourceMode").toString()) {
+                                case "FILE":
+                                    FileResource fileResource = FileResource.newBuilder().setResourcePath(r.get("resourcePath").toString()).build();
+                                    builder = builder.setFile(fileResource);
+                                    break;
+                                case "DIRECTORY":
+                                    DirectoryResource directoryResource = DirectoryResource.newBuilder().setResourcePath(r.get("resourcePath").toString()).build();
+                                    builder = builder.setDirectory(directoryResource);
+                                    break;
+                            }
+                            return builder.build();
+                        } else {
+                            logger.error("Coudn't find an storage with id {}", storageId);
+                            return null;
                         }
-                        return builder.build();
 
                     }).collect(Collectors.toList());