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