Extracting out storage information from resources
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 151f868..3841409 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
@@ -19,15 +19,21 @@
import org.apache.airavata.mft.resource.server.backend.ResourceBackend;
import org.apache.airavata.mft.resource.stubs.azure.resource.*;
+import org.apache.airavata.mft.resource.stubs.azure.storage.AzureStorage;
import org.apache.airavata.mft.resource.stubs.box.resource.*;
+import org.apache.airavata.mft.resource.stubs.box.storage.BoxStorage;
import org.apache.airavata.mft.resource.stubs.common.DirectoryResource;
import org.apache.airavata.mft.resource.stubs.common.FileResource;
import org.apache.airavata.mft.resource.stubs.dropbox.resource.*;
+import org.apache.airavata.mft.resource.stubs.dropbox.storage.DropboxStorage;
import org.apache.airavata.mft.resource.stubs.ftp.resource.*;
import org.apache.airavata.mft.resource.stubs.ftp.storage.*;
import org.apache.airavata.mft.resource.stubs.gcs.resource.*;
+import org.apache.airavata.mft.resource.stubs.gcs.storage.GCSStorage;
import org.apache.airavata.mft.resource.stubs.local.resource.*;
+import org.apache.airavata.mft.resource.stubs.local.storage.LocalStorage;
import org.apache.airavata.mft.resource.stubs.s3.resource.*;
+import org.apache.airavata.mft.resource.stubs.s3.storage.S3Storage;
import org.apache.airavata.mft.resource.stubs.scp.resource.*;
import org.apache.airavata.mft.resource.stubs.scp.storage.*;
import org.json.simple.JSONArray;
@@ -164,7 +170,14 @@
.map(resource -> {
JSONObject r = (JSONObject) resource;
- LocalResource.Builder builder = LocalResource.newBuilder().setResourceId(r.get("resourceId").toString());
+ LocalStorage storage = LocalStorage.newBuilder()
+ .setStorageId(((JSONObject)r.get("localStorage")).get("storageId").toString())
+ .setAgentId(((JSONObject)r.get("localStorage")).get("agentId").toString())
+ .build();
+
+ LocalResource.Builder builder = LocalResource.newBuilder()
+ .setLocalStorage(storage)
+ .setResourceId(r.get("resourceId").toString());
switch (r.get("resourceMode").toString()) {
case "FILE":
@@ -215,10 +228,15 @@
.map(resource -> {
JSONObject r = (JSONObject) resource;
+ S3Storage storage = S3Storage.newBuilder()
+ .setStorageId(((JSONObject)r.get("s3Storage")).get("storageId").toString())
+ .setRegion(((JSONObject)r.get("s3Storage")).get("region").toString())
+ .setRegion(((JSONObject)r.get("s3Storage")).get("bucketName").toString())
+ .build();
+
S3Resource.Builder builder = S3Resource.newBuilder()
.setResourceId(r.get("resourceId").toString())
- .setBucketName(r.get("bucketName").toString())
- .setRegion(r.get("region").toString());
+ .setS3Storage(storage);
switch (r.get("resourceMode").toString()) {
case "FILE":
@@ -271,7 +289,12 @@
.map(resource -> {
JSONObject r = (JSONObject) resource;
+ BoxStorage storage = BoxStorage.newBuilder()
+ .setStorageId(((JSONObject)r.get("boxStorage")).get("storageId").toString())
+ .build();
+
BoxResource.Builder builder = BoxResource.newBuilder()
+ .setBoxStorage(storage)
.setResourceId(r.get("resourceId").toString());
switch (r.get("resourceMode").toString()) {
@@ -321,8 +344,13 @@
.map(resource -> {
JSONObject r = (JSONObject) resource;
+ AzureStorage storage = AzureStorage.newBuilder()
+ .setStorageId(((JSONObject)r.get("azureStorage")).get("storageId").toString())
+ .setContainer(((JSONObject)r.get("azureStorage")).get("container").toString())
+ .build();
+
AzureResource.Builder builder = AzureResource.newBuilder()
- .setContainer(r.get("container").toString())
+ .setAzureStorage(storage)
.setResourceId(r.get("resourceId").toString());
switch (r.get("resourceMode").toString()) {
@@ -372,8 +400,13 @@
.map(resource -> {
JSONObject r = (JSONObject) resource;
+ GCSStorage storage = GCSStorage.newBuilder()
+ .setStorageId(((JSONObject)r.get("gcsStorage")).get("storageId").toString())
+ .setBucketName(((JSONObject)r.get("gcsStorage")).get("bucketName").toString())
+ .build();
+
GCSResource.Builder builder = GCSResource.newBuilder()
- .setBucketName(r.get("bucketName").toString())
+ .setGcsStorage(storage)
.setResourceId(r.get("resourceId").toString());
switch (r.get("resourceMode").toString()) {
@@ -423,8 +456,14 @@
JSONObject r = (JSONObject) resource;
String resourcePath = r.get("resourcePath").toString();
resourcePath = resourcePath.startsWith("/") ? resourcePath : "/" + resourcePath;
+
+ DropboxStorage storage = DropboxStorage.newBuilder()
+ .setStorageId(((JSONObject)r.get("dropboxStorage")).get("storageId").toString())
+ .build();
+
DropboxResource.Builder builder = DropboxResource.newBuilder()
- .setResourceId(r.get("resourceId").toString());
+ .setResourceId(r.get("resourceId").toString())
+ .setDropboxStorage(storage);
switch (r.get("resourceMode").toString()) {
case "FILE":
diff --git a/services/resource-service/server/src/main/resources/resources.json b/services/resource-service/server/src/main/resources/resources.json
index 9d430db..83e009f 100644
--- a/services/resource-service/server/src/main/resources/resources.json
+++ b/services/resource-service/server/src/main/resources/resources.json
@@ -27,47 +27,69 @@
"type": "LOCAL",
"resourceId": "10mb-file",
"resourceMode": "FILE",
- "resourcePath": "/tmp/10mb.txt"
+ "resourcePath": "/tmp/10mb.txt",
+ "localStorage": {
+ "storageId": "local-storage-1",
+ "agentId": "agent-0"
+ }
},
{
"type": "S3",
"resourceId": "s3-file",
"resourceMode": "FILE",
"resourcePath": "10mb-s3.txt",
- "region": "us-east-2",
- "bucketName": "airavata-s3"
+ "s3Storage": {
+ "storageId": "s3-storage-1",
+ "region": "us-east-2",
+ "bucketName": "airavata-s3"
+ }
},
{
"type": "BOX",
"resourceId": "box-file-abcd",
"resourceMode": "FILE",
- "resourcePath": "655108198452"
+ "resourcePath": "655108198452",
+ "boxStorage" : {
+ "storageId": "box-storage-1"
+ }
},
{
"type": "BOX",
"resourceId": "box-file-efgh",
"resourceMode": "FILE",
- "resourcePath": "655450661536"
+ "resourcePath": "655450661536",
+ "boxStorage" : {
+ "storageId": "box-storage-1"
+ }
},
{
"type": "AZURE",
"resourceId": "azure-blob",
- "container": "sample-container",
"resourceMode": "FILE",
- "resourcePath": "sample.blob"
+ "resourcePath": "sample.blob",
+ "azureStorage" : {
+ "storageId": "azure-storage-1",
+ "container": "sample-container"
+ }
},
{
"type": "GCS",
"resourceId": "gcs-bucket",
"resourceMode": "FILE",
- "bucketName": "pika-pika-bucket",
- "resourcePath": "PikaPikaTest.txt"
+ "resourcePath": "PikaPikaTest.txt",
+ "gcsStorage": {
+ "storageId": "gcs-storage-1",
+ "bucketName": "pika-pika-bucket"
+ }
},
{
"type": "DROPBOX",
"resourceId": "dropbox-file",
"resourceMode": "FILE",
- "resourcePath": "/test.txt"
+ "resourcePath": "/test.txt",
+ "dropboxStorage": {
+ "storageId": "dropbox-storage-1"
+ }
},
{
"type": "FTP",
diff --git a/services/resource-service/stub/src/main/proto/azure/AzureResource.proto b/services/resource-service/stub/src/main/proto/azure/AzureResource.proto
index 084fbc5..3dac3ed 100644
--- a/services/resource-service/stub/src/main/proto/azure/AzureResource.proto
+++ b/services/resource-service/stub/src/main/proto/azure/AzureResource.proto
@@ -21,10 +21,11 @@
package org.apache.airavata.mft.resource.stubs.azure.resource;
import "common/common.proto";
+import "azure/AzureStorage.proto";
message AzureResource {
string resourceId = 1;
- string container = 2;
+ org.apache.airavata.mft.resource.stubs.azure.storage.AzureStorage azureStorage = 2;
oneof resource {
org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
@@ -36,14 +37,20 @@
}
message AzureResourceCreateRequest {
- string container = 1;
- string blobName = 2;
+ string storageId = 1;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
}
message AzureResourceUpdateRequest {
string resourceId = 1;
- string container = 2;
- string blobName = 3;
+ string storageId = 2;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
}
message AzureResourceDeleteRequest {
diff --git a/services/resource-service/stub/src/main/proto/azure/AzureService.proto b/services/resource-service/stub/src/main/proto/azure/AzureService.proto
index b6a19c7..14a9cbc 100644
--- a/services/resource-service/stub/src/main/proto/azure/AzureService.proto
+++ b/services/resource-service/stub/src/main/proto/azure/AzureService.proto
@@ -23,8 +23,39 @@
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "azure/AzureResource.proto";
+import "azure/AzureStorage.proto";
service AzureResourceService {
+
+ // Storage
+
+ rpc getAzureStorage (org.apache.airavata.mft.resource.stubs.azure.storage.AzureStorageGetRequest) returns
+ (org.apache.airavata.mft.resource.stubs.azure.storage.AzureStorage) {
+ option (google.api.http) = {
+ get: "/v1.0/resource/azure/storage"
+ };
+ }
+
+ rpc createAzureStorage (org.apache.airavata.mft.resource.stubs.azure.storage.AzureStorageCreateRequest) returns
+ (org.apache.airavata.mft.resource.stubs.azure.storage.AzureStorage) {
+ option (google.api.http) = {
+ post: "/v1.0/resource/azure/storage"
+ };
+ }
+
+ rpc updateAzureStorage (org.apache.airavata.mft.resource.stubs.azure.storage.AzureStorageUpdateRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ put: "/v1.0/resource/azure/storage"
+ };
+ }
+
+ rpc deleteAzureStorage (org.apache.airavata.mft.resource.stubs.azure.storage.AzureStorageDeleteRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1.0/resource/azure/storage"
+ };
+ }
+
+ // Resource
rpc getAzureResource (org.apache.airavata.mft.resource.stubs.azure.resource.AzureResourceGetRequest) returns
(org.apache.airavata.mft.resource.stubs.azure.resource.AzureResource) {
diff --git a/services/resource-service/stub/src/main/proto/azure/AzureStorage.proto b/services/resource-service/stub/src/main/proto/azure/AzureStorage.proto
new file mode 100644
index 0000000..7893c44
--- /dev/null
+++ b/services/resource-service/stub/src/main/proto/azure/AzureStorage.proto
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.mft.resource.stubs.azure.storage;
+
+message AzureStorage {
+ string storageId = 1;
+ string container = 2;
+}
+
+message AzureStorageGetRequest {
+ string storageId = 1;
+}
+
+message AzureStorageCreateRequest {
+ string container = 1;
+}
+
+message AzureStorageUpdateRequest {
+ string storageId = 1;
+ string container = 2;
+}
+
+message AzureStorageDeleteRequest {
+ string storageId = 1;
+}
\ No newline at end of file
diff --git a/services/resource-service/stub/src/main/proto/box/BoxResource.proto b/services/resource-service/stub/src/main/proto/box/BoxResource.proto
index 7899fdb..94d5da7 100644
--- a/services/resource-service/stub/src/main/proto/box/BoxResource.proto
+++ b/services/resource-service/stub/src/main/proto/box/BoxResource.proto
@@ -21,25 +21,36 @@
package org.apache.airavata.mft.resource.stubs.box.resource;
import "common/common.proto";
+import "box/BoxStorage.proto";
message BoxResource {
string resourceId = 1;
+ org.apache.airavata.mft.resource.stubs.box.storage.BoxStorage boxStorage = 2;
oneof resource {
- org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
- org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
- }}
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
+}
message BoxResourceGetRequest {
string resourceId = 1;
}
message BoxResourceCreateRequest {
- string boxFileId = 1;
+ string storageId = 1;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
+ }
}
message BoxResourceUpdateRequest {
string resourceId = 1;
- string boxFileId = 2;
+ string storageId = 2;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
}
message BoxResourceDeleteRequest {
diff --git a/services/resource-service/stub/src/main/proto/box/BoxService.proto b/services/resource-service/stub/src/main/proto/box/BoxService.proto
index def7858..817c19d 100644
--- a/services/resource-service/stub/src/main/proto/box/BoxService.proto
+++ b/services/resource-service/stub/src/main/proto/box/BoxService.proto
@@ -23,8 +23,40 @@
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "box/BoxResource.proto";
+import "box/BoxStorage.proto";
service BoxResourceService {
+
+ // Storage
+
+ rpc getBoxStorage (org.apache.airavata.mft.resource.stubs.box.storage.BoxStorageGetRequest) returns
+ (org.apache.airavata.mft.resource.stubs.box.storage.BoxStorage) {
+ option (google.api.http) = {
+ get: "/v1.0/resource/box/storage"
+ };
+ }
+
+ rpc createBoxStorage (org.apache.airavata.mft.resource.stubs.box.storage.BoxStorageCreateRequest) returns
+ (org.apache.airavata.mft.resource.stubs.box.storage.BoxStorage) {
+ option (google.api.http) = {
+ post: "/v1.0/resource/box/storage"
+ };
+ }
+
+ rpc updateBoxStorage (org.apache.airavata.mft.resource.stubs.box.storage.BoxStorageUpdateRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ put: "/v1.0/resource/box/storage"
+ };
+ }
+
+ rpc deleteBoxStorage (org.apache.airavata.mft.resource.stubs.box.storage.BoxStorageDeleteRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1.0/resource/box/storage"
+ };
+ }
+
+ // Resource
+
rpc getBoxResource (org.apache.airavata.mft.resource.stubs.box.resource.BoxResourceGetRequest) returns
(org.apache.airavata.mft.resource.stubs.box.resource.BoxResource) {
option (google.api.http) = {
diff --git a/services/resource-service/stub/src/main/proto/box/BoxStorage.proto b/services/resource-service/stub/src/main/proto/box/BoxStorage.proto
new file mode 100644
index 0000000..c198706
--- /dev/null
+++ b/services/resource-service/stub/src/main/proto/box/BoxStorage.proto
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.mft.resource.stubs.box.storage;
+
+message BoxStorage {
+ string storageId = 1;
+}
+
+message BoxStorageGetRequest {
+ string storageId = 1;
+}
+
+message BoxStorageCreateRequest {
+}
+
+message BoxStorageUpdateRequest {
+ string storageId = 1;
+}
+
+message BoxStorageDeleteRequest {
+ string storageId = 1;
+}
+
+
diff --git a/services/resource-service/stub/src/main/proto/dropbox/DropboxResource.proto b/services/resource-service/stub/src/main/proto/dropbox/DropboxResource.proto
index 6ae5af9..8b90aab 100644
--- a/services/resource-service/stub/src/main/proto/dropbox/DropboxResource.proto
+++ b/services/resource-service/stub/src/main/proto/dropbox/DropboxResource.proto
@@ -21,12 +21,14 @@
package org.apache.airavata.mft.resource.stubs.dropbox.resource;
import "common/common.proto";
+import "dropbox/DropboxStorage.proto";
message DropboxResource {
string resourceId = 1;
+ org.apache.airavata.mft.resource.stubs.dropbox.storage.DropboxStorage dropboxStorage = 2;
oneof resource {
- org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
- org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
}
}
@@ -35,13 +37,20 @@
}
message DropboxResourceCreateRequest {
- string resourcePath = 1;
+ string storageId = 1;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
+ }
}
message DropboxResourceUpdateRequest {
string resourceId = 1;
- string resourcePath = 2;
-}
+ string storageId = 2;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }}
message DropboxResourceDeleteRequest {
string resourceId = 1;
diff --git a/services/resource-service/stub/src/main/proto/dropbox/DropboxService.proto b/services/resource-service/stub/src/main/proto/dropbox/DropboxService.proto
index 7c56fa5..dab3d4b 100644
--- a/services/resource-service/stub/src/main/proto/dropbox/DropboxService.proto
+++ b/services/resource-service/stub/src/main/proto/dropbox/DropboxService.proto
@@ -23,8 +23,40 @@
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "dropbox/DropboxResource.proto";
+import "dropbox/DropboxStorage.proto";
service DropboxService {
+
+ // Storage
+
+ rpc getDropboxStorage (org.apache.airavata.mft.resource.stubs.dropbox.storage.DropboxStorageGetRequest) returns
+ (org.apache.airavata.mft.resource.stubs.dropbox.storage.DropboxStorage) {
+ option (google.api.http) = {
+ get: "/v1.0/resource/dropbox/storage"
+ };
+ }
+
+ rpc createDropboxStorage (org.apache.airavata.mft.resource.stubs.dropbox.storage.DropboxStorageCreateRequest) returns
+ (org.apache.airavata.mft.resource.stubs.dropbox.storage.DropboxStorage) {
+ option (google.api.http) = {
+ post: "/v1.0/resource/dropbox/storage"
+ };
+ }
+
+ rpc updateDropboxStorage (org.apache.airavata.mft.resource.stubs.dropbox.storage.DropboxStorageUpdateRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ put: "/v1.0/resource/dropbox/storage"
+ };
+ }
+
+ rpc deleteDropboxStorage (org.apache.airavata.mft.resource.stubs.dropbox.storage.DropboxStorageDeleteRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1.0/resource/dropbox/storage"
+ };
+ }
+
+ // Resource
+
rpc getDropboxResource (org.apache.airavata.mft.resource.stubs.dropbox.resource.DropboxResourceGetRequest) returns
(org.apache.airavata.mft.resource.stubs.dropbox.resource.DropboxResource) {
option (google.api.http) = {
diff --git a/services/resource-service/stub/src/main/proto/dropbox/DropboxStorage.proto b/services/resource-service/stub/src/main/proto/dropbox/DropboxStorage.proto
new file mode 100644
index 0000000..dd8b18f
--- /dev/null
+++ b/services/resource-service/stub/src/main/proto/dropbox/DropboxStorage.proto
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.mft.resource.stubs.dropbox.storage;
+
+message DropboxStorage {
+ string storageId = 1;
+}
+
+message DropboxStorageGetRequest {
+ string storageId = 1;
+}
+
+message DropboxStorageCreateRequest {
+}
+
+message DropboxStorageUpdateRequest {
+ string storageId = 1;
+}
+
+message DropboxStorageDeleteRequest {
+ string storageId = 1;
+}
+
+
diff --git a/services/resource-service/stub/src/main/proto/ftp/FTPResource.proto b/services/resource-service/stub/src/main/proto/ftp/FTPResource.proto
index 2ba2b9e..6710b77 100644
--- a/services/resource-service/stub/src/main/proto/ftp/FTPResource.proto
+++ b/services/resource-service/stub/src/main/proto/ftp/FTPResource.proto
@@ -37,14 +37,20 @@
}
message FTPResourceCreateRequest {
- string ftpStorageId = 1;
- string resourcePath = 2;
+ string storageId = 1;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
+ }
}
message FTPResourceUpdateRequest {
string resourceId = 1;
- string FTPStorageId = 2;
- string resourcePath = 3;
+ string storageId = 2;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
}
message FTPResourceDeleteRequest {
diff --git a/services/resource-service/stub/src/main/proto/ftp/FTPService.proto b/services/resource-service/stub/src/main/proto/ftp/FTPService.proto
index 4bce679..af06362 100644
--- a/services/resource-service/stub/src/main/proto/ftp/FTPService.proto
+++ b/services/resource-service/stub/src/main/proto/ftp/FTPService.proto
@@ -27,7 +27,6 @@
service FTPResourceService {
-
rpc getFTPStorage (org.apache.airavata.mft.resource.stubs.ftp.storage.FTPStorageGetRequest) returns
(org.apache.airavata.mft.resource.stubs.ftp.storage.FTPStorage) {
option (google.api.http) = {
diff --git a/services/resource-service/stub/src/main/proto/ftp/FTPStorage.proto b/services/resource-service/stub/src/main/proto/ftp/FTPStorage.proto
index 1473af9..51ec2ff 100644
--- a/services/resource-service/stub/src/main/proto/ftp/FTPStorage.proto
+++ b/services/resource-service/stub/src/main/proto/ftp/FTPStorage.proto
@@ -20,7 +20,6 @@
option java_multiple_files = true;
package org.apache.airavata.mft.resource.stubs.ftp.storage;
-
message FTPStorage {
string storageId = 1;
string host = 2;
diff --git a/services/resource-service/stub/src/main/proto/gcs/GCSResource.proto b/services/resource-service/stub/src/main/proto/gcs/GCSResource.proto
index 36f3c33..740c732 100644
--- a/services/resource-service/stub/src/main/proto/gcs/GCSResource.proto
+++ b/services/resource-service/stub/src/main/proto/gcs/GCSResource.proto
@@ -21,10 +21,11 @@
package org.apache.airavata.mft.resource.stubs.gcs.resource;
import "common/common.proto";
+import "gcs/GCSStorage.proto";
message GCSResource {
string resourceId = 1;
- string bucketName = 2;
+ org.apache.airavata.mft.resource.stubs.gcs.storage.GCSStorage gcsStorage = 2;
oneof resource {
org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
@@ -36,14 +37,20 @@
}
message GCSResourceCreateRequest {
- string bucketName = 1;
- string resourcePath = 2;
+ string storageId = 1;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
+ }
}
message GCSResourceUpdateRequest {
string resourceId = 1;
- string bucketName = 2;
- string resourcePath = 3;
+ string storageId = 2;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
}
message GCSResourceDeleteRequest {
diff --git a/services/resource-service/stub/src/main/proto/gcs/GCSService.proto b/services/resource-service/stub/src/main/proto/gcs/GCSService.proto
index addd637..e66aece 100644
--- a/services/resource-service/stub/src/main/proto/gcs/GCSService.proto
+++ b/services/resource-service/stub/src/main/proto/gcs/GCSService.proto
@@ -23,8 +23,37 @@
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "gcs/GCSResource.proto";
+import "gcs/GCSStorage.proto";
service GCSResourceService {
+
+ // Storage
+ rpc getGCSStorage (org.apache.airavata.mft.resource.stubs.gcs.storage.GCSStorageGetRequest) returns
+ (org.apache.airavata.mft.resource.stubs.gcs.storage.GCSStorage) {
+ option (google.api.http) = {
+ get: "/v1.0/resource/gcs/storage"
+ };
+ }
+
+ rpc createGCSStorage (org.apache.airavata.mft.resource.stubs.gcs.storage.GCSStorageCreateRequest) returns
+ (org.apache.airavata.mft.resource.stubs.gcs.storage.GCSStorage) {
+ option (google.api.http) = {
+ post: "/v1.0/resource/gcs/storage"
+ };
+ }
+
+ rpc updateGCSStorage (org.apache.airavata.mft.resource.stubs.gcs.storage.GCSStorageUpdateRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ put: "/v1.0/resource/gcs/storage"
+ };
+ }
+
+ rpc deleteGCSStorage (org.apache.airavata.mft.resource.stubs.gcs.storage.GCSStorageDeleteRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1.0/resource/gcs/storage"
+ };
+ }
+
rpc getGCSResource (org.apache.airavata.mft.resource.stubs.gcs.resource.GCSResourceGetRequest) returns
(org.apache.airavata.mft.resource.stubs.gcs.resource.GCSResource) {
option (google.api.http) = {
diff --git a/services/resource-service/stub/src/main/proto/gcs/GCSStorage.proto b/services/resource-service/stub/src/main/proto/gcs/GCSStorage.proto
new file mode 100644
index 0000000..b974245
--- /dev/null
+++ b/services/resource-service/stub/src/main/proto/gcs/GCSStorage.proto
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.mft.resource.stubs.gcs.storage;
+
+message GCSStorage {
+ string storageId = 1;
+ string bucketName = 2;
+}
+
+message GCSStorageGetRequest {
+ string storageId = 1;
+}
+
+message GCSStorageCreateRequest {
+ string bucketName = 1;
+}
+
+message GCSStorageUpdateRequest {
+ string storageId = 1;
+ string bucketName = 2;
+}
+
+message GCSStorageDeleteRequest {
+ string storageId = 1;
+}
+
+
diff --git a/services/resource-service/stub/src/main/proto/local/LocalResource.proto b/services/resource-service/stub/src/main/proto/local/LocalResource.proto
index 1978b0e..9d069d7 100644
--- a/services/resource-service/stub/src/main/proto/local/LocalResource.proto
+++ b/services/resource-service/stub/src/main/proto/local/LocalResource.proto
@@ -21,10 +21,11 @@
package org.apache.airavata.mft.resource.stubs.local.resource;
import "common/common.proto";
+import "local/LocalStorage.proto";
message LocalResource {
string resourceId = 1;
- string agentId = 2;
+ org.apache.airavata.mft.resource.stubs.local.storage.LocalStorage localStorage = 2;
oneof resource {
org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
@@ -36,14 +37,20 @@
}
message LocalResourceCreateRequest {
- string resourcePath = 1;
- string agentId = 2;
+ string storageId = 1;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
+ }
}
message LocalResourceUpdateRequest {
string resourceId = 1;
- string resourcePath = 2;
- string agentId = 3;
+ string storageId = 2;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
}
message LocalResourceDeleteRequest {
diff --git a/services/resource-service/stub/src/main/proto/local/LocalService.proto b/services/resource-service/stub/src/main/proto/local/LocalService.proto
index 672d9d6..850ee9f 100644
--- a/services/resource-service/stub/src/main/proto/local/LocalService.proto
+++ b/services/resource-service/stub/src/main/proto/local/LocalService.proto
@@ -23,9 +23,36 @@
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "local/LocalResource.proto";
+import "local/LocalStorage.proto";
service LocalResourceService {
+ // Storage
+ rpc getLocalStorage (org.apache.airavata.mft.resource.stubs.local.storage.LocalStorageGetRequest) returns (org.apache.airavata.mft.resource.stubs.local.storage.LocalStorage) {
+ option (google.api.http) = {
+ get: "/v1.0/resource/local/storage"
+ };
+ }
+
+ rpc createLocalStorage (org.apache.airavata.mft.resource.stubs.local.storage.LocalStorageCreateRequest) returns (org.apache.airavata.mft.resource.stubs.local.storage.LocalStorage) {
+ option (google.api.http) = {
+ post: "/v1.0/resource/local/storage"
+ };
+ }
+
+ rpc updateLocalStorage (org.apache.airavata.mft.resource.stubs.local.storage.LocalStorageUpdateRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ put: "/v1.0/resource/local/storage"
+ };
+ }
+
+ rpc deleteLocalStorage (org.apache.airavata.mft.resource.stubs.local.storage.LocalStorageDeleteRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1.0/resource/local/storage"
+ };
+ }
+
+ // Resource
rpc getLocalResource (org.apache.airavata.mft.resource.stubs.local.resource.LocalResourceGetRequest) returns
(org.apache.airavata.mft.resource.stubs.local.resource.LocalResource) {
option (google.api.http) = {
diff --git a/services/resource-service/stub/src/main/proto/local/LocalStorage.proto b/services/resource-service/stub/src/main/proto/local/LocalStorage.proto
new file mode 100644
index 0000000..9b9e9b9
--- /dev/null
+++ b/services/resource-service/stub/src/main/proto/local/LocalStorage.proto
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.mft.resource.stubs.local.storage;
+
+message LocalStorage {
+ string storageId = 1;
+ string agentId = 2;
+}
+
+message LocalStorageGetRequest {
+ string storageId = 1;
+}
+
+message LocalStorageCreateRequest {
+ string agentId = 1;
+}
+
+message LocalStorageUpdateRequest {
+ string storageId = 1;
+ string agentId = 2;
+}
+
+message LocalStorageDeleteRequest {
+ string storageId = 1;
+}
+
+
diff --git a/services/resource-service/stub/src/main/proto/s3/S3Resource.proto b/services/resource-service/stub/src/main/proto/s3/S3Resource.proto
index 9a9404a..c16f29c 100644
--- a/services/resource-service/stub/src/main/proto/s3/S3Resource.proto
+++ b/services/resource-service/stub/src/main/proto/s3/S3Resource.proto
@@ -21,14 +21,14 @@
package org.apache.airavata.mft.resource.stubs.s3.resource;
import "common/common.proto";
+import "s3/S3Storage.proto";
message S3Resource {
string resourceId = 1;
- string bucketName = 2;
- string region = 3;
+ org.apache.airavata.mft.resource.stubs.s3.storage.S3Storage s3Storage = 2;
oneof resource {
- org.apache.airavata.mft.resource.stubs.common.FileResource file = 4;
- org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 5;
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
}
}
@@ -37,16 +37,20 @@
}
message S3ResourceCreateRequest {
- string bucketName = 1;
- string region = 2;
- string resourcePath = 3;
+ string storageId = 1;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
+ }
}
message S3ResourceUpdateRequest {
string resourceId = 1;
- string bucketName = 2;
- string region = 3;
- string resourcePath = 4;
+ string storageId = 2;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
}
message S3ResourceDeleteRequest {
diff --git a/services/resource-service/stub/src/main/proto/s3/S3Service.proto b/services/resource-service/stub/src/main/proto/s3/S3Service.proto
index aae50f6..9240a80 100644
--- a/services/resource-service/stub/src/main/proto/s3/S3Service.proto
+++ b/services/resource-service/stub/src/main/proto/s3/S3Service.proto
@@ -23,8 +23,36 @@
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "s3/S3Resource.proto";
+import "s3/S3Storage.proto";
service S3ResourceService {
+
+ // Storage
+ rpc getS3Storage (org.apache.airavata.mft.resource.stubs.s3.storage.S3StorageGetRequest) returns (org.apache.airavata.mft.resource.stubs.s3.storage.S3Storage) {
+ option (google.api.http) = {
+ get: "/v1.0/resource/s3/storage"
+ };
+ }
+
+ rpc createS3Storage (org.apache.airavata.mft.resource.stubs.s3.storage.S3StorageCreateRequest) returns (org.apache.airavata.mft.resource.stubs.s3.storage.S3Storage) {
+ option (google.api.http) = {
+ post: "/v1.0/resource/s3/storage"
+ };
+ }
+
+ rpc updateS3Storage (org.apache.airavata.mft.resource.stubs.s3.storage.S3StorageUpdateRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ put: "/v1.0/resource/s3/storage"
+ };
+ }
+
+ rpc deleteS3Storage (org.apache.airavata.mft.resource.stubs.s3.storage.S3StorageDeleteRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1.0/resource/s3/storage"
+ };
+ }
+
+ // Resource
rpc getS3Resource (org.apache.airavata.mft.resource.stubs.s3.resource.S3ResourceGetRequest) returns
(org.apache.airavata.mft.resource.stubs.s3.resource.S3Resource) {
option (google.api.http) = {
diff --git a/services/resource-service/stub/src/main/proto/s3/S3Storage.proto b/services/resource-service/stub/src/main/proto/s3/S3Storage.proto
new file mode 100644
index 0000000..4a51221
--- /dev/null
+++ b/services/resource-service/stub/src/main/proto/s3/S3Storage.proto
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.mft.resource.stubs.s3.storage;
+
+message S3Storage {
+ string storageId = 1;
+ string bucketName = 2;
+ string region = 3;
+}
+
+message S3StorageGetRequest {
+ string storageId = 1;
+}
+
+message S3StorageCreateRequest {
+ string bucketName = 1;
+ string region = 2;
+}
+
+message S3StorageUpdateRequest {
+ string storageId = 1;
+ string bucketName = 2;
+ string region = 3;
+}
+
+message S3StorageDeleteRequest {
+ string storageId = 1;
+}
+
+
diff --git a/services/resource-service/stub/src/main/proto/scp/SCPResource.proto b/services/resource-service/stub/src/main/proto/scp/SCPResource.proto
index bfa51fb..6d65ad6 100644
--- a/services/resource-service/stub/src/main/proto/scp/SCPResource.proto
+++ b/services/resource-service/stub/src/main/proto/scp/SCPResource.proto
@@ -38,13 +38,19 @@
message SCPResourceCreateRequest {
string scpStorageId = 1;
- string resourcePath = 2;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 2;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 3;
+ }
}
message SCPResourceUpdateRequest {
string resourceId = 1;
string scpStorageId = 2;
- string resourcePath = 3;
+ oneof resource {
+ org.apache.airavata.mft.resource.stubs.common.FileResource file = 3;
+ org.apache.airavata.mft.resource.stubs.common.DirectoryResource directory = 4;
+ }
}
message SCPResourceDeleteRequest {
diff --git a/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureMetadataCollector.java b/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureMetadataCollector.java
index 1a725cb..8a265c8 100644
--- a/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureMetadataCollector.java
+++ b/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureMetadataCollector.java
@@ -73,7 +73,8 @@
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(azureSecret.getConnectionString()).buildClient();
- BlobClient blobClient = blobServiceClient.getBlobContainerClient(azureResource.getContainer()).getBlobClient(azureResource.getFile().getResourcePath());
+ BlobClient blobClient = blobServiceClient.getBlobContainerClient(azureResource.getAzureStorage().getContainer())
+ .getBlobClient(azureResource.getFile().getResourcePath());
BlobProperties properties = blobClient.getBlockBlobClient().getProperties();
ResourceMetadata metadata = new ResourceMetadata();
@@ -103,7 +104,7 @@
AzureSecret azureSecret = secretClient.azure().getAzureSecret(AzureSecretGetRequest.newBuilder().setSecretId(credentialToken).build());
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(azureSecret.getConnectionString()).buildClient();
- BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(azureResource.getContainer());
+ BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(azureResource.getAzureStorage().getContainer());
boolean containerExists = containerClient.exists();
if (!containerExists) {
return false;
diff --git a/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureReceiver.java b/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureReceiver.java
index 162d31d..a9bfdf7 100644
--- a/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureReceiver.java
+++ b/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureReceiver.java
@@ -57,7 +57,7 @@
AzureSecret azureSecret = secretClient.azure().getAzureSecret(AzureSecretGetRequest.newBuilder().setSecretId(credentialToken).build());
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(azureSecret.getConnectionString()).buildClient();
- this.containerClient = blobServiceClient.getBlobContainerClient(azureResource.getContainer());
+ this.containerClient = blobServiceClient.getBlobContainerClient(azureResource.getAzureStorage().getContainer());
}
@Override
diff --git a/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureSender.java b/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureSender.java
index 9642103..7dcff4b 100644
--- a/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureSender.java
+++ b/transport/azure-transport/src/main/java/org/apache/airavata/mft/transport/azure/AzureSender.java
@@ -54,7 +54,7 @@
AzureSecret azureSecret = secretClient.azure().getAzureSecret(AzureSecretGetRequest.newBuilder().setSecretId(credentialToken).build());
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(azureSecret.getConnectionString()).buildClient();
- this.containerClient = blobServiceClient.getBlobContainerClient(azureResource.getContainer());
+ this.containerClient = blobServiceClient.getBlobContainerClient(azureResource.getAzureStorage().getContainer());
}
@Override
diff --git a/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSMetadataCollector.java b/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSMetadataCollector.java
index 0f8e634..bda277b 100644
--- a/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSMetadataCollector.java
+++ b/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSMetadataCollector.java
@@ -87,7 +87,8 @@
Storage storage = new Storage.Builder(transport, jsonFactory, credential).build();
ResourceMetadata metadata = new ResourceMetadata();
- StorageObject gcsMetadata = storage.objects().get(gcsResource.getBucketName(), gcsResource.getFile().getResourcePath()).execute();
+ StorageObject gcsMetadata = storage.objects().get(gcsResource.getGcsStorage().getBucketName(),
+ gcsResource.getFile().getResourcePath()).execute();
metadata.setResourceSize(gcsMetadata.getSize().longValue());
String md5Sum = String.format("%032x", new BigInteger(1, Base64.getDecoder().decode(gcsMetadata.getMd5Hash())));
metadata.setMd5sum(md5Sum);
@@ -117,9 +118,11 @@
Storage storage = new Storage.Builder(transport, jsonFactory, credential).build();
switch (gcsResource.getResourceCase().name()){
case ResourceTypes.FILE:
- return !storage.objects().get(gcsResource.getBucketName(), gcsResource.getFile().getResourcePath()).execute().isEmpty();
+ return !storage.objects().get(gcsResource.getGcsStorage().getBucketName(), gcsResource.getFile().getResourcePath())
+ .execute().isEmpty();
case ResourceTypes.DIRECTORY:
- return !storage.objects().get(gcsResource.getBucketName(), gcsResource.getDirectory().getResourcePath()).execute().isEmpty();
+ return !storage.objects().get(gcsResource.getGcsStorage().getBucketName(), gcsResource.getDirectory().getResourcePath())
+ .execute().isEmpty();
}
return false;
}
diff --git a/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSReceiver.java b/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSReceiver.java
index 5a1bc63..03fd31c 100644
--- a/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSReceiver.java
+++ b/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSReceiver.java
@@ -80,7 +80,7 @@
logger.info("Starting GCS Receiver stream for transfer {}", context.getTransferId());
if (ResourceTypes.FILE.equals(this.gcsResource.getResourceCase().name())) {
- InputStream inputStream = storage.objects().get(this.gcsResource.getBucketName(),
+ InputStream inputStream = storage.objects().get(this.gcsResource.getGcsStorage().getBucketName(),
this.gcsResource.getFile().getResourcePath()).executeMediaAsInputStream();
OutputStream os = context.getStreamBuffer().getOutputStream();
int read;
diff --git a/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSSender.java b/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSSender.java
index 7326545..368d24d 100644
--- a/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSSender.java
+++ b/transport/gcp-transport/src/main/java/org/apache/airavata/mft/transport/gcp/GCSSender.java
@@ -101,7 +101,7 @@
// Set the access control list to publicly read-only
.setAcl(Arrays.asList(new ObjectAccessControl().setEntity("user-" + entityUser).setRole("OWNER")));
- Insert insertRequest = storage.objects().insert(this.gcsResource.getBucketName(), objectMetadata, contentStream);
+ Insert insertRequest = storage.objects().insert(this.gcsResource.getGcsStorage().getBucketName(), objectMetadata, contentStream);
insertRequest.execute();
diff --git a/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3MetadataCollector.java b/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3MetadataCollector.java
index 56d98f4..5326e11 100644
--- a/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3MetadataCollector.java
+++ b/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3MetadataCollector.java
@@ -71,11 +71,11 @@
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
- .withRegion(s3Resource.getRegion())
+ .withRegion(s3Resource.getS3Storage().getRegion())
.build();
ResourceMetadata metadata = new ResourceMetadata();
- ObjectMetadata s3Metadata = s3Client.getObjectMetadata(s3Resource.getBucketName(), s3Resource.getFile().getResourcePath());
+ ObjectMetadata s3Metadata = s3Client.getObjectMetadata(s3Resource.getS3Storage().getBucketName(), s3Resource.getFile().getResourcePath());
metadata.setResourceSize(s3Metadata.getContentLength());
metadata.setMd5sum(s3Metadata.getETag());
metadata.setUpdateTime(s3Metadata.getLastModified().getTime());
@@ -97,14 +97,14 @@
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
- .withRegion(s3Resource.getRegion())
+ .withRegion(s3Resource.getS3Storage().getRegion())
.build();
switch (s3Resource.getResourceCase().name()){
case ResourceTypes.FILE:
- return s3Client.doesObjectExist(s3Resource.getBucketName(), s3Resource.getFile().getResourcePath());
+ return s3Client.doesObjectExist(s3Resource.getS3Storage().getBucketName(), s3Resource.getFile().getResourcePath());
case ResourceTypes.DIRECTORY:
- return s3Client.doesObjectExist(s3Resource.getBucketName(), s3Resource.getDirectory().getResourcePath());
+ return s3Client.doesObjectExist(s3Resource.getS3Storage().getBucketName(), s3Resource.getDirectory().getResourcePath());
}
return false;
}
diff --git a/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3Receiver.java b/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3Receiver.java
index 7e8d42b..ddfd425 100644
--- a/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3Receiver.java
+++ b/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3Receiver.java
@@ -59,7 +59,7 @@
s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
- .withRegion(s3Resource.getRegion())
+ .withRegion(s3Resource.getS3Storage().getRegion())
.build();
}
@@ -74,7 +74,7 @@
if (ResourceTypes.FILE.equals(this.s3Resource.getResourceCase().name())) {
logger.info("Starting S3 Receiver stream for transfer {}", context.getTransferId());
- S3Object s3object = s3Client.getObject(s3Resource.getBucketName(), s3Resource.getFile().getResourcePath());
+ S3Object s3object = s3Client.getObject(s3Resource.getS3Storage().getBucketName(), s3Resource.getFile().getResourcePath());
S3ObjectInputStream inputStream = s3object.getObjectContent();
OutputStream os = context.getStreamBuffer().getOutputStream();
diff --git a/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3Sender.java b/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3Sender.java
index f0faeb2..095ed3c 100644
--- a/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3Sender.java
+++ b/transport/s3-transport/src/main/java/org/apache/airavata/mft/transport/s3/S3Sender.java
@@ -55,7 +55,7 @@
s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
- .withRegion(s3Resource.getRegion())
+ .withRegion(s3Resource.getS3Storage().getRegion())
.build();
}
@@ -73,7 +73,7 @@
metadata.setContentLength(context.getMetadata().getResourceSize());
if (ResourceTypes.FILE.equals(this.s3Resource.getResourceCase().name())) {
- s3Client.putObject(this.s3Resource.getBucketName(), this.s3Resource.getFile().getResourcePath(),
+ s3Client.putObject(this.s3Resource.getS3Storage().getBucketName(), this.s3Resource.getFile().getResourcePath(),
context.getStreamBuffer().getInputStream(), metadata);
logger.info("Completed S3 Sender stream for transfer {}", context.getTransferId());
} else {