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 <[email protected]>
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());
 

Reply via email to