You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/03/03 20:37:14 UTC

airavata git commit: gateway notion to app catalog - AIRAVATA-1605

Repository: airavata
Updated Branches:
  refs/heads/master 050ea840f -> 672d13e2b


gateway notion to app catalog - AIRAVATA-1605


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/672d13e2
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/672d13e2
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/672d13e2

Branch: refs/heads/master
Commit: 672d13e2bbdaa08f9cbd903f3a4b0ddfb6563a53
Parents: 050ea84
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Tue Mar 3 14:37:09 2015 -0500
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Tue Mar 3 14:37:09 2015 -0500

----------------------------------------------------------------------
 .../data/impl/GwyResourceProfileImpl.java       |   2 +
 .../data/model/ApplicationDeployment.java       |  10 +
 .../data/model/ApplicationInterface.java        |  10 +
 .../data/model/ComputeResourcePreference.java   |  10 +
 .../catalog/data/model/Workflow.java            |  10 +
 .../data/resources/AppDeploymentResource.java   |  11 +
 .../data/resources/AppInterfaceResource.java    |  11 +
 .../ComputeHostPreferenceResource.java          |  11 +
 .../data/resources/WorkflowResource.java        |  10 +
 .../catalog/data/util/AppCatalogJPAUtils.java   |   4 +
 .../data/util/AppCatalogThriftConversion.java   |   1 +
 .../src/main/resources/appcatalog-derby.sql     | 208 ++++++++++---------
 .../src/main/resources/appcatalog-mysql.sql     | 204 +++++++++---------
 .../src/test/resources/appcatalog-derby.sql     | 208 ++++++++++---------
 14 files changed, 405 insertions(+), 305 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java
index 9b4836c..d03ef2a 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java
@@ -58,6 +58,7 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
                     resource.setComputeHostResource((ComputeResourceResource)computeHostResource.get(preference.getComputeResourceId()));
                     resource.setGatewayId(profileResource.getGatewayID());
                     resource.setOverrideByAiravata(preference.isOverridebyAiravata());
+                    resource.setLoginUserName(preference.getLoginUserName());
                     if (preference.getPreferredJobSubmissionProtocol() != null){
                         resource.setPreferredJobProtocol(preference.getPreferredJobSubmissionProtocol().toString());
                     }
@@ -95,6 +96,7 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
                     ComputeResourceResource computeHostResource = new ComputeResourceResource();
                     resource.setComputeHostResource((ComputeResourceResource)computeHostResource.get(preference.getComputeResourceId()));
                     resource.setGatewayId(gatewayId);
+                    resource.setLoginUserName(preference.getLoginUserName());
                     resource.setOverrideByAiravata(preference.isOverridebyAiravata());
                     if (preference.getPreferredJobSubmissionProtocol() != null){
                         resource.setPreferredJobProtocol(preference.getPreferredJobSubmissionProtocol().toString());

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java
index 9cca5eb..e5468a0 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java
@@ -41,6 +41,8 @@ public class ApplicationDeployment implements Serializable {
     private String applicationDesc;
     @Column(name = "PARALLELISM")
     private String parallelism;
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
     
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "APP_MODULE_ID")
@@ -56,6 +58,14 @@ public class ApplicationDeployment implements Serializable {
     @Column(name = "UPDATE_TIME")
     private Timestamp updateTime;
 
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
     public Timestamp getCreationTime() {
         return creationTime;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInterface.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInterface.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInterface.java
index c7c1ad2..4f9c6a3 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInterface.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInterface.java
@@ -40,10 +40,20 @@ public class ApplicationInterface implements Serializable {
     private String appDescription;
     @Column(name = "CREATION_TIME")
     private Timestamp creationTime;
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
 
     @Column(name = "UPDATE_TIME")
     private Timestamp updateTime;
 
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
     public Timestamp getCreationTime() {
         return creationTime;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ComputeResourcePreference.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ComputeResourcePreference.java
index 69a2789..7643519 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ComputeResourcePreference.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ComputeResourcePreference.java
@@ -53,6 +53,8 @@ public class ComputeResourcePreference {
     private String scratchLocation;
     @Column(name = "ALLOCATION_PROJECT_NUMBER")
     private String projectNumber;
+    @Column(name = "LOGIN_USERNAME")
+    private String loginUserName;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "RESOURCE_ID")
@@ -141,4 +143,12 @@ public class ComputeResourcePreference {
     public void setGatewayProfile(GatewayProfile gatewayProfile) {
         this.gatewayProfile = gatewayProfile;
     }
+
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java
index 5ebe081..910bd02 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/Workflow.java
@@ -56,6 +56,16 @@ public class Workflow implements Serializable {
     @Column(name = "IMAGE")
     private byte[] image;
 
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
 
     public Timestamp getCreationTime() {
         return creationTime;

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java
index 33351de..184d4af 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java
@@ -47,11 +47,20 @@ public class AppDeploymentResource extends AbstractResource {
     private String executablePath;
     private String parallelism;
     private String appDes;
+    private String gatewayId;
     private ComputeResourceResource hostResource;
     private AppModuleResource moduleResource;
     private Timestamp createdTime;
     private Timestamp updatedTime;
 
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
     public Timestamp getCreatedTime() {
         return createdTime;
     }
@@ -372,6 +381,7 @@ public class AppDeploymentResource extends AbstractResource {
                 existingDeployment.setHostID(hostId);
                 existingDeployment.setExecutablePath(executablePath);
                 existingDeployment.setParallelism(parallelism);
+                existingDeployment.setGatewayId(gatewayId);
                 existingDeployment.setUpdateTime(AiravataUtils.getCurrentTimestamp());
                 em.merge(existingDeployment);
             }else {
@@ -384,6 +394,7 @@ public class AppDeploymentResource extends AbstractResource {
                 deployment.setComputeResource(computeHost);
                 deployment.setExecutablePath(executablePath);
                 deployment.setParallelism(parallelism);
+                deployment.setGatewayId(gatewayId);
                 deployment.setCreationTime(AiravataUtils.getCurrentTimestamp());
                 em.persist(deployment);
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppInterfaceResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppInterfaceResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppInterfaceResource.java
index 7d8f771..89ad202 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppInterfaceResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppInterfaceResource.java
@@ -44,6 +44,15 @@ public class AppInterfaceResource extends AbstractResource {
     private String appDescription;
     private Timestamp createdTime;
     private Timestamp updatedTime;
+    private String gatewayId;
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
 
     public Timestamp getCreatedTime() {
         return createdTime;
@@ -304,6 +313,7 @@ public class AppInterfaceResource extends AbstractResource {
                 existigAppInterface.setAppName(appName);
                 existigAppInterface.setAppDescription(appDescription);
                 existigAppInterface.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+                existigAppInterface.setGatewayId(gatewayId);
                 em.merge(existigAppInterface);
             }else {
                 ApplicationInterface applicationInterface = new ApplicationInterface();
@@ -311,6 +321,7 @@ public class AppInterfaceResource extends AbstractResource {
                 applicationInterface.setAppName(appName);
                 applicationInterface.setAppDescription(appDescription);
                 applicationInterface.setCreationTime(AiravataUtils.getCurrentTimestamp());
+                applicationInterface.setGatewayId(gatewayId);
                 em.persist(applicationInterface);
             }
             em.getTransaction().commit();

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ComputeHostPreferenceResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ComputeHostPreferenceResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ComputeHostPreferenceResource.java
index 2049bb3..51f22d5 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ComputeHostPreferenceResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ComputeHostPreferenceResource.java
@@ -50,10 +50,19 @@ public class ComputeHostPreferenceResource extends AbstractResource {
     private String batchQueue;
     private String scratchLocation;
     private String projectNumber;
+    private String loginUserName;
 
     private GatewayProfileResource gatewayProfile;
     private ComputeResourceResource computeHostResource;
 
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
+
     public String getGatewayId() {
         return gatewayId;
     }
@@ -339,6 +348,7 @@ public class ComputeHostPreferenceResource extends AbstractResource {
                 existingPreference.setScratchLocation(scratchLocation);
                 existingPreference.setProjectNumber(projectNumber);
                 existingPreference.setBatchQueue(batchQueue);
+                existingPreference.setLoginUserName(loginUserName);
                 em.merge(existingPreference);
             } else {
                 ComputeResourcePreference resourcePreference = new ComputeResourcePreference();
@@ -352,6 +362,7 @@ public class ComputeHostPreferenceResource extends AbstractResource {
                 resourcePreference.setScratchLocation(scratchLocation);
                 resourcePreference.setProjectNumber(projectNumber);
                 resourcePreference.setBatchQueue(batchQueue);
+                resourcePreference.setLoginUserName(loginUserName);
                 em.persist(resourcePreference);
             }
             em.getTransaction().commit();

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java
index 46d150d..a872fa4 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowResource.java
@@ -46,6 +46,7 @@ public class WorkflowResource extends AbstractResource {
     private Timestamp createdTime;
     private Timestamp updatedTime;
     private String image;
+    private String gatewayId;
 
     public Timestamp getCreatedTime() {
         return createdTime;
@@ -71,6 +72,14 @@ public class WorkflowResource extends AbstractResource {
         this.image = image;
     }
 
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
     @Override
     public void remove(Object identifier) throws AppCatalogException {
         EntityManager em = null;
@@ -288,6 +297,7 @@ public class WorkflowResource extends AbstractResource {
             }
             workflow.setWfName(getWfName());
             workflow.setCreatedUser(getCreatedUser());
+            workflow.setGatewayId(gatewayId);
             if (getGraph() != null){
                 workflow.setGraph(getGraph().toCharArray());
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
index 81c2df1..e416a40 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
@@ -702,6 +702,7 @@ public class AppCatalogJPAUtils {
             resource.setAppModuleId(o.getAppModuleID());
             resource.setHostId(o.getHostID());
             resource.setExecutablePath(o.getExecutablePath());
+            resource.setGatewayId(o.getGatewayId());
             resource.setParallelism(o.getParallelism());
             resource.setModuleResource((AppModuleResource) createApplicationModule(o.getApplicationModule()));
             resource.setHostResource((ComputeResourceResource) createComputeResource(o.getComputeResource()));
@@ -753,6 +754,7 @@ public class AppCatalogJPAUtils {
             resource.setAppName(o.getAppName());
             resource.setAppDescription(o.getAppDescription());
             resource.setCreatedTime(o.getCreationTime());
+            resource.setGatewayId(o.getGatewayId());
             if (o.getUpdateTime() != null){
                 resource.setUpdatedTime(o.getUpdateTime());
             }
@@ -869,6 +871,7 @@ public class AppCatalogJPAUtils {
             resource.setBatchQueue(o.getBatchQueue());
             resource.setScratchLocation(o.getScratchLocation());
             resource.setProjectNumber(o.getProjectNumber());
+            resource.setLoginUserName(o.getLoginUserName());
             resource.setComputeHostResource((ComputeResourceResource) createComputeResource(o.getComputeHostResource()));
             resource.setGatewayProfile((GatewayProfileResource) createGatewayProfile(o.getGatewayProfile()));
         }
@@ -900,6 +903,7 @@ public class AppCatalogJPAUtils {
             workflowResource.setUpdatedTime(o.getUpdateTime());
         }
         workflowResource.setWfTemplateId(o.getWfTemplateId());
+        workflowResource.setGatewayId(o.getGatewayId());
         return workflowResource;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
index 7bbd587..1df6c24 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
@@ -725,6 +725,7 @@ public class AppCatalogThriftConversion {
         preference.setPreferredBatchQueue(resource.getBatchQueue());
         preference.setScratchLocation(resource.getScratchLocation());
         preference.setAllocationProjectNumber(resource.getProjectNumber());
+        preference.setLoginUserName(resource.getLoginUserName());
         return preference;
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
index c366bc2..1addb44 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
@@ -21,13 +21,13 @@
 
 CREATE TABLE COMPUTE_RESOURCE
 (
-	RESOURCE_ID VARCHAR (255) NOT NULL,
-	HOST_NAME VARCHAR (255) NOT NULL,
-	RESOURCE_DESCRIPTION VARCHAR (255),
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	MAX_MEMORY_NODE INTEGER,
-	PRIMARY KEY (RESOURCE_ID)
+        RESOURCE_ID VARCHAR (255) NOT NULL,
+        HOST_NAME VARCHAR (255) NOT NULL,
+        RESOURCE_DESCRIPTION VARCHAR (255),
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        MAX_MEMORY_NODE INTEGER,
+        PRIMARY KEY (RESOURCE_ID)
 );
 
 CREATE TABLE HOST_ALIAS
@@ -101,57 +101,57 @@ CREATE TABLE GLOBUS_GK_ENDPOINT
 
 CREATE TABLE RESOURCE_JOB_MANAGER
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	PUSH_MONITORING_ENDPOINT VARCHAR (255),
-	JOB_MANAGER_BIN_PATH VARCHAR (255),
-	RESOURCE_JOB_MANAGER_TYPE VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (RESOURCE_JOB_MANAGER_ID)
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        PUSH_MONITORING_ENDPOINT VARCHAR (255),
+        JOB_MANAGER_BIN_PATH VARCHAR (255),
+        RESOURCE_JOB_MANAGER_TYPE VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (RESOURCE_JOB_MANAGER_ID)
 );
 
 CREATE TABLE SSH_JOB_SUBMISSION
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	ALTERNATIVE_SSH_HOSTNAME VARCHAR (255),
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	SSH_PORT INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        ALTERNATIVE_SSH_HOSTNAME VARCHAR (255),
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        SSH_PORT INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
 );
 
 CREATE TABLE SCP_DATA_MOVEMENT
 (
-	QUEUE_DESCRIPTION VARCHAR (255),
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	ALTERNATIVE_SCP_HOSTNAME VARCHAR (255),
-	SSH_PORT INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+        QUEUE_DESCRIPTION VARCHAR (255),
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        ALTERNATIVE_SCP_HOSTNAME VARCHAR (255),
+        SSH_PORT INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE GRIDFTP_DATA_MOVEMENT
 (
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE GRIDFTP_ENDPOINT
 (
-	ENDPOINT VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID,ENDPOINT),
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	FOREIGN KEY (DATA_MOVEMENT_INTERFACE_ID) REFERENCES GRIDFTP_DATA_MOVEMENT(DATA_MOVEMENT_INTERFACE_ID) ON DELETE CASCADE
+        ENDPOINT VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID,ENDPOINT),
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        FOREIGN KEY (DATA_MOVEMENT_INTERFACE_ID) REFERENCES GRIDFTP_DATA_MOVEMENT(DATA_MOVEMENT_INTERFACE_ID) ON DELETE CASCADE
 );
 
 --CREATE TABLE JOB_SUBMISSION_PROTOCOL
@@ -193,10 +193,11 @@ CREATE TABLE APPLICATION_DEPLOYMENT
          APP_MODULE_ID VARCHAR(255),
          COMPUTE_HOSTID VARCHAR(255),
          EXECUTABLE_PATH VARCHAR(255),
-	     PARALLELISM VARCHAR(255),
+	       PARALLELISM VARCHAR(255),
          APPLICATION_DESC VARCHAR(255),
          CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+         GATEWAY_ID VARCHAR(255),
          PRIMARY KEY(DEPLOYMENT_ID),
          FOREIGN KEY (COMPUTE_HOSTID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
          FOREIGN KEY (APP_MODULE_ID) REFERENCES APPLICATION_MODULE(MODULE_ID) ON DELETE CASCADE
@@ -204,10 +205,10 @@ CREATE TABLE APPLICATION_DEPLOYMENT
 
 CREATE TABLE MODULE_LOAD_CMD
 (
-	CMD VARCHAR (255) NOT NULL,
-	APP_DEPLOYMENT_ID VARCHAR (255) NOT NULL,
-	PRIMARY KEY (APP_DEPLOYMENT_ID,CMD),
-	FOREIGN KEY (APP_DEPLOYMENT_ID) REFERENCES APPLICATION_DEPLOYMENT(DEPLOYMENT_ID) ON DELETE CASCADE
+        CMD VARCHAR (255) NOT NULL,
+        APP_DEPLOYMENT_ID VARCHAR (255) NOT NULL,
+        PRIMARY KEY (APP_DEPLOYMENT_ID,CMD),
+        FOREIGN KEY (APP_DEPLOYMENT_ID) REFERENCES APPLICATION_DEPLOYMENT(DEPLOYMENT_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE PREJOB_COMMAND
@@ -258,6 +259,7 @@ CREATE TABLE APPLICATION_INTERFACE
          INTERFACE_ID VARCHAR(255),
          APPLICATION_NAME VARCHAR(255),
          APPLICATION_DESCRIPTION VARCHAR(255),
+         GATEWAY_ID VARCHAR(255),
          CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
          PRIMARY KEY(INTERFACE_ID)
@@ -324,6 +326,7 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
         PREFERED_BATCH_QUEUE VARCHAR(255),
         SCRATCH_LOCATION VARCHAR(255),
         ALLOCATION_PROJECT_NUMBER VARCHAR(255),
+        LOGIN_USERNAME VARCHAR(255),
         PRIMARY KEY(GATEWAY_ID,RESOURCE_ID),
         FOREIGN KEY (RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
         FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
@@ -331,86 +334,87 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
 
 CREATE TABLE BATCH_QUEUE
 (
-	COMPUTE_RESOURCE_ID VARCHAR(255) NOT NULL,
-	MAX_RUNTIME INTEGER,
-	MAX_JOB_IN_QUEUE INTEGER,
-	QUEUE_DESCRIPTION VARCHAR(255),
-	QUEUE_NAME VARCHAR(255) NOT NULL,
-	MAX_PROCESSORS INTEGER,
-	MAX_NODES INTEGER,
-	MAX_MEMORY INTEGER,
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,QUEUE_NAME),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        COMPUTE_RESOURCE_ID VARCHAR(255) NOT NULL,
+        MAX_RUNTIME INTEGER,
+        MAX_JOB_IN_QUEUE INTEGER,
+        QUEUE_DESCRIPTION VARCHAR(255),
+        QUEUE_NAME VARCHAR(255) NOT NULL,
+        MAX_PROCESSORS INTEGER,
+        MAX_NODES INTEGER,
+        MAX_MEMORY INTEGER,
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,QUEUE_NAME),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE COMPUTE_RESOURCE_FILE_SYSTEM
 (
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	PATH VARCHAR (255),
-	FILE_SYSTEM VARCHAR (255) NOT NULL,
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,FILE_SYSTEM),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
-);
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        PATH VARCHAR (255),
+        FILE_SYSTEM VARCHAR (255) NOT NULL,
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,FILE_SYSTEM),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+  );
 
 CREATE TABLE JOB_SUBMISSION_INTERFACE
 (
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_PROTOCOL VARCHAR (255) NOT NULL,
-	PRIORITY_ORDER INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_PROTOCOL VARCHAR (255) NOT NULL,
+        PRIORITY_ORDER INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
  
 CREATE TABLE DATA_MOVEMENT_INTERFACE
 (
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_PROTOCOL VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIORITY_ORDER INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,DATA_MOVEMENT_INTERFACE_ID),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_PROTOCOL VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        PRIORITY_ORDER INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,DATA_MOVEMENT_INTERFACE_ID),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE JOB_MANAGER_COMMAND
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	COMMAND_TYPE VARCHAR (255) NOT NULL,
-	COMMAND VARCHAR (255),
-	PRIMARY KEY (RESOURCE_JOB_MANAGER_ID,COMMAND_TYPE),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID) ON DELETE CASCADE
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        COMMAND_TYPE VARCHAR (255) NOT NULL,
+        COMMAND VARCHAR (255),
+        PRIMARY KEY (RESOURCE_JOB_MANAGER_ID,COMMAND_TYPE),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE LOCAL_SUBMISSION
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
-);
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
+      );
 
 CREATE TABLE LOCAL_DATA_MOVEMENT
 (
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+	     DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+	     PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE WORKFLOW
 (
-	WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
-	WF_NAME VARCHAR (255) NOT NULL,
-	GRAPH CLOB,
-	OWNER VARCHAR(255),
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	IMAGE BLOB,
-	PRIMARY KEY (WF_TEMPLATE_ID)
+        WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
+        WF_NAME VARCHAR (255) NOT NULL,
+        GRAPH CLOB,
+        OWNER VARCHAR(255),
+        GATEWAY_ID VARCHAR(255),
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        IMAGE BLOB,
+        PRIMARY KEY (WF_TEMPLATE_ID)
 );
 
 CREATE TABLE WORKFLOW_INPUT
@@ -444,7 +448,7 @@ CREATE TABLE CONFIGURATION
         PRIMARY KEY(CONFIG_KEY, CONFIG_VAL)
 );
 
-INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.14');
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.15');
 
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
index 304175a..6a3d5c9 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
@@ -20,13 +20,13 @@
  */
 CREATE TABLE COMPUTE_RESOURCE
 (
-	RESOURCE_ID VARCHAR (255) NOT NULL,
-	HOST_NAME VARCHAR (255) NOT NULL,
-	RESOURCE_DESCRIPTION VARCHAR (255),
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	MAX_MEMORY_NODE INTEGER,
-	PRIMARY KEY (RESOURCE_ID)
+          RESOURCE_ID VARCHAR (255) NOT NULL,
+          HOST_NAME VARCHAR (255) NOT NULL,
+          RESOURCE_DESCRIPTION VARCHAR (255),
+          CREATION_TIME TIMESTAMP DEFAULT NOW(),
+          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+          MAX_MEMORY_NODE INTEGER,
+          PRIMARY KEY (RESOURCE_ID)
 );
 
 CREATE TABLE HOST_ALIAS
@@ -112,57 +112,57 @@ CREATE TABLE GLOBUS_GK_ENDPOINT
 
 CREATE TABLE RESOURCE_JOB_MANAGER
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	PUSH_MONITORING_ENDPOINT VARCHAR (255),
-	JOB_MANAGER_BIN_PATH VARCHAR (255),
-	RESOURCE_JOB_MANAGER_TYPE VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-    UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (RESOURCE_JOB_MANAGER_ID)
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        PUSH_MONITORING_ENDPOINT VARCHAR (255),
+        JOB_MANAGER_BIN_PATH VARCHAR (255),
+        RESOURCE_JOB_MANAGER_TYPE VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (RESOURCE_JOB_MANAGER_ID)
 );
 
 CREATE TABLE SSH_JOB_SUBMISSION
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	ALTERNATIVE_SSH_HOSTNAME VARCHAR (255),
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	SSH_PORT INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-    UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
-	PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        ALTERNATIVE_SSH_HOSTNAME VARCHAR (255),
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        SSH_PORT INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
+        PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
 );
 
 CREATE TABLE SCP_DATA_MOVEMENT
 (
-	QUEUE_DESCRIPTION VARCHAR (255),
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	ALTERNATIVE_SCP_HOSTNAME VARCHAR (255),
-	SSH_PORT INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-    UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+        QUEUE_DESCRIPTION VARCHAR (255),
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        ALTERNATIVE_SCP_HOSTNAME VARCHAR (255),
+        SSH_PORT INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE GRIDFTP_DATA_MOVEMENT
 (
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-    UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE GRIDFTP_ENDPOINT
 (
-	ENDPOINT VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID,ENDPOINT),
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-    UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
-	FOREIGN KEY (DATA_MOVEMENT_INTERFACE_ID) REFERENCES GRIDFTP_DATA_MOVEMENT(DATA_MOVEMENT_INTERFACE_ID) ON DELETE CASCADE
+        ENDPOINT VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID,ENDPOINT),
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
+        FOREIGN KEY (DATA_MOVEMENT_INTERFACE_ID) REFERENCES GRIDFTP_DATA_MOVEMENT(DATA_MOVEMENT_INTERFACE_ID) ON DELETE CASCADE
 );
 
 --CREATE TABLE JOB_SUBMISSION_PROTOCOL
@@ -189,7 +189,7 @@ CREATE TABLE APPLICATION_MODULE
          MODULE_NAME VARCHAR(255),
          MODULE_VERSION VARCHAR(255),
          MODULE_DESC VARCHAR(255),
-	     CREATION_TIME TIMESTAMP DEFAULT NOW(),
+	       CREATION_TIME TIMESTAMP DEFAULT NOW(),
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
          PRIMARY KEY(MODULE_ID)
 );
@@ -200,11 +200,12 @@ CREATE TABLE APPLICATION_DEPLOYMENT
          APP_MODULE_ID VARCHAR(255),
          COMPUTE_HOSTID VARCHAR(255),
          EXECUTABLE_PATH VARCHAR(255),
-	     PARALLELISM VARCHAR(255),
+	       PARALLELISM VARCHAR(255),
          APPLICATION_DESC VARCHAR(255),
          ENV_MODULE_LOAD_CMD VARCHAR(255),
-	     CREATION_TIME TIMESTAMP DEFAULT NOW(),
+	       CREATION_TIME TIMESTAMP DEFAULT NOW(),
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
+         GATEWAY_ID VARCHAR(255),
          PRIMARY KEY(DEPLOYMENT_ID),
          FOREIGN KEY (COMPUTE_HOSTID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
          FOREIGN KEY (APP_MODULE_ID) REFERENCES APPLICATION_MODULE(MODULE_ID) ON DELETE CASCADE
@@ -324,6 +325,7 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
         PREFERED_BATCH_QUEUE VARCHAR(255),
         SCRATCH_LOCATION VARCHAR(255),
         ALLOCATION_PROJECT_NUMBER VARCHAR(255),
+        LOGIN_USERNAME VARCHAR(255),
         PRIMARY KEY(GATEWAY_ID,RESOURCE_ID),
         FOREIGN KEY (RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
         FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
@@ -331,86 +333,86 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
 
 CREATE TABLE BATCH_QUEUE
 (
-	COMPUTE_RESOURCE_ID VARCHAR(255) NOT NULL,
-	MAX_RUNTIME INTEGER,
-	MAX_JOB_IN_QUEUE INTEGER,
-	QUEUE_DESCRIPTION VARCHAR(255),
-	QUEUE_NAME VARCHAR(255) NOT NULL,
-	MAX_PROCESSORS INTEGER,
-	MAX_NODES INTEGER,
-	MAX_MEMORY INTEGER,
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,QUEUE_NAME),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        COMPUTE_RESOURCE_ID VARCHAR(255) NOT NULL,
+        MAX_RUNTIME INTEGER,
+        MAX_JOB_IN_QUEUE INTEGER,
+        QUEUE_DESCRIPTION VARCHAR(255),
+        QUEUE_NAME VARCHAR(255) NOT NULL,
+        MAX_PROCESSORS INTEGER,
+        MAX_NODES INTEGER,
+        MAX_MEMORY INTEGER,
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,QUEUE_NAME),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE COMPUTE_RESOURCE_FILE_SYSTEM
 (
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	PATH VARCHAR (255),
-	FILE_SYSTEM VARCHAR (255) NOT NULL,
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,FILE_SYSTEM),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        PATH VARCHAR (255),
+        FILE_SYSTEM VARCHAR (255) NOT NULL,
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,FILE_SYSTEM),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE JOB_SUBMISSION_INTERFACE
 (
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_PROTOCOL VARCHAR (255) NOT NULL,
-	PRIORITY_ORDER INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-    UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_PROTOCOL VARCHAR (255) NOT NULL,
+        PRIORITY_ORDER INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
  
 CREATE TABLE DATA_MOVEMENT_INTERFACE
 (
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_PROTOCOL VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIORITY_ORDER INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-    UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,DATA_MOVEMENT_INTERFACE_ID),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_PROTOCOL VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        PRIORITY_ORDER INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,DATA_MOVEMENT_INTERFACE_ID),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE JOB_MANAGER_COMMAND
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	COMMAND_TYPE VARCHAR (255) NOT NULL,
-	COMMAND VARCHAR (255),
-	PRIMARY KEY (RESOURCE_JOB_MANAGER_ID,COMMAND_TYPE),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID) ON DELETE CASCADE
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        COMMAND_TYPE VARCHAR (255) NOT NULL,
+        COMMAND VARCHAR (255),
+        PRIMARY KEY (RESOURCE_JOB_MANAGER_ID,COMMAND_TYPE),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE LOCAL_SUBMISSION
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-    UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
 );
 
 CREATE TABLE LOCAL_DATA_MOVEMENT
 (
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE WORKFLOW
 (
-	WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
-	WF_NAME VARCHAR (255) NOT NULL,
-	GRAPH LONGTEXT,
-	OWNER VARCHAR(255),
-	CREATION_TIME TIMESTAMP DEFAULT NOW(),
-  UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-  IMAGE BLOB,
-	PRIMARY KEY (WF_TEMPLATE_ID)
+        WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
+        WF_NAME VARCHAR (255) NOT NULL,
+        GRAPH LONGTEXT,
+        OWNER VARCHAR(255),
+        CREATION_TIME TIMESTAMP DEFAULT NOW(),
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        IMAGE BLOB,
+        PRIMARY KEY (WF_TEMPLATE_ID)
 );
 
 CREATE TABLE WORKFLOW_INPUT
@@ -439,10 +441,10 @@ CREATE TABLE WORKFLOW_OUTPUT
 
 CREATE TABLE CONFIGURATION
 (
-        CONFIG_KEY VARCHAR(255),
-        CONFIG_VAL VARCHAR(255),
-        PRIMARY KEY(CONFIG_KEY, CONFIG_VAL)
+          CONFIG_KEY VARCHAR(255),
+          CONFIG_VAL VARCHAR(255),
+          PRIMARY KEY(CONFIG_KEY, CONFIG_VAL)
 );
 
-INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.14');
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.15');
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/672d13e2/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
index c366bc2..1addb44 100644
--- a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
@@ -21,13 +21,13 @@
 
 CREATE TABLE COMPUTE_RESOURCE
 (
-	RESOURCE_ID VARCHAR (255) NOT NULL,
-	HOST_NAME VARCHAR (255) NOT NULL,
-	RESOURCE_DESCRIPTION VARCHAR (255),
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	MAX_MEMORY_NODE INTEGER,
-	PRIMARY KEY (RESOURCE_ID)
+        RESOURCE_ID VARCHAR (255) NOT NULL,
+        HOST_NAME VARCHAR (255) NOT NULL,
+        RESOURCE_DESCRIPTION VARCHAR (255),
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        MAX_MEMORY_NODE INTEGER,
+        PRIMARY KEY (RESOURCE_ID)
 );
 
 CREATE TABLE HOST_ALIAS
@@ -101,57 +101,57 @@ CREATE TABLE GLOBUS_GK_ENDPOINT
 
 CREATE TABLE RESOURCE_JOB_MANAGER
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	PUSH_MONITORING_ENDPOINT VARCHAR (255),
-	JOB_MANAGER_BIN_PATH VARCHAR (255),
-	RESOURCE_JOB_MANAGER_TYPE VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (RESOURCE_JOB_MANAGER_ID)
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        PUSH_MONITORING_ENDPOINT VARCHAR (255),
+        JOB_MANAGER_BIN_PATH VARCHAR (255),
+        RESOURCE_JOB_MANAGER_TYPE VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (RESOURCE_JOB_MANAGER_ID)
 );
 
 CREATE TABLE SSH_JOB_SUBMISSION
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	ALTERNATIVE_SSH_HOSTNAME VARCHAR (255),
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	SSH_PORT INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        ALTERNATIVE_SSH_HOSTNAME VARCHAR (255),
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        SSH_PORT INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
 );
 
 CREATE TABLE SCP_DATA_MOVEMENT
 (
-	QUEUE_DESCRIPTION VARCHAR (255),
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	ALTERNATIVE_SCP_HOSTNAME VARCHAR (255),
-	SSH_PORT INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+        QUEUE_DESCRIPTION VARCHAR (255),
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        ALTERNATIVE_SCP_HOSTNAME VARCHAR (255),
+        SSH_PORT INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE GRIDFTP_DATA_MOVEMENT
 (
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        SECURITY_PROTOCOL VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE GRIDFTP_ENDPOINT
 (
-	ENDPOINT VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID,ENDPOINT),
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	FOREIGN KEY (DATA_MOVEMENT_INTERFACE_ID) REFERENCES GRIDFTP_DATA_MOVEMENT(DATA_MOVEMENT_INTERFACE_ID) ON DELETE CASCADE
+        ENDPOINT VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID,ENDPOINT),
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        FOREIGN KEY (DATA_MOVEMENT_INTERFACE_ID) REFERENCES GRIDFTP_DATA_MOVEMENT(DATA_MOVEMENT_INTERFACE_ID) ON DELETE CASCADE
 );
 
 --CREATE TABLE JOB_SUBMISSION_PROTOCOL
@@ -193,10 +193,11 @@ CREATE TABLE APPLICATION_DEPLOYMENT
          APP_MODULE_ID VARCHAR(255),
          COMPUTE_HOSTID VARCHAR(255),
          EXECUTABLE_PATH VARCHAR(255),
-	     PARALLELISM VARCHAR(255),
+	       PARALLELISM VARCHAR(255),
          APPLICATION_DESC VARCHAR(255),
          CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+         GATEWAY_ID VARCHAR(255),
          PRIMARY KEY(DEPLOYMENT_ID),
          FOREIGN KEY (COMPUTE_HOSTID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
          FOREIGN KEY (APP_MODULE_ID) REFERENCES APPLICATION_MODULE(MODULE_ID) ON DELETE CASCADE
@@ -204,10 +205,10 @@ CREATE TABLE APPLICATION_DEPLOYMENT
 
 CREATE TABLE MODULE_LOAD_CMD
 (
-	CMD VARCHAR (255) NOT NULL,
-	APP_DEPLOYMENT_ID VARCHAR (255) NOT NULL,
-	PRIMARY KEY (APP_DEPLOYMENT_ID,CMD),
-	FOREIGN KEY (APP_DEPLOYMENT_ID) REFERENCES APPLICATION_DEPLOYMENT(DEPLOYMENT_ID) ON DELETE CASCADE
+        CMD VARCHAR (255) NOT NULL,
+        APP_DEPLOYMENT_ID VARCHAR (255) NOT NULL,
+        PRIMARY KEY (APP_DEPLOYMENT_ID,CMD),
+        FOREIGN KEY (APP_DEPLOYMENT_ID) REFERENCES APPLICATION_DEPLOYMENT(DEPLOYMENT_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE PREJOB_COMMAND
@@ -258,6 +259,7 @@ CREATE TABLE APPLICATION_INTERFACE
          INTERFACE_ID VARCHAR(255),
          APPLICATION_NAME VARCHAR(255),
          APPLICATION_DESCRIPTION VARCHAR(255),
+         GATEWAY_ID VARCHAR(255),
          CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
          PRIMARY KEY(INTERFACE_ID)
@@ -324,6 +326,7 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
         PREFERED_BATCH_QUEUE VARCHAR(255),
         SCRATCH_LOCATION VARCHAR(255),
         ALLOCATION_PROJECT_NUMBER VARCHAR(255),
+        LOGIN_USERNAME VARCHAR(255),
         PRIMARY KEY(GATEWAY_ID,RESOURCE_ID),
         FOREIGN KEY (RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE,
         FOREIGN KEY (GATEWAY_ID) REFERENCES GATEWAY_PROFILE(GATEWAY_ID) ON DELETE CASCADE
@@ -331,86 +334,87 @@ CREATE TABLE COMPUTE_RESOURCE_PREFERENCE
 
 CREATE TABLE BATCH_QUEUE
 (
-	COMPUTE_RESOURCE_ID VARCHAR(255) NOT NULL,
-	MAX_RUNTIME INTEGER,
-	MAX_JOB_IN_QUEUE INTEGER,
-	QUEUE_DESCRIPTION VARCHAR(255),
-	QUEUE_NAME VARCHAR(255) NOT NULL,
-	MAX_PROCESSORS INTEGER,
-	MAX_NODES INTEGER,
-	MAX_MEMORY INTEGER,
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,QUEUE_NAME),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        COMPUTE_RESOURCE_ID VARCHAR(255) NOT NULL,
+        MAX_RUNTIME INTEGER,
+        MAX_JOB_IN_QUEUE INTEGER,
+        QUEUE_DESCRIPTION VARCHAR(255),
+        QUEUE_NAME VARCHAR(255) NOT NULL,
+        MAX_PROCESSORS INTEGER,
+        MAX_NODES INTEGER,
+        MAX_MEMORY INTEGER,
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,QUEUE_NAME),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE COMPUTE_RESOURCE_FILE_SYSTEM
 (
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	PATH VARCHAR (255),
-	FILE_SYSTEM VARCHAR (255) NOT NULL,
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,FILE_SYSTEM),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
-);
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        PATH VARCHAR (255),
+        FILE_SYSTEM VARCHAR (255) NOT NULL,
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,FILE_SYSTEM),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+  );
 
 CREATE TABLE JOB_SUBMISSION_INTERFACE
 (
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_PROTOCOL VARCHAR (255) NOT NULL,
-	PRIORITY_ORDER INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_PROTOCOL VARCHAR (255) NOT NULL,
+        PRIORITY_ORDER INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
  
 CREATE TABLE DATA_MOVEMENT_INTERFACE
 (
-	COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_PROTOCOL VARCHAR (255) NOT NULL,
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIORITY_ORDER INTEGER,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (COMPUTE_RESOURCE_ID,DATA_MOVEMENT_INTERFACE_ID),
-	FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
+        COMPUTE_RESOURCE_ID VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_PROTOCOL VARCHAR (255) NOT NULL,
+        DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+        PRIORITY_ORDER INTEGER,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (COMPUTE_RESOURCE_ID,DATA_MOVEMENT_INTERFACE_ID),
+        FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE JOB_MANAGER_COMMAND
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	COMMAND_TYPE VARCHAR (255) NOT NULL,
-	COMMAND VARCHAR (255),
-	PRIMARY KEY (RESOURCE_JOB_MANAGER_ID,COMMAND_TYPE),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID) ON DELETE CASCADE
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        COMMAND_TYPE VARCHAR (255) NOT NULL,
+        COMMAND VARCHAR (255),
+        PRIMARY KEY (RESOURCE_JOB_MANAGER_ID,COMMAND_TYPE),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE LOCAL_SUBMISSION
 (
-	RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
-	JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
-	FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
-);
+        RESOURCE_JOB_MANAGER_ID VARCHAR (255) NOT NULL,
+        JOB_SUBMISSION_INTERFACE_ID VARCHAR (255) NOT NULL,
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        PRIMARY KEY (JOB_SUBMISSION_INTERFACE_ID),
+        FOREIGN KEY (RESOURCE_JOB_MANAGER_ID) REFERENCES RESOURCE_JOB_MANAGER(RESOURCE_JOB_MANAGER_ID)
+      );
 
 CREATE TABLE LOCAL_DATA_MOVEMENT
 (
-	DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
-	PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
+	     DATA_MOVEMENT_INTERFACE_ID VARCHAR (255) NOT NULL,
+	     PRIMARY KEY (DATA_MOVEMENT_INTERFACE_ID)
 );
 
 CREATE TABLE WORKFLOW
 (
-	WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
-	WF_NAME VARCHAR (255) NOT NULL,
-	GRAPH CLOB,
-	OWNER VARCHAR(255),
-	CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-	UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
-	IMAGE BLOB,
-	PRIMARY KEY (WF_TEMPLATE_ID)
+        WF_TEMPLATE_ID VARCHAR (255) NOT NULL,
+        WF_NAME VARCHAR (255) NOT NULL,
+        GRAPH CLOB,
+        OWNER VARCHAR(255),
+        GATEWAY_ID VARCHAR(255),
+        CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
+        IMAGE BLOB,
+        PRIMARY KEY (WF_TEMPLATE_ID)
 );
 
 CREATE TABLE WORKFLOW_INPUT
@@ -444,7 +448,7 @@ CREATE TABLE CONFIGURATION
         PRIMARY KEY(CONFIG_KEY, CONFIG_VAL)
 );
 
-INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.14');
+INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('app_catalog_version', '0.15');