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 2020/03/13 01:10:26 UTC
[airavata-mft] branch master updated: Adding file based backends
for services for local testing. Adding file based spring context files
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 17be4b3 Adding file based backends for services for local testing. Adding file based spring context files
17be4b3 is described below
commit 17be4b3c658295fa516409e3c424b12f454457f2
Author: Dimuthu Wannipurage <di...@gmail.com>
AuthorDate: Thu Mar 12 21:10:13 2020 -0400
Adding file based backends for services for local testing. Adding file based spring context files
---
agent/src/main/resources/application.properties | 6 +-
.../src/main/resources/application.properties | 2 +-
services/resource-service/server/pom.xml | 19 +++
.../assembly/resource-service-bin-assembly.xml | 2 +
.../airavata/mft/resource/server/AppConfig.java | 10 +-
.../mft/resource/server/XmlConfiguration.java} | 14 +-
.../resource/server/backend/ResourceBackend.java | 20 +--
.../backend/airavata/AiravataResourceBackend.java | 6 +-
.../backend/file/FileBasedResourceBackend.java | 147 +++++++++++++++++++++
.../backend/sql/entity/SCPStorageEntity.java | 11 ++
.../server/handler/ResourceServiceHandler.java | 131 +++++++++++++-----
.../src/main/resources/application.properties | 2 +-
.../src/main/resources/applicationContext.xml | 13 ++
.../src/main/resources/distribution/bin/setenv.sh | 2 +
.../distribution/conf/applicationContext.xml | 13 ++
.../resources/distribution/conf/resources.json | 28 ++++
.../server/src/main/resources/resources.json | 28 ++++
.../stub/src/main/proto/ResourceService.proto | 3 +
services/secret-service/server/pom.xml | 18 +++
.../main/assembly/secret-service-bin-assembly.xml | 2 +
.../airavata/mft/secret/server/AppConfig.java | 2 -
.../{AppConfig.java => XmlConfiguration.java} | 14 +-
.../backend/airavata/AiravataSecretBackend.java | 6 +-
.../backend/file/FileBasedSecretBackend.java | 76 +++++++++++
.../server/backend/sql/entity/SCPSecretEntity.java | 11 --
.../src/main/resources/applicationContext.xml | 13 ++
.../src/main/resources/distribution/bin/setenv.sh | 2 +
.../distribution/conf/applicationContext.xml | 13 ++
.../main/resources/distribution/conf/secrets.json | 9 ++
.../server/src/main/resources/secrets.json | 9 ++
.../stub/src/main/proto/SecretService.proto | 3 -
.../mft/transport/scp/SCPMetadataCollector.java | 2 +-
.../airavata/mft/transport/scp/SCPReceiver.java | 2 +-
.../airavata/mft/transport/scp/SCPSender.java | 4 +-
.../mft/transport/scp/SCPTransportUtil.java | 53 --------
35 files changed, 534 insertions(+), 162 deletions(-)
diff --git a/agent/src/main/resources/application.properties b/agent/src/main/resources/application.properties
index e8883b1..ea01bee 100644
--- a/agent/src/main/resources/application.properties
+++ b/agent/src/main/resources/application.properties
@@ -20,10 +20,10 @@ agent.id=agent0
agent.host=localhost
agent.user=dimuthu
agent.supported.protocols=SCP,LOCAL
-consul.host=localhost
+consul.host=149.165.156.124
consul.port=8500
-resource.service.host=localhost
+resource.service.host=149.165.156.124
resource.service.port=7002
-secret.service.host=localhost
+secret.service.host=149.165.156.124
secret.service.port=7003
\ No newline at end of file
diff --git a/controller/src/main/resources/application.properties b/controller/src/main/resources/application.properties
index 8ad1c58..b4447ab 100644
--- a/controller/src/main/resources/application.properties
+++ b/controller/src/main/resources/application.properties
@@ -14,5 +14,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-consul.host=localhost
+consul.host=149.165.156.124
consul.port=8500
\ No newline at end of file
diff --git a/services/resource-service/server/pom.xml b/services/resource-service/server/pom.xml
index d6fcb37..1870c40 100644
--- a/services/resource-service/server/pom.xml
+++ b/services/resource-service/server/pom.xml
@@ -54,6 +54,11 @@
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
+ <dependency>
+ <groupId>com.googlecode.json-simple</groupId>
+ <artifactId>json-simple</artifactId>
+ <version>1.1.1</version>
+ </dependency>
</dependencies>
<build>
@@ -80,6 +85,20 @@
</execution>
</executions>
</plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.2.0</version>
+ <configuration>
+ <excludes>
+ <exclude>**/*.properties</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.sh</exclude>
+ <exclude>**/*.json</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git a/services/resource-service/server/src/main/assembly/resource-service-bin-assembly.xml b/services/resource-service/server/src/main/assembly/resource-service-bin-assembly.xml
index ffb14c4..db96c90 100644
--- a/services/resource-service/server/src/main/assembly/resource-service-bin-assembly.xml
+++ b/services/resource-service/server/src/main/assembly/resource-service-bin-assembly.xml
@@ -58,6 +58,8 @@
<includes>
<include>application.properties</include>
<include>logback.xml</include>
+ <include>applicationContext.xml</include>
+ <include>resources.json</include>
</includes>
</fileSet>
<fileSet>
diff --git a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/AppConfig.java b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/AppConfig.java
index 2f55c96..23bb7db 100644
--- a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/AppConfig.java
+++ b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/AppConfig.java
@@ -17,17 +17,9 @@
package org.apache.airavata.mft.resource.server;
-import org.apache.airavata.mft.resource.server.backend.ResourceBackend;
-import org.apache.airavata.mft.resource.server.backend.airavata.AiravataResourceBackend;
-import org.apache.airavata.mft.resource.server.backend.sql.SQLResourceBackend;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
@Configuration
public class AppConfig {
- @Bean
- public ResourceBackend resourceBackend() {
- return new AiravataResourceBackend();
- }
+
}
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/XmlConfiguration.java
similarity index 63%
copy from services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java
copy to services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/XmlConfiguration.java
index 6c407ad..26b98f8 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java
+++ b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/XmlConfiguration.java
@@ -15,18 +15,12 @@
* limitations under the License.
*/
-package org.apache.airavata.mft.secret.server;
+ package org.apache.airavata.mft.resource.server;
-import org.apache.airavata.mft.secret.server.backend.SecretBackend;
-import org.apache.airavata.mft.secret.server.backend.airavata.AiravataSecretBackend;
-import org.apache.airavata.mft.secret.server.backend.sql.SQLSecretBackend;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.ImportResource;
@Configuration
-public class AppConfig {
-
- @Bean
- SecretBackend secretBackend() {return new AiravataSecretBackend();}
+@ImportResource({"applicationContext.xml"})
+public class XmlConfiguration {
}
diff --git a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/ResourceBackend.java b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/ResourceBackend.java
index 8b5beb0..c4d33f4 100644
--- a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/ResourceBackend.java
+++ b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/ResourceBackend.java
@@ -24,17 +24,17 @@ import java.util.Optional;
public interface ResourceBackend {
public Optional<SCPStorage> getSCPStorage(SCPStorageGetRequest request) throws Exception;
- public SCPStorage createSCPStorage(SCPStorageCreateRequest request);
- public boolean updateSCPStorage(SCPStorageUpdateRequest request);
- public boolean deleteSCPStorage(SCPStorageDeleteRequest request);
+ public SCPStorage createSCPStorage(SCPStorageCreateRequest request) throws Exception;
+ public boolean updateSCPStorage(SCPStorageUpdateRequest request) throws Exception;
+ public boolean deleteSCPStorage(SCPStorageDeleteRequest request) throws Exception;
public Optional<SCPResource> getSCPResource(SCPResourceGetRequest request) throws Exception;
- public SCPResource createSCPResource(SCPResourceCreateRequest request);
- public boolean updateSCPResource(SCPResourceUpdateRequest request);
- public boolean deleteSCPResource(SCPResourceDeleteRequest request);
+ public SCPResource createSCPResource(SCPResourceCreateRequest request) throws Exception;
+ public boolean updateSCPResource(SCPResourceUpdateRequest request) throws Exception;
+ public boolean deleteSCPResource(SCPResourceDeleteRequest request) throws Exception;
- public Optional<LocalResource> getLocalResource(LocalResourceGetRequest request);
- public LocalResource createLocalResource(LocalResourceCreateRequest request);
- public boolean updateLocalResource(LocalResourceUpdateRequest request);
- public boolean deleteLocalResource(LocalResourceDeleteRequest request);
+ public Optional<LocalResource> getLocalResource(LocalResourceGetRequest request) throws Exception;
+ public LocalResource createLocalResource(LocalResourceCreateRequest request) throws Exception;
+ public boolean updateLocalResource(LocalResourceUpdateRequest request) throws Exception;
+ public boolean deleteLocalResource(LocalResourceDeleteRequest request) throws Exception;
}
diff --git a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/airavata/AiravataResourceBackend.java b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/airavata/AiravataResourceBackend.java
index a51ef21..1331f66 100644
--- a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/airavata/AiravataResourceBackend.java
+++ b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/airavata/AiravataResourceBackend.java
@@ -47,9 +47,8 @@ public class AiravataResourceBackend implements ResourceBackend {
String resourceId = request.getStorageId();
String[] parts = resourceId.split(":");
String type = parts[0];
- String path = parts[1];
- String gateway = parts[2];
String storageOrComputeId = parts[3];
+ String user = parts[4];
logger.info("Connecting to registry service {}:{}", registryServerHost, registryServerPort);
@@ -103,10 +102,7 @@ public class AiravataResourceBackend implements ResourceBackend {
public Optional<SCPResource> getSCPResource(SCPResourceGetRequest request) throws Exception {
String resourceId = request.getResourceId();
String[] parts = resourceId.split(":");
- String type = parts[0];
String path = parts[1];
- String gateway = parts[2];
- String storageOrComputeId = parts[3];
SCPResource scpResource = SCPResource.newBuilder()
.setResourceId(resourceId)
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
new file mode 100644
index 0000000..ef2f409
--- /dev/null
+++ b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/file/FileBasedResourceBackend.java
@@ -0,0 +1,147 @@
+/*
+ * 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.
+ */
+
+ package org.apache.airavata.mft.resource.server.backend.file;
+
+import org.apache.airavata.mft.resource.server.backend.ResourceBackend;
+import org.apache.airavata.mft.resource.service.*;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+public class FileBasedResourceBackend implements ResourceBackend {
+
+
+ @Override
+ public Optional<SCPStorage> getSCPStorage(SCPStorageGetRequest request) throws Exception {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public SCPStorage createSCPStorage(SCPStorageCreateRequest request) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean updateSCPStorage(SCPStorageUpdateRequest request) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean deleteSCPStorage(SCPStorageDeleteRequest request) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Optional<SCPResource> getSCPResource(SCPResourceGetRequest request) throws Exception {
+
+ InputStream inputStream = FileBasedResourceBackend.class.getClassLoader().getResourceAsStream("resources.json");
+
+ JSONParser jsonParser = new JSONParser();
+
+ try (InputStreamReader reader = new InputStreamReader(inputStream)) {
+
+ Object obj = jsonParser.parse(reader);
+
+ JSONArray resourceList = (JSONArray) obj;
+
+ List<SCPResource> scpResources = (List<SCPResource>) resourceList.stream()
+ .filter(resource -> "SCP".equals(((JSONObject) resource).get("type").toString()))
+ .map(resource -> {
+ JSONObject r = (JSONObject) resource;
+
+ SCPStorage storage = SCPStorage.newBuilder()
+ .setStorageId(((JSONObject)r.get("scpStorage")).get("storageId").toString())
+ .setHost(((JSONObject)r.get("scpStorage")).get("host").toString())
+ .setUser(((JSONObject)r.get("scpStorage")).get("user").toString())
+ .setPort(Integer.parseInt(((JSONObject)r.get("scpStorage")).get("port").toString())).build();
+
+ SCPResource scpResource = SCPResource.newBuilder()
+ .setResourcePath(r.get("resourcePath").toString())
+ .setResourceId(r.get("resourceId").toString())
+ .setScpStorage(storage).build();
+
+ return scpResource;
+ }).collect(Collectors.toList());
+
+ return scpResources.stream().filter(r -> request.getResourceId().equals(r.getResourceId())).findFirst();
+ }
+ }
+
+
+ @Override
+ public SCPResource createSCPResource(SCPResourceCreateRequest request) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean updateSCPResource(SCPResourceUpdateRequest request) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean deleteSCPResource(SCPResourceDeleteRequest request) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Optional<LocalResource> getLocalResource(LocalResourceGetRequest request) throws Exception {
+ JSONParser jsonParser = new JSONParser();
+ InputStream inputStream = FileBasedResourceBackend.class.getClassLoader().getResourceAsStream("resources.json");
+
+ try (InputStreamReader reader = new InputStreamReader(inputStream)) {
+ Object obj = jsonParser.parse(reader);
+
+ JSONArray resourceList = (JSONArray) obj;
+
+ System.out.println("All resources ");
+ List<LocalResource> localResources = (List<LocalResource>) resourceList.stream()
+ .filter(resource -> "LOCAL".equals(((JSONObject) resource).get("type").toString()))
+ .map(resource -> {
+ JSONObject r = (JSONObject) resource;
+
+ LocalResource localResource = LocalResource.newBuilder()
+ .setResourcePath(r.get("resourcePath").toString())
+ .setResourceId(r.get("resourceId").toString()).build();
+
+ return localResource;
+ }).collect(Collectors.toList());
+ return localResources.stream().filter(r -> request.getResourceId().equals(r.getResourceId())).findFirst();
+ }
+ }
+
+ @Override
+ public LocalResource createLocalResource(LocalResourceCreateRequest request) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean updateLocalResource(LocalResourceUpdateRequest request) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean deleteLocalResource(LocalResourceDeleteRequest request) {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/sql/entity/SCPStorageEntity.java b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/sql/entity/SCPStorageEntity.java
index 776bbc4..1a8d9ee 100644
--- a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/sql/entity/SCPStorageEntity.java
+++ b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/backend/sql/entity/SCPStorageEntity.java
@@ -38,6 +38,9 @@ public class SCPStorageEntity {
@Column(name = "PORT")
private int port;
+ @Column(name = "USER")
+ private int user;
+
public String getStorageId() {
return storageId;
}
@@ -61,4 +64,12 @@ public class SCPStorageEntity {
public void setPort(int port) {
this.port = port;
}
+
+ public int getUser() {
+ return user;
+ }
+
+ public void setUser(int user) {
+ this.user = user;
+ }
}
diff --git a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/handler/ResourceServiceHandler.java b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/handler/ResourceServiceHandler.java
index 7dd4da4..dcc75bd 100644
--- a/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/handler/ResourceServiceHandler.java
+++ b/services/resource-service/server/src/main/java/org/apache/airavata/mft/resource/server/handler/ResourceServiceHandler.java
@@ -38,11 +38,15 @@ import io.grpc.stub.StreamObserver;
import org.apache.airavata.mft.resource.server.backend.ResourceBackend;
import org.apache.airavata.mft.resource.service.*;
import org.lognet.springboot.grpc.GRpcService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@GRpcService
public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceImplBase {
+ private static final Logger logger = LoggerFactory.getLogger(ResourceServiceHandler.class);
+
@Autowired
private ResourceBackend backend;
@@ -56,30 +60,48 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
responseObserver.onError(new Exception("No SCP Storage with id " + request.getStorageId()));
});
} catch (Exception e) {
- e.printStackTrace();
+ logger.error("Failed in retrieving storage with id " + request.getStorageId(), e);
responseObserver.onError(new Exception("Failed in retrieving storage with id " + request.getStorageId()));
}
}
@Override
public void createSCPStorage(SCPStorageCreateRequest request, StreamObserver<SCPStorage> responseObserver) {
- responseObserver.onNext(this.backend.createSCPStorage(request));
- responseObserver.onCompleted();
+ try {
+ responseObserver.onNext(this.backend.createSCPStorage(request));
+ responseObserver.onCompleted();
+ } catch (Exception e) {
+ logger.error("Failed in creating the scp storage", e);
+ responseObserver.onError(new Exception("Failed in creating the scp storage", e));
+ }
}
@Override
public void updateSCPStorage(SCPStorageUpdateRequest request, StreamObserver<Empty> responseObserver) {
- this.backend.updateSCPStorage(request);
- responseObserver.onCompleted();
+ try {
+ this.backend.updateSCPStorage(request);
+ responseObserver.onCompleted();
+ } catch (Exception e) {
+ logger.error("Failed in updating the scp storage {}", request.getStorageId(), e);
+ responseObserver.onError(new Exception("Failed in updating the scp storage", e));
+ }
+
}
@Override
public void deleteSCPStorage(SCPStorageDeleteRequest request, StreamObserver<Empty> responseObserver) {
- boolean res = this.backend.deleteSCPStorage(request);
- if (res) {
- responseObserver.onCompleted();
- } else {
- responseObserver.onError(new Exception("Failed to delete SCP Storage with id " + request.getStorageId()));
+
+ try {
+ boolean res = this.backend.deleteSCPStorage(request);
+ if (res) {
+ responseObserver.onCompleted();
+ } else {
+ logger.error("Failed to delete SCP Storage with id " + request.getStorageId());
+ responseObserver.onError(new Exception("Failed to delete SCP Storage with id " + request.getStorageId()));
+ }
+ } catch (Exception e) {
+ logger.error("Failed in deleting the scp storage {}", request.getStorageId(), e);
+ responseObserver.onError(new Exception("Failed in deleting the scp storage", e));
}
}
@@ -93,61 +115,98 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
responseObserver.onError(new Exception("No SCP Resource with id " + request.getResourceId()));
});
} catch (Exception e) {
- e.printStackTrace();
+ logger.error("Failed in retrieving resource with id {}", request.getResourceId(), e);
responseObserver.onError(new Exception("Failed in retrieving resource with id " + request.getResourceId()));
}
}
@Override
public void createSCPResource(SCPResourceCreateRequest request, StreamObserver<SCPResource> responseObserver) {
- responseObserver.onNext(this.backend.createSCPResource(request));
- responseObserver.onCompleted();
+ try {
+ responseObserver.onNext(this.backend.createSCPResource(request));
+ responseObserver.onCompleted();
+ } catch (Exception e) {
+ logger.error("Failed in creating the scp resource", e);
+ responseObserver.onError(new Exception("Failed in creating the scp resource", e));
+ }
}
@Override
public void updateSCPResource(SCPResourceUpdateRequest request, StreamObserver<Empty> responseObserver) {
- this.backend.updateSCPResource(request);
- responseObserver.onCompleted();
+ try {
+ this.backend.updateSCPResource(request);
+ responseObserver.onCompleted();
+ } catch (Exception e) {
+ logger.error("Failed in updating the scp resource {}", request.getResourceId(), e);
+ responseObserver.onError(new Exception("Failed in updating the scp resource", e));
+ }
}
@Override
public void deleteSCPResource(SCPResourceDeleteRequest request, StreamObserver<Empty> responseObserver) {
- boolean res = this.backend.deleteSCPResource(request);
- if (res) {
- responseObserver.onCompleted();
- } else {
- responseObserver.onError(new Exception("Failed to delete SCP Resource with id " + request.getResourceId()));
+ try {
+ boolean res = this.backend.deleteSCPResource(request);
+ if (res) {
+ responseObserver.onCompleted();
+ } else {
+ responseObserver.onError(new Exception("Failed to delete SCP Resource with id " + request.getResourceId()));
+ }
+ } catch (Exception e) {
+ logger.error("Failed in deleting the scp resource {}", request.getResourceId(), e);
+ responseObserver.onError(new Exception("Failed in deleting the scp resource", e));
}
}
@Override
public void getLocalResource(LocalResourceGetRequest request, StreamObserver<LocalResource> responseObserver) {
- this.backend.getLocalResource(request).ifPresentOrElse(resource -> {
- responseObserver.onNext(resource);
- responseObserver.onCompleted();
- }, () -> {
- responseObserver.onError(new Exception("No Local Resource with id " + request.getResourceId()));
- });
+
+ try {
+ this.backend.getLocalResource(request).ifPresentOrElse(resource -> {
+ responseObserver.onNext(resource);
+ responseObserver.onCompleted();
+ }, () -> {
+ responseObserver.onError(new Exception("No Local Resource with id " + request.getResourceId()));
+ });
+ } catch (Exception e) {
+ logger.error("Failed in retrieving resource with id {}", request.getResourceId(), e);
+ responseObserver.onError(new Exception("Failed in retrieving resource with id " + request.getResourceId()));
+ }
}
@Override
public void createLocalResource(LocalResourceCreateRequest request, StreamObserver<LocalResource> responseObserver) {
- responseObserver.onNext(this.backend.createLocalResource(request));
- responseObserver.onCompleted();
+ try {
+ responseObserver.onNext(this.backend.createLocalResource(request));
+ responseObserver.onCompleted();
+ } catch (Exception e) {
+ logger.error("Failed in creating the local resource", e);
+ responseObserver.onError(new Exception("Failed in creating the local resource", e));
+ }
}
@Override
public void updateLocalResource(LocalResourceUpdateRequest request, StreamObserver<Empty> responseObserver) {
- this.backend.updateLocalResource(request);
- responseObserver.onCompleted();
+ try {
+ this.backend.updateLocalResource(request);
+ responseObserver.onCompleted();
+ } catch (Exception e) {
+ logger.error("Failed in updating the local resource {}", request.getResourceId(), e);
+ responseObserver.onError(new Exception("Failed in updating the local resource", e));
+ }
}
@Override
public void deleteLocalResource(LocalResourceDeleteRequest request, StreamObserver<Empty> responseObserver) {
- boolean res = this.backend.deleteLocalResource(request);
- if (res) {
- responseObserver.onCompleted();
- } else {
- responseObserver.onError(new Exception("Failed to delete Local Resource with id " + request.getResourceId()));
- } }
+ try {
+ boolean res = this.backend.deleteLocalResource(request);
+ if (res) {
+ responseObserver.onCompleted();
+ } else {
+ responseObserver.onError(new Exception("Failed to delete Local Resource with id " + request.getResourceId()));
+ }
+ } catch (Exception e) {
+ logger.error("Failed in deleting the local resource {}", request.getResourceId(), e);
+ responseObserver.onError(new Exception("Failed in deleting the local resource", e));
+ }
+ }
}
diff --git a/services/resource-service/server/src/main/resources/application.properties b/services/resource-service/server/src/main/resources/application.properties
index 4dfcfb3..d69baaa 100644
--- a/services/resource-service/server/src/main/resources/application.properties
+++ b/services/resource-service/server/src/main/resources/application.properties
@@ -17,5 +17,5 @@
server.port=8080
grpc.port=7002
-registry.server.host=localhost
+registry.server.host=149.165.170.103
registry.server.port=8970
\ No newline at end of file
diff --git a/services/resource-service/server/src/main/resources/applicationContext.xml b/services/resource-service/server/src/main/resources/applicationContext.xml
new file mode 100644
index 0000000..79b8be7
--- /dev/null
+++ b/services/resource-service/server/src/main/resources/applicationContext.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <!-- <context:component-scan base-package="com.in28minutes.spring.basics"/> -->
+
+ <bean id="resourceBackend" class="org.apache.airavata.mft.resource.server.backend.file.FileBasedResourceBackend"></bean>
+
+</beans>
\ No newline at end of file
diff --git a/services/resource-service/server/src/main/resources/distribution/bin/setenv.sh b/services/resource-service/server/src/main/resources/distribution/bin/setenv.sh
index 9e894e1..1bc145e 100755
--- a/services/resource-service/server/src/main/resources/distribution/bin/setenv.sh
+++ b/services/resource-service/server/src/main/resources/distribution/bin/setenv.sh
@@ -42,5 +42,7 @@ do
AIRAVATA_CLASSPATH="$AIRAVATA_CLASSPATH":$f
done
+AIRAVATA_CLASSPATH="$AIRAVATA_CLASSPATH":"$AIRAVATA_HOME"/conf
+
export AIRAVATA_HOME
export AIRAVATA_CLASSPATH
diff --git a/services/resource-service/server/src/main/resources/distribution/conf/applicationContext.xml b/services/resource-service/server/src/main/resources/distribution/conf/applicationContext.xml
new file mode 100644
index 0000000..041555f
--- /dev/null
+++ b/services/resource-service/server/src/main/resources/distribution/conf/applicationContext.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <!-- <context:component-scan base-package="com.in28minutes.spring.basics"/> -->
+
+ <bean id="resourceBackend" class="org.apache.airavata.mft.resource.server.backend.airavata.AiravataResourceBackend"></bean>
+
+</beans>
\ No newline at end of file
diff --git a/services/resource-service/server/src/main/resources/distribution/conf/resources.json b/services/resource-service/server/src/main/resources/distribution/conf/resources.json
new file mode 100644
index 0000000..e463a7f
--- /dev/null
+++ b/services/resource-service/server/src/main/resources/distribution/conf/resources.json
@@ -0,0 +1,28 @@
+[
+ {
+ "type": "SCP",
+ "resourceId": "remote-ssh-resource",
+ "resourcePath": "/tmp/1mb.txt",
+ "scpStorage" : {
+ "storageId": "remote-ssh-storage",
+ "host": "149.165.156.124",
+ "port": 22
+ }
+ },
+ {
+ "type": "SCP",
+ "resourceId": "remote-ssh-resource2",
+ "resourcePath": "/tmp/10mb.txt",
+ "scpStorage" : {
+ "storageId": "remote-ssh-storage",
+ "host": "149.165.156.124",
+ "port": 22,
+ "user": "root"
+ }
+ },
+ {
+ "type": "LOCAL",
+ "resourceId": "10mb-file",
+ "resourcePath": "/tmp/1mb.txt"
+ }
+]
\ No newline at end of file
diff --git a/services/resource-service/server/src/main/resources/resources.json b/services/resource-service/server/src/main/resources/resources.json
new file mode 100644
index 0000000..e463a7f
--- /dev/null
+++ b/services/resource-service/server/src/main/resources/resources.json
@@ -0,0 +1,28 @@
+[
+ {
+ "type": "SCP",
+ "resourceId": "remote-ssh-resource",
+ "resourcePath": "/tmp/1mb.txt",
+ "scpStorage" : {
+ "storageId": "remote-ssh-storage",
+ "host": "149.165.156.124",
+ "port": 22
+ }
+ },
+ {
+ "type": "SCP",
+ "resourceId": "remote-ssh-resource2",
+ "resourcePath": "/tmp/10mb.txt",
+ "scpStorage" : {
+ "storageId": "remote-ssh-storage",
+ "host": "149.165.156.124",
+ "port": 22,
+ "user": "root"
+ }
+ },
+ {
+ "type": "LOCAL",
+ "resourceId": "10mb-file",
+ "resourcePath": "/tmp/1mb.txt"
+ }
+]
\ No newline at end of file
diff --git a/services/resource-service/stub/src/main/proto/ResourceService.proto b/services/resource-service/stub/src/main/proto/ResourceService.proto
index 04b27a0..1b4cbe9 100644
--- a/services/resource-service/stub/src/main/proto/ResourceService.proto
+++ b/services/resource-service/stub/src/main/proto/ResourceService.proto
@@ -12,6 +12,7 @@ message SCPStorage {
string storageId = 1;
string host = 2;
int32 port = 3;
+ string user = 4;
}
message SCPStorageGetRequest {
@@ -21,12 +22,14 @@ message SCPStorageGetRequest {
message SCPStorageCreateRequest {
string host = 1;
int32 port = 2;
+ string user = 3;
}
message SCPStorageUpdateRequest {
string storageId = 1;
string host = 2;
int32 port = 3;
+ string user = 4;
}
message SCPStorageDeleteRequest {
diff --git a/services/secret-service/server/pom.xml b/services/secret-service/server/pom.xml
index 4b87cd4..8293b24 100644
--- a/services/secret-service/server/pom.xml
+++ b/services/secret-service/server/pom.xml
@@ -73,6 +73,11 @@
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
+ <dependency>
+ <groupId>com.googlecode.json-simple</groupId>
+ <artifactId>json-simple</artifactId>
+ <version>1.1.1</version>
+ </dependency>
</dependencies>
<build>
@@ -99,6 +104,19 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.2.0</version>
+ <configuration>
+ <excludes>
+ <exclude>**/*.properties</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.sh</exclude>
+ <exclude>**/*.json</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git a/services/secret-service/server/src/main/assembly/secret-service-bin-assembly.xml b/services/secret-service/server/src/main/assembly/secret-service-bin-assembly.xml
index b552fe2..a30fc97 100644
--- a/services/secret-service/server/src/main/assembly/secret-service-bin-assembly.xml
+++ b/services/secret-service/server/src/main/assembly/secret-service-bin-assembly.xml
@@ -58,6 +58,8 @@
<includes>
<include>application.properties</include>
<include>logback.xml</include>
+ <include>applicationContext.xml</include>
+ <include>secrets.json</include>
</includes>
</fileSet>
<fileSet>
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java
index 6c407ad..81f5552 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java
@@ -27,6 +27,4 @@ import org.springframework.context.annotation.PropertySource;
@Configuration
public class AppConfig {
- @Bean
- SecretBackend secretBackend() {return new AiravataSecretBackend();}
}
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/XmlConfiguration.java
similarity index 63%
copy from services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java
copy to services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/XmlConfiguration.java
index 6c407ad..a84b2b7 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/AppConfig.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/XmlConfiguration.java
@@ -15,18 +15,12 @@
* limitations under the License.
*/
-package org.apache.airavata.mft.secret.server;
+ package org.apache.airavata.mft.secret.server;
-import org.apache.airavata.mft.secret.server.backend.SecretBackend;
-import org.apache.airavata.mft.secret.server.backend.airavata.AiravataSecretBackend;
-import org.apache.airavata.mft.secret.server.backend.sql.SQLSecretBackend;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.ImportResource;
@Configuration
-public class AppConfig {
-
- @Bean
- SecretBackend secretBackend() {return new AiravataSecretBackend();}
+@ImportResource({"classpath*:applicationContext.xml"})
+public class XmlConfiguration {
}
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/airavata/AiravataSecretBackend.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/airavata/AiravataSecretBackend.java
index d749d7e..0576ecf 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/airavata/AiravataSecretBackend.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/airavata/AiravataSecretBackend.java
@@ -39,15 +39,13 @@ public class AiravataSecretBackend implements SecretBackend {
String secretId = request.getSecretId();
String[] parts = secretId.split(":");
String csToken = parts[0];
- String user = parts[1];
- String gateway = parts[2];
+ String gateway = parts[1];
SSHCredential sshCredential = csClient.getSSHCredential(csToken, gateway);
SCPSecret scpSecret = SCPSecret.newBuilder()
.setPrivateKey(sshCredential.getPrivateKey())
.setPublicKey(sshCredential.getPublicKey())
- .setPassphrase(sshCredential.getPassphrase())
- .setUser(user).build();
+ .setPassphrase(sshCredential.getPassphrase()).build();
return Optional.of(scpSecret);
}
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/file/FileBasedSecretBackend.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/file/FileBasedSecretBackend.java
new file mode 100644
index 0000000..0eab5c5
--- /dev/null
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/file/FileBasedSecretBackend.java
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+
+package org.apache.airavata.mft.secret.server.backend.file;
+
+import org.apache.airavata.mft.secret.server.backend.SecretBackend;
+import org.apache.airavata.mft.secret.service.*;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+public class FileBasedSecretBackend implements SecretBackend {
+
+ @Override
+ public Optional<SCPSecret> getSCPSecret(SCPSecretGetRequest request) throws Exception {
+ JSONParser jsonParser = new JSONParser();
+ InputStream inputStream = FileBasedSecretBackend.class.getClassLoader().getResourceAsStream("secrets.json");
+
+ try (InputStreamReader reader = new InputStreamReader(inputStream)) {
+ Object obj = jsonParser.parse(reader);
+
+ JSONArray resourceList = (JSONArray) obj;
+
+ System.out.println("All resources ");
+ List<SCPSecret> scpSecrets = (List<SCPSecret>) resourceList.stream()
+ .filter(resource -> "SCP".equals(((JSONObject) resource).get("type").toString()))
+ .map(resource -> {
+ JSONObject r = (JSONObject) resource;
+
+ SCPSecret scpSecret = SCPSecret.newBuilder()
+ .setSecretId(r.get("secretId").toString())
+ .setPublicKey(r.get("publicKey").toString())
+ .setPassphrase(r.get("passphrase").toString())
+ .setPrivateKey(r.get("privateKey").toString()).build();
+
+ return scpSecret;
+ }).collect(Collectors.toList());
+ return scpSecrets.stream().filter(r -> request.getSecretId().equals(r.getSecretId())).findFirst();
+ }
+ }
+
+ @Override
+ public SCPSecret createSCPSecret(SCPSecretCreateRequest request) {
+ return null;
+ }
+
+ @Override
+ public boolean updateSCPSecret(SCPSecretUpdateRequest request) {
+ return false;
+ }
+
+ @Override
+ public boolean deleteSCPSecret(SCPSecretDeleteRequest request) {
+ return false;
+ }
+}
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/entity/SCPSecretEntity.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/entity/SCPSecretEntity.java
index 3fd75d9..00319cc 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/entity/SCPSecretEntity.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/entity/SCPSecretEntity.java
@@ -42,9 +42,6 @@ public class SCPSecretEntity {
@Column(name = "PASSPHRASE")
private String passphrase;
- @Column(name = "USER_NAME")
- private String user;
-
public String getSecretId() {
return secretId;
}
@@ -76,12 +73,4 @@ public class SCPSecretEntity {
public void setPassphrase(String passphrase) {
this.passphrase = passphrase;
}
-
- public String getUser() {
- return user;
- }
-
- public void setUser(String user) {
- this.user = user;
- }
}
diff --git a/services/secret-service/server/src/main/resources/applicationContext.xml b/services/secret-service/server/src/main/resources/applicationContext.xml
new file mode 100644
index 0000000..78e3da3
--- /dev/null
+++ b/services/secret-service/server/src/main/resources/applicationContext.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <!-- <context:component-scan base-package="com.in28minutes.spring.basics"/> -->
+
+ <bean id="resourceBackend" class="org.apache.airavata.mft.secret.server.backend.file.FileBasedSecretBackend"></bean>
+
+</beans>
\ No newline at end of file
diff --git a/services/secret-service/server/src/main/resources/distribution/bin/setenv.sh b/services/secret-service/server/src/main/resources/distribution/bin/setenv.sh
index 9e894e1..1bc145e 100755
--- a/services/secret-service/server/src/main/resources/distribution/bin/setenv.sh
+++ b/services/secret-service/server/src/main/resources/distribution/bin/setenv.sh
@@ -42,5 +42,7 @@ do
AIRAVATA_CLASSPATH="$AIRAVATA_CLASSPATH":$f
done
+AIRAVATA_CLASSPATH="$AIRAVATA_CLASSPATH":"$AIRAVATA_HOME"/conf
+
export AIRAVATA_HOME
export AIRAVATA_CLASSPATH
diff --git a/services/secret-service/server/src/main/resources/distribution/conf/applicationContext.xml b/services/secret-service/server/src/main/resources/distribution/conf/applicationContext.xml
new file mode 100644
index 0000000..21b94b9
--- /dev/null
+++ b/services/secret-service/server/src/main/resources/distribution/conf/applicationContext.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <!-- <context:component-scan base-package="com.in28minutes.spring.basics"/> -->
+
+ <bean id="resourceBackend" class="org.apache.airavata.mft.secret.server.backend.airavata.AiravataSecretBackend"></bean>
+
+</beans>
\ No newline at end of file
diff --git a/services/secret-service/server/src/main/resources/distribution/conf/secrets.json b/services/secret-service/server/src/main/resources/distribution/conf/secrets.json
new file mode 100644
index 0000000..7a345a1
--- /dev/null
+++ b/services/secret-service/server/src/main/resources/distribution/conf/secrets.json
@@ -0,0 +1,9 @@
+[
+ {
+ "type": "SCP",
+ "secretId": "local-ssh-cred",
+ "privateKey": "",
+ "publicKey": "",
+ "passphrase": ""
+ }
+]
\ No newline at end of file
diff --git a/services/secret-service/server/src/main/resources/secrets.json b/services/secret-service/server/src/main/resources/secrets.json
new file mode 100644
index 0000000..7a345a1
--- /dev/null
+++ b/services/secret-service/server/src/main/resources/secrets.json
@@ -0,0 +1,9 @@
+[
+ {
+ "type": "SCP",
+ "secretId": "local-ssh-cred",
+ "privateKey": "",
+ "publicKey": "",
+ "passphrase": ""
+ }
+]
\ No newline at end of file
diff --git a/services/secret-service/stub/src/main/proto/SecretService.proto b/services/secret-service/stub/src/main/proto/SecretService.proto
index 9fa99b2..7b57b44 100644
--- a/services/secret-service/stub/src/main/proto/SecretService.proto
+++ b/services/secret-service/stub/src/main/proto/SecretService.proto
@@ -15,7 +15,6 @@ message SCPSecret {
string privateKey = 2;
string publicKey = 3;
string passphrase = 4;
- string user = 5;
}
message SCPSecretGetRequest {
@@ -27,7 +26,6 @@ message SCPSecretCreateRequest {
string privateKey = 1;
string publicKey = 2;
string passphrase = 3;
- string user = 4;
AuthToken authzToken = 5;
}
@@ -36,7 +34,6 @@ message SCPSecretUpdateRequest {
string privateKey = 2;
string publicKey = 3;
string passphrase = 4;
- string user = 5;
AuthToken authzToken = 6;
}
diff --git a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPMetadataCollector.java b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPMetadataCollector.java
index baf0b65..a8e60f6 100644
--- a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPMetadataCollector.java
+++ b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPMetadataCollector.java
@@ -151,7 +151,7 @@ public class SCPMetadataCollector implements MetadataCollector {
}));
sshClient.connect(scpResource.getScpStorage().getHost(), scpResource.getScpStorage().getPort());
- sshClient.auth(scpSecret.getUser(), am);
+ sshClient.auth(scpResource.getScpStorage().getUser(), am);
return sshClient;
}
diff --git a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java
index cc24b13..41c01fe 100644
--- a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java
+++ b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java
@@ -61,7 +61,7 @@ public class SCPReceiver implements Connector {
privateKeyFile.deleteOnExit();
this.session = SCPTransportUtil.createSession(
- scpSecret.getUser(),
+ scpResource.getScpStorage().getUser(),
scpResource.getScpStorage().getHost(),
scpResource.getScpStorage().getPort(),
privateKeyFile.getPath(),
diff --git a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPSender.java b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPSender.java
index 41c91aa..b8506e8 100644
--- a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPSender.java
+++ b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPSender.java
@@ -62,12 +62,12 @@ public class SCPSender implements Connector {
writer.close();
logger.info("Creating a ssh session for {}@{}:{} with key {} and passphrase {}",
- scpSecret.getUser(), scpResource.getScpStorage().getHost(),
+ scpResource.getScpStorage().getUser(), scpResource.getScpStorage().getHost(),
scpResource.getScpStorage().getPort(),
privateKeyFile.getPath(),
scpSecret.getPassphrase());
- this.session = SCPTransportUtil.createSession(scpSecret.getUser(), scpResource.getScpStorage().getHost(),
+ this.session = SCPTransportUtil.createSession(scpResource.getScpStorage().getUser(), scpResource.getScpStorage().getHost(),
scpResource.getScpStorage().getPort(),
privateKeyFile.getPath(),
scpSecret.getPassphrase());
diff --git a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java
index 9f3c3bb..fd2f4d5 100755
--- a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java
+++ b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java
@@ -20,68 +20,15 @@ package org.apache.airavata.mft.transport.scp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
-import org.apache.airavata.mft.resource.client.ResourceServiceClient;
-import org.apache.airavata.mft.resource.service.*;
-import org.apache.airavata.mft.secret.client.SecretServiceClient;
-import org.apache.airavata.mft.secret.service.SCPSecret;
-import org.apache.airavata.mft.secret.service.SCPSecretCreateRequest;
-import org.apache.airavata.mft.secret.service.SecretServiceGrpc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Properties;
public class SCPTransportUtil {
- // TODO replace with an API call to the registry
private static final Logger logger = LoggerFactory.getLogger(SCPTransportUtil.class);
- public static void main(String args[]) {
- ResourceServiceGrpc.ResourceServiceBlockingStub resourceClient = ResourceServiceClient.buildClient("localhost", 7002);
- SecretServiceGrpc.SecretServiceBlockingStub secretClient = SecretServiceClient.buildClient("localhost", 7003);
-
- //resourceClient.getSCPResource(SCPResourceGetRequest.newBuilder().setResourceId("82848d70-ef71-47d2-935a-4fd3e0184a42").build());
- SCPStorage scpStorage1 = resourceClient.createSCPStorage(SCPStorageCreateRequest.newBuilder().setPort(22).setHost("pgadev.scigap.org").build());
- SCPResource scpResource1 = resourceClient.createSCPResource(SCPResourceCreateRequest.newBuilder().setScpStorageId(scpStorage1.getStorageId())
- .setResourcePath("/var/www/portals/gateway-user-data/dev-seagrid/eromads6/DefaultProject/Gaussian_C11470169729/2mb.txt").build());
- SCPResource scpResource2 = resourceClient.createSCPResource(SCPResourceCreateRequest.newBuilder().setScpStorageId(scpStorage1.getStorageId())
- .setResourcePath("/var/www/portals/gateway-user-data/dev-seagrid/eromads6/DefaultProject/Gaussian_C11470169729/new-file.txt").build());
-
- System.out.println("Resource 1 id " + scpResource1.getResourceId());
- System.out.println("Resource 2 id " + scpResource2.getResourceId());
-
- SCPSecret scpSecret1 = secretClient.createSCPSecret(SCPSecretCreateRequest.newBuilder()
- .setUser("pga")
- .setPassphrase("shithappens@12")
- .setPrivateKey("/Users/dimuthu/.ssh/id_rsa").build());
-
- System.out.println("Secret id " + scpSecret1.getSecretId());
- }
-
- public static SSHResourceIdentifier getSSHResourceIdentifier(String resourceId) {
-
- SSHResourceIdentifier identifier = new SSHResourceIdentifier();
- switch (resourceId){
- case "1":
- identifier.setHost("pgadev.scigap.org");
- identifier.setUser("pga");
- identifier.setPort(22);
- identifier.setKeyFile("/Users/dwannipu/.ssh/id_rsa");
- identifier.setKeyPassphrase(null);
- identifier.setRemotePath("/var/www/portals/gateway-user-data/dev-seagrid/eromads6/DefaultProject/Gaussian_C11470169729/file.txt");
- return identifier;
- case "2":
- identifier.setHost("pgadev.scigap.org");
- identifier.setUser("pga");
- identifier.setPort(22);
- identifier.setKeyFile("/Users/dwannipu/.ssh/id_rsa");
- identifier.setKeyPassphrase(null);
- identifier.setRemotePath("/var/www/portals/gateway-user-data/dev-seagrid/eromads6/DefaultProject/Gaussian_C11470169729/new-file.txt");
- return identifier;
- }
- return null;
- }
-
public static Session createSession(String user, String host, int port, String keyFilePath, String keyPassword) throws Exception {
try {
JSch jsch = new JSch();