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());