You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2016/04/23 04:00:13 UTC

[01/35] airavata git commit: adding data model parameters to override scheduling - AIRAVATA-1945

Repository: airavata
Updated Branches:
  refs/heads/master b5bdad1a6 -> fad21741d


http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
index 8cfc5f5..25d993d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
index ac1cac6..7968c96 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
index 0051eda..dc7d950 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  * experimentDescription:
  *    The verbose description of the experiment. This is an optional parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel, ExperimentModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
index 37c8b22..25b1b60 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentStatistics, ExperimentStatistics._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatistics> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatistics");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
index 9ff7932..5feb2bf 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ExperimentSummaryModel implements org.apache.thrift.TBase<ExperimentSummaryModel, ExperimentSummaryModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSummaryModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSummaryModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
index 7e39f8e..d9aacee 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class UserConfigurationDataModel implements org.apache.thrift.TBase<UserConfigurationDataModel, UserConfigurationDataModel._Fields>, java.io.Serializable, Cloneable, Comparable<UserConfigurationDataModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserConfigurationDataModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index 2875197..6f6b343 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
index 45345e5..44c1a1e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ExperimentStatusChangeEvent implements org.apache.thrift.TBase<ExperimentStatusChangeEvent, ExperimentStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
index 76be2f0..5cbdbf1 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class JobIdentifier implements org.apache.thrift.TBase<JobIdentifier, JobIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<JobIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
index 6be0f0f..56c4643 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class JobStatusChangeEvent implements org.apache.thrift.TBase<JobStatusChangeEvent, JobStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
index e849bf8..d04cb20 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class JobStatusChangeRequestEvent implements org.apache.thrift.TBase<JobStatusChangeRequestEvent, JobStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
index 06154d9..e852c7e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class Message implements org.apache.thrift.TBase<Message, Message._Fields>, java.io.Serializable, Cloneable, Comparable<Message> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Message");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
index 6022700..73f424b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ProcessIdentifier implements org.apache.thrift.TBase<ProcessIdentifier, ProcessIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
index 7551cce..4d66e75 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ProcessStatusChangeEvent implements org.apache.thrift.TBase<ProcessStatusChangeEvent, ProcessStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
index a404025..f6f9bc2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<ProcessStatusChangeRequestEvent, ProcessStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
index a822b9e..3d78f51 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmitEvent, ProcessSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessSubmitEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessSubmitEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
index 34813a8..55c6ecb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ProcessTerminateEvent implements org.apache.thrift.TBase<ProcessTerminateEvent, ProcessTerminateEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessTerminateEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessTerminateEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
index 38c7a54..5144e46 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class TaskIdentifier implements org.apache.thrift.TBase<TaskIdentifier, TaskIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TaskIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
index 5667c82..ce6cec8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class TaskOutputChangeEvent implements org.apache.thrift.TBase<TaskOutputChangeEvent, TaskOutputChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskOutputChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskOutputChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
index e2a649e..2c04194 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class TaskStatusChangeEvent implements org.apache.thrift.TBase<TaskStatusChangeEvent, TaskStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
index c7c6250..733c148 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class TaskStatusChangeRequestEvent implements org.apache.thrift.TBase<TaskStatusChangeRequestEvent, TaskStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index 170a30a..d7c95ba 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, ProcessModel._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
index a77a524..debaa55 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ComputationalResourceSchedulingModel implements org.apache.thrift.TBase<ComputationalResourceSchedulingModel, ComputationalResourceSchedulingModel._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceSchedulingModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceSchedulingModel");
 
@@ -69,6 +69,9 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
   private static final org.apache.thrift.protocol.TField TOTAL_PHYSICAL_MEMORY_FIELD_DESC = new org.apache.thrift.protocol.TField("totalPhysicalMemory", org.apache.thrift.protocol.TType.I32, (short)7);
   private static final org.apache.thrift.protocol.TField CHESSIS_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("chessisNumber", org.apache.thrift.protocol.TType.STRING, (short)8);
   private static final org.apache.thrift.protocol.TField STATIC_WORKING_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("staticWorkingDir", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField OVERRIDE_LOGIN_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("overrideLoginUserName", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField OVERRIDE_SCRATCH_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("overrideScratchLocation", org.apache.thrift.protocol.TType.STRING, (short)11);
+  private static final org.apache.thrift.protocol.TField OVERRIDE_ALLOCATION_PROJECT_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("overrideAllocationProjectNumber", org.apache.thrift.protocol.TType.STRING, (short)12);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -85,6 +88,9 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
   private int totalPhysicalMemory; // optional
   private String chessisNumber; // optional
   private String staticWorkingDir; // optional
+  private String overrideLoginUserName; // optional
+  private String overrideScratchLocation; // optional
+  private String overrideAllocationProjectNumber; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -96,7 +102,10 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
     WALL_TIME_LIMIT((short)6, "wallTimeLimit"),
     TOTAL_PHYSICAL_MEMORY((short)7, "totalPhysicalMemory"),
     CHESSIS_NUMBER((short)8, "chessisNumber"),
-    STATIC_WORKING_DIR((short)9, "staticWorkingDir");
+    STATIC_WORKING_DIR((short)9, "staticWorkingDir"),
+    OVERRIDE_LOGIN_USER_NAME((short)10, "overrideLoginUserName"),
+    OVERRIDE_SCRATCH_LOCATION((short)11, "overrideScratchLocation"),
+    OVERRIDE_ALLOCATION_PROJECT_NUMBER((short)12, "overrideAllocationProjectNumber");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -129,6 +138,12 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
           return CHESSIS_NUMBER;
         case 9: // STATIC_WORKING_DIR
           return STATIC_WORKING_DIR;
+        case 10: // OVERRIDE_LOGIN_USER_NAME
+          return OVERRIDE_LOGIN_USER_NAME;
+        case 11: // OVERRIDE_SCRATCH_LOCATION
+          return OVERRIDE_SCRATCH_LOCATION;
+        case 12: // OVERRIDE_ALLOCATION_PROJECT_NUMBER
+          return OVERRIDE_ALLOCATION_PROJECT_NUMBER;
         default:
           return null;
       }
@@ -175,7 +190,7 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
   private static final int __WALLTIMELIMIT_ISSET_ID = 3;
   private static final int __TOTALPHYSICALMEMORY_ISSET_ID = 4;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.RESOURCE_HOST_ID,_Fields.TOTAL_CPUCOUNT,_Fields.NODE_COUNT,_Fields.NUMBER_OF_THREADS,_Fields.QUEUE_NAME,_Fields.WALL_TIME_LIMIT,_Fields.TOTAL_PHYSICAL_MEMORY,_Fields.CHESSIS_NUMBER,_Fields.STATIC_WORKING_DIR};
+  private static final _Fields optionals[] = {_Fields.RESOURCE_HOST_ID,_Fields.TOTAL_CPUCOUNT,_Fields.NODE_COUNT,_Fields.NUMBER_OF_THREADS,_Fields.QUEUE_NAME,_Fields.WALL_TIME_LIMIT,_Fields.TOTAL_PHYSICAL_MEMORY,_Fields.CHESSIS_NUMBER,_Fields.STATIC_WORKING_DIR,_Fields.OVERRIDE_LOGIN_USER_NAME,_Fields.OVERRIDE_SCRATCH_LOCATION,_Fields.OVERRIDE_ALLOCATION_PROJECT_NUMBER};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -197,6 +212,12 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.STATIC_WORKING_DIR, new org.apache.thrift.meta_data.FieldMetaData("staticWorkingDir", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OVERRIDE_LOGIN_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("overrideLoginUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OVERRIDE_SCRATCH_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("overrideScratchLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OVERRIDE_ALLOCATION_PROJECT_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("overrideAllocationProjectNumber", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputationalResourceSchedulingModel.class, metaDataMap);
   }
@@ -226,6 +247,15 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
     if (other.isSetStaticWorkingDir()) {
       this.staticWorkingDir = other.staticWorkingDir;
     }
+    if (other.isSetOverrideLoginUserName()) {
+      this.overrideLoginUserName = other.overrideLoginUserName;
+    }
+    if (other.isSetOverrideScratchLocation()) {
+      this.overrideScratchLocation = other.overrideScratchLocation;
+    }
+    if (other.isSetOverrideAllocationProjectNumber()) {
+      this.overrideAllocationProjectNumber = other.overrideAllocationProjectNumber;
+    }
   }
 
   public ComputationalResourceSchedulingModel deepCopy() {
@@ -248,6 +278,9 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
     this.totalPhysicalMemory = 0;
     this.chessisNumber = null;
     this.staticWorkingDir = null;
+    this.overrideLoginUserName = null;
+    this.overrideScratchLocation = null;
+    this.overrideAllocationProjectNumber = null;
   }
 
   public String getResourceHostId() {
@@ -452,6 +485,75 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
     }
   }
 
+  public String getOverrideLoginUserName() {
+    return this.overrideLoginUserName;
+  }
+
+  public void setOverrideLoginUserName(String overrideLoginUserName) {
+    this.overrideLoginUserName = overrideLoginUserName;
+  }
+
+  public void unsetOverrideLoginUserName() {
+    this.overrideLoginUserName = null;
+  }
+
+  /** Returns true if field overrideLoginUserName is set (has been assigned a value) and false otherwise */
+  public boolean isSetOverrideLoginUserName() {
+    return this.overrideLoginUserName != null;
+  }
+
+  public void setOverrideLoginUserNameIsSet(boolean value) {
+    if (!value) {
+      this.overrideLoginUserName = null;
+    }
+  }
+
+  public String getOverrideScratchLocation() {
+    return this.overrideScratchLocation;
+  }
+
+  public void setOverrideScratchLocation(String overrideScratchLocation) {
+    this.overrideScratchLocation = overrideScratchLocation;
+  }
+
+  public void unsetOverrideScratchLocation() {
+    this.overrideScratchLocation = null;
+  }
+
+  /** Returns true if field overrideScratchLocation is set (has been assigned a value) and false otherwise */
+  public boolean isSetOverrideScratchLocation() {
+    return this.overrideScratchLocation != null;
+  }
+
+  public void setOverrideScratchLocationIsSet(boolean value) {
+    if (!value) {
+      this.overrideScratchLocation = null;
+    }
+  }
+
+  public String getOverrideAllocationProjectNumber() {
+    return this.overrideAllocationProjectNumber;
+  }
+
+  public void setOverrideAllocationProjectNumber(String overrideAllocationProjectNumber) {
+    this.overrideAllocationProjectNumber = overrideAllocationProjectNumber;
+  }
+
+  public void unsetOverrideAllocationProjectNumber() {
+    this.overrideAllocationProjectNumber = null;
+  }
+
+  /** Returns true if field overrideAllocationProjectNumber is set (has been assigned a value) and false otherwise */
+  public boolean isSetOverrideAllocationProjectNumber() {
+    return this.overrideAllocationProjectNumber != null;
+  }
+
+  public void setOverrideAllocationProjectNumberIsSet(boolean value) {
+    if (!value) {
+      this.overrideAllocationProjectNumber = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case RESOURCE_HOST_ID:
@@ -526,6 +628,30 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
       }
       break;
 
+    case OVERRIDE_LOGIN_USER_NAME:
+      if (value == null) {
+        unsetOverrideLoginUserName();
+      } else {
+        setOverrideLoginUserName((String)value);
+      }
+      break;
+
+    case OVERRIDE_SCRATCH_LOCATION:
+      if (value == null) {
+        unsetOverrideScratchLocation();
+      } else {
+        setOverrideScratchLocation((String)value);
+      }
+      break;
+
+    case OVERRIDE_ALLOCATION_PROJECT_NUMBER:
+      if (value == null) {
+        unsetOverrideAllocationProjectNumber();
+      } else {
+        setOverrideAllocationProjectNumber((String)value);
+      }
+      break;
+
     }
   }
 
@@ -558,6 +684,15 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
     case STATIC_WORKING_DIR:
       return getStaticWorkingDir();
 
+    case OVERRIDE_LOGIN_USER_NAME:
+      return getOverrideLoginUserName();
+
+    case OVERRIDE_SCRATCH_LOCATION:
+      return getOverrideScratchLocation();
+
+    case OVERRIDE_ALLOCATION_PROJECT_NUMBER:
+      return getOverrideAllocationProjectNumber();
+
     }
     throw new IllegalStateException();
   }
@@ -587,6 +722,12 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
       return isSetChessisNumber();
     case STATIC_WORKING_DIR:
       return isSetStaticWorkingDir();
+    case OVERRIDE_LOGIN_USER_NAME:
+      return isSetOverrideLoginUserName();
+    case OVERRIDE_SCRATCH_LOCATION:
+      return isSetOverrideScratchLocation();
+    case OVERRIDE_ALLOCATION_PROJECT_NUMBER:
+      return isSetOverrideAllocationProjectNumber();
     }
     throw new IllegalStateException();
   }
@@ -685,6 +826,33 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
         return false;
     }
 
+    boolean this_present_overrideLoginUserName = true && this.isSetOverrideLoginUserName();
+    boolean that_present_overrideLoginUserName = true && that.isSetOverrideLoginUserName();
+    if (this_present_overrideLoginUserName || that_present_overrideLoginUserName) {
+      if (!(this_present_overrideLoginUserName && that_present_overrideLoginUserName))
+        return false;
+      if (!this.overrideLoginUserName.equals(that.overrideLoginUserName))
+        return false;
+    }
+
+    boolean this_present_overrideScratchLocation = true && this.isSetOverrideScratchLocation();
+    boolean that_present_overrideScratchLocation = true && that.isSetOverrideScratchLocation();
+    if (this_present_overrideScratchLocation || that_present_overrideScratchLocation) {
+      if (!(this_present_overrideScratchLocation && that_present_overrideScratchLocation))
+        return false;
+      if (!this.overrideScratchLocation.equals(that.overrideScratchLocation))
+        return false;
+    }
+
+    boolean this_present_overrideAllocationProjectNumber = true && this.isSetOverrideAllocationProjectNumber();
+    boolean that_present_overrideAllocationProjectNumber = true && that.isSetOverrideAllocationProjectNumber();
+    if (this_present_overrideAllocationProjectNumber || that_present_overrideAllocationProjectNumber) {
+      if (!(this_present_overrideAllocationProjectNumber && that_present_overrideAllocationProjectNumber))
+        return false;
+      if (!this.overrideAllocationProjectNumber.equals(that.overrideAllocationProjectNumber))
+        return false;
+    }
+
     return true;
   }
 
@@ -737,6 +905,21 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
     if (present_staticWorkingDir)
       list.add(staticWorkingDir);
 
+    boolean present_overrideLoginUserName = true && (isSetOverrideLoginUserName());
+    list.add(present_overrideLoginUserName);
+    if (present_overrideLoginUserName)
+      list.add(overrideLoginUserName);
+
+    boolean present_overrideScratchLocation = true && (isSetOverrideScratchLocation());
+    list.add(present_overrideScratchLocation);
+    if (present_overrideScratchLocation)
+      list.add(overrideScratchLocation);
+
+    boolean present_overrideAllocationProjectNumber = true && (isSetOverrideAllocationProjectNumber());
+    list.add(present_overrideAllocationProjectNumber);
+    if (present_overrideAllocationProjectNumber)
+      list.add(overrideAllocationProjectNumber);
+
     return list.hashCode();
   }
 
@@ -838,6 +1021,36 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetOverrideLoginUserName()).compareTo(other.isSetOverrideLoginUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOverrideLoginUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overrideLoginUserName, other.overrideLoginUserName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOverrideScratchLocation()).compareTo(other.isSetOverrideScratchLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOverrideScratchLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overrideScratchLocation, other.overrideScratchLocation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOverrideAllocationProjectNumber()).compareTo(other.isSetOverrideAllocationProjectNumber());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOverrideAllocationProjectNumber()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overrideAllocationProjectNumber, other.overrideAllocationProjectNumber);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -927,6 +1140,36 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
       }
       first = false;
     }
+    if (isSetOverrideLoginUserName()) {
+      if (!first) sb.append(", ");
+      sb.append("overrideLoginUserName:");
+      if (this.overrideLoginUserName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.overrideLoginUserName);
+      }
+      first = false;
+    }
+    if (isSetOverrideScratchLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("overrideScratchLocation:");
+      if (this.overrideScratchLocation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.overrideScratchLocation);
+      }
+      first = false;
+    }
+    if (isSetOverrideAllocationProjectNumber()) {
+      if (!first) sb.append(", ");
+      sb.append("overrideAllocationProjectNumber:");
+      if (this.overrideAllocationProjectNumber == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.overrideAllocationProjectNumber);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -1044,6 +1287,30 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 10: // OVERRIDE_LOGIN_USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.overrideLoginUserName = iprot.readString();
+              struct.setOverrideLoginUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // OVERRIDE_SCRATCH_LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.overrideScratchLocation = iprot.readString();
+              struct.setOverrideScratchLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // OVERRIDE_ALLOCATION_PROJECT_NUMBER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.overrideAllocationProjectNumber = iprot.readString();
+              struct.setOverrideAllocationProjectNumberIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -1110,6 +1377,27 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
           oprot.writeFieldEnd();
         }
       }
+      if (struct.overrideLoginUserName != null) {
+        if (struct.isSetOverrideLoginUserName()) {
+          oprot.writeFieldBegin(OVERRIDE_LOGIN_USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.overrideLoginUserName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.overrideScratchLocation != null) {
+        if (struct.isSetOverrideScratchLocation()) {
+          oprot.writeFieldBegin(OVERRIDE_SCRATCH_LOCATION_FIELD_DESC);
+          oprot.writeString(struct.overrideScratchLocation);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.overrideAllocationProjectNumber != null) {
+        if (struct.isSetOverrideAllocationProjectNumber()) {
+          oprot.writeFieldBegin(OVERRIDE_ALLOCATION_PROJECT_NUMBER_FIELD_DESC);
+          oprot.writeString(struct.overrideAllocationProjectNumber);
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -1155,7 +1443,16 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
       if (struct.isSetStaticWorkingDir()) {
         optionals.set(8);
       }
-      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetOverrideLoginUserName()) {
+        optionals.set(9);
+      }
+      if (struct.isSetOverrideScratchLocation()) {
+        optionals.set(10);
+      }
+      if (struct.isSetOverrideAllocationProjectNumber()) {
+        optionals.set(11);
+      }
+      oprot.writeBitSet(optionals, 12);
       if (struct.isSetResourceHostId()) {
         oprot.writeString(struct.resourceHostId);
       }
@@ -1183,12 +1480,21 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
       if (struct.isSetStaticWorkingDir()) {
         oprot.writeString(struct.staticWorkingDir);
       }
+      if (struct.isSetOverrideLoginUserName()) {
+        oprot.writeString(struct.overrideLoginUserName);
+      }
+      if (struct.isSetOverrideScratchLocation()) {
+        oprot.writeString(struct.overrideScratchLocation);
+      }
+      if (struct.isSetOverrideAllocationProjectNumber()) {
+        oprot.writeString(struct.overrideAllocationProjectNumber);
+      }
     }
 
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, ComputationalResourceSchedulingModel struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(9);
+      BitSet incoming = iprot.readBitSet(12);
       if (incoming.get(0)) {
         struct.resourceHostId = iprot.readString();
         struct.setResourceHostIdIsSet(true);
@@ -1225,6 +1531,18 @@ public class ComputationalResourceSchedulingModel implements org.apache.thrift.T
         struct.staticWorkingDir = iprot.readString();
         struct.setStaticWorkingDirIsSet(true);
       }
+      if (incoming.get(9)) {
+        struct.overrideLoginUserName = iprot.readString();
+        struct.setOverrideLoginUserNameIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.overrideScratchLocation = iprot.readString();
+        struct.setOverrideScratchLocationIsSet(true);
+      }
+      if (incoming.get(11)) {
+        struct.overrideAllocationProjectNumber = iprot.readString();
+        struct.setOverrideAllocationProjectNumberIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
index 88b81db..b3d6b9c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class AuthzToken implements org.apache.thrift.TBase<AuthzToken, AuthzToken._Fields>, java.io.Serializable, Cloneable, Comparable<AuthzToken> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthzToken");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
index cd5d3ad..89e9668 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   User friendly reason on how the state is inferred.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ExperimentStatus implements org.apache.thrift.TBase<ExperimentStatus, ExperimentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
index 2455dfc..44e7306 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class JobStatus implements org.apache.thrift.TBase<JobStatus, JobStatus._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
index 5742a36..0dd999f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ProcessStatus implements org.apache.thrift.TBase<ProcessStatus, ProcessStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
index 0209772..03bdf15 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class TaskStatus implements org.apache.thrift.TBase<TaskStatus, TaskStatus._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
index 27debda..617d209 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class DataStagingTaskModel implements org.apache.thrift.TBase<DataStagingTaskModel, DataStagingTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataStagingTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStagingTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
index 882c8c2..af2b209 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
  * EnvironmentSetupTaskModel: A structure holding the environment creation task details
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class EnvironmentSetupTaskModel implements org.apache.thrift.TBase<EnvironmentSetupTaskModel, EnvironmentSetupTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<EnvironmentSetupTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EnvironmentSetupTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
index b77e182..cbf8a02 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
index 54f6ea9..af46f7e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index 7a3c76c..1859145 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * subTaskModel:
  *   A generic byte object for the Task developer to store internal serialized data into registry catalogs.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<TaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
index ca39c40..4058956 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class Gateway implements org.apache.thrift.TBase<Gateway, Gateway._Fields>, java.io.Serializable, Cloneable, Comparable<Gateway> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
index 27d3cff..1f1c6c5 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class Group implements org.apache.thrift.TBase<Group, Group._Fields>, java.io.Serializable, Cloneable, Comparable<Group> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Group");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
index 4c6a844..836dbf6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class Project implements org.apache.thrift.TBase<Project, Project._Fields>, java.io.Serializable, Cloneable, Comparable<Project> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Project");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
index 641abc3..9c2d6a7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/thrift-interface-descriptions/data-models/experiment-catalog-models/scheduling_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/experiment-catalog-models/scheduling_model.thrift b/thrift-interface-descriptions/data-models/experiment-catalog-models/scheduling_model.thrift
index 61d33a8..9418808 100644
--- a/thrift-interface-descriptions/data-models/experiment-catalog-models/scheduling_model.thrift
+++ b/thrift-interface-descriptions/data-models/experiment-catalog-models/scheduling_model.thrift
@@ -37,5 +37,8 @@ struct ComputationalResourceSchedulingModel {
     6: optional i32 wallTimeLimit,
     7: optional i32 totalPhysicalMemory,
     8: optional string chessisNumber,
-    9: optional string staticWorkingDir
+    9: optional string staticWorkingDir,
+    10: optional string overrideLoginUserName,
+    11: optional string overrideScratchLocation,
+    12: optional string overrideAllocationProjectNumber
 }
\ No newline at end of file


[27/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index 54a0771..4f72e61 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -2350,11 +2350,11 @@ uint32_t Airavata_isGatewayExist_presult::read(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_generateAndRegisterSSHKeys_args::~Airavata_generateAndRegisterSSHKeys_args() throw() {
+Airavata_createNotification_args::~Airavata_createNotification_args() throw() {
 }
 
 
-uint32_t Airavata_generateAndRegisterSSHKeys_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_createNotification_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -2367,8 +2367,7 @@ uint32_t Airavata_generateAndRegisterSSHKeys_args::read(::apache::thrift::protoc
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_gatewayId = false;
-  bool isset_userName = false;
+  bool isset_notification = false;
 
   while (true)
   {
@@ -2387,17 +2386,9 @@ uint32_t Airavata_generateAndRegisterSSHKeys_args::read(::apache::thrift::protoc
         }
         break;
       case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          isset_gatewayId = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->userName);
-          isset_userName = true;
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->notification.read(iprot);
+          isset_notification = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -2413,28 +2404,22 @@ uint32_t Airavata_generateAndRegisterSSHKeys_args::read(::apache::thrift::protoc
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_gatewayId)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_userName)
+  if (!isset_notification)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_generateAndRegisterSSHKeys_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_createNotification_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_generateAndRegisterSSHKeys_args");
+  xfer += oprot->writeStructBegin("Airavata_createNotification_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->gatewayId);
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 3);
-  xfer += oprot->writeString(this->userName);
+  xfer += oprot->writeFieldBegin("notification", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->notification.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -2443,25 +2428,21 @@ uint32_t Airavata_generateAndRegisterSSHKeys_args::write(::apache::thrift::proto
 }
 
 
-Airavata_generateAndRegisterSSHKeys_pargs::~Airavata_generateAndRegisterSSHKeys_pargs() throw() {
+Airavata_createNotification_pargs::~Airavata_createNotification_pargs() throw() {
 }
 
 
-uint32_t Airavata_generateAndRegisterSSHKeys_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_createNotification_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_generateAndRegisterSSHKeys_pargs");
+  xfer += oprot->writeStructBegin("Airavata_createNotification_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->gatewayId)));
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 3);
-  xfer += oprot->writeString((*(this->userName)));
+  xfer += oprot->writeFieldBegin("notification", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->notification)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -2470,11 +2451,11 @@ uint32_t Airavata_generateAndRegisterSSHKeys_pargs::write(::apache::thrift::prot
 }
 
 
-Airavata_generateAndRegisterSSHKeys_result::~Airavata_generateAndRegisterSSHKeys_result() throw() {
+Airavata_createNotification_result::~Airavata_createNotification_result() throw() {
 }
 
 
-uint32_t Airavata_generateAndRegisterSSHKeys_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_createNotification_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -2527,6 +2508,14 @@ uint32_t Airavata_generateAndRegisterSSHKeys_result::read(::apache::thrift::prot
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -2539,11 +2528,11 @@ uint32_t Airavata_generateAndRegisterSSHKeys_result::read(::apache::thrift::prot
   return xfer;
 }
 
-uint32_t Airavata_generateAndRegisterSSHKeys_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_createNotification_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_generateAndRegisterSSHKeys_result");
+  xfer += oprot->writeStructBegin("Airavata_createNotification_result");
 
   if (this->__isset.success) {
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
@@ -2561,6 +2550,10 @@ uint32_t Airavata_generateAndRegisterSSHKeys_result::write(::apache::thrift::pro
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -2568,11 +2561,11 @@ uint32_t Airavata_generateAndRegisterSSHKeys_result::write(::apache::thrift::pro
 }
 
 
-Airavata_generateAndRegisterSSHKeys_presult::~Airavata_generateAndRegisterSSHKeys_presult() throw() {
+Airavata_createNotification_presult::~Airavata_createNotification_presult() throw() {
 }
 
 
-uint32_t Airavata_generateAndRegisterSSHKeys_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_createNotification_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -2625,6 +2618,14 @@ uint32_t Airavata_generateAndRegisterSSHKeys_presult::read(::apache::thrift::pro
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -2638,11 +2639,11 @@ uint32_t Airavata_generateAndRegisterSSHKeys_presult::read(::apache::thrift::pro
 }
 
 
-Airavata_getSSHPubKey_args::~Airavata_getSSHPubKey_args() throw() {
+Airavata_updateNotification_args::~Airavata_updateNotification_args() throw() {
 }
 
 
-uint32_t Airavata_getSSHPubKey_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateNotification_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -2655,8 +2656,7 @@ uint32_t Airavata_getSSHPubKey_args::read(::apache::thrift::protocol::TProtocol*
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_airavataCredStoreToken = false;
-  bool isset_gatewayId = false;
+  bool isset_notification = false;
 
   while (true)
   {
@@ -2675,17 +2675,9 @@ uint32_t Airavata_getSSHPubKey_args::read(::apache::thrift::protocol::TProtocol*
         }
         break;
       case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->airavataCredStoreToken);
-          isset_airavataCredStoreToken = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          isset_gatewayId = true;
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->notification.read(iprot);
+          isset_notification = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -2701,28 +2693,22 @@ uint32_t Airavata_getSSHPubKey_args::read(::apache::thrift::protocol::TProtocol*
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_airavataCredStoreToken)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_gatewayId)
+  if (!isset_notification)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getSSHPubKey_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateNotification_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getSSHPubKey_args");
+  xfer += oprot->writeStructBegin("Airavata_updateNotification_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("airavataCredStoreToken", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->airavataCredStoreToken);
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
-  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldBegin("notification", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->notification.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -2731,25 +2717,21 @@ uint32_t Airavata_getSSHPubKey_args::write(::apache::thrift::protocol::TProtocol
 }
 
 
-Airavata_getSSHPubKey_pargs::~Airavata_getSSHPubKey_pargs() throw() {
+Airavata_updateNotification_pargs::~Airavata_updateNotification_pargs() throw() {
 }
 
 
-uint32_t Airavata_getSSHPubKey_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateNotification_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getSSHPubKey_pargs");
+  xfer += oprot->writeStructBegin("Airavata_updateNotification_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("airavataCredStoreToken", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->airavataCredStoreToken)));
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
-  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldBegin("notification", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->notification)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -2758,11 +2740,11 @@ uint32_t Airavata_getSSHPubKey_pargs::write(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_getSSHPubKey_result::~Airavata_getSSHPubKey_result() throw() {
+Airavata_updateNotification_result::~Airavata_updateNotification_result() throw() {
 }
 
 
-uint32_t Airavata_getSSHPubKey_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateNotification_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -2783,14 +2765,6 @@ uint32_t Airavata_getSSHPubKey_result::read(::apache::thrift::protocol::TProtoco
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->success);
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -2815,6 +2789,14 @@ uint32_t Airavata_getSSHPubKey_result::read(::apache::thrift::protocol::TProtoco
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -2827,17 +2809,13 @@ uint32_t Airavata_getSSHPubKey_result::read(::apache::thrift::protocol::TProtoco
   return xfer;
 }
 
-uint32_t Airavata_getSSHPubKey_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateNotification_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getSSHPubKey_result");
+  xfer += oprot->writeStructBegin("Airavata_updateNotification_result");
 
-  if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
-    xfer += oprot->writeString(this->success);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.ire) {
+  if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -2849,6 +2827,10 @@ uint32_t Airavata_getSSHPubKey_result::write(::apache::thrift::protocol::TProtoc
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -2856,11 +2838,11 @@ uint32_t Airavata_getSSHPubKey_result::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_getSSHPubKey_presult::~Airavata_getSSHPubKey_presult() throw() {
+Airavata_updateNotification_presult::~Airavata_updateNotification_presult() throw() {
 }
 
 
-uint32_t Airavata_getSSHPubKey_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateNotification_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -2881,14 +2863,6 @@ uint32_t Airavata_getSSHPubKey_presult::read(::apache::thrift::protocol::TProtoc
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString((*(this->success)));
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -2913,6 +2887,14 @@ uint32_t Airavata_getSSHPubKey_presult::read(::apache::thrift::protocol::TProtoc
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -2926,11 +2908,11 @@ uint32_t Airavata_getSSHPubKey_presult::read(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_getAllUserSSHPubKeys_args::~Airavata_getAllUserSSHPubKeys_args() throw() {
+Airavata_deleteNotification_args::~Airavata_deleteNotification_args() throw() {
 }
 
 
-uint32_t Airavata_getAllUserSSHPubKeys_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteNotification_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -2943,7 +2925,8 @@ uint32_t Airavata_getAllUserSSHPubKeys_args::read(::apache::thrift::protocol::TP
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_userName = false;
+  bool isset_gatewayId = false;
+  bool isset_notificationId = false;
 
   while (true)
   {
@@ -2963,8 +2946,16 @@ uint32_t Airavata_getAllUserSSHPubKeys_args::read(::apache::thrift::protocol::TP
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->userName);
-          isset_userName = true;
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->notificationId);
+          isset_notificationId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -2980,22 +2971,28 @@ uint32_t Airavata_getAllUserSSHPubKeys_args::read(::apache::thrift::protocol::TP
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_userName)
+  if (!isset_gatewayId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_notificationId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getAllUserSSHPubKeys_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteNotification_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getAllUserSSHPubKeys_args");
+  xfer += oprot->writeStructBegin("Airavata_deleteNotification_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->userName);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("notificationId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->notificationId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -3004,21 +3001,25 @@ uint32_t Airavata_getAllUserSSHPubKeys_args::write(::apache::thrift::protocol::T
 }
 
 
-Airavata_getAllUserSSHPubKeys_pargs::~Airavata_getAllUserSSHPubKeys_pargs() throw() {
+Airavata_deleteNotification_pargs::~Airavata_deleteNotification_pargs() throw() {
 }
 
 
-uint32_t Airavata_getAllUserSSHPubKeys_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteNotification_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getAllUserSSHPubKeys_pargs");
+  xfer += oprot->writeStructBegin("Airavata_deleteNotification_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->userName)));
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("notificationId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->notificationId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -3027,11 +3028,11 @@ uint32_t Airavata_getAllUserSSHPubKeys_pargs::write(::apache::thrift::protocol::
 }
 
 
-Airavata_getAllUserSSHPubKeys_result::~Airavata_getAllUserSSHPubKeys_result() throw() {
+Airavata_deleteNotification_result::~Airavata_deleteNotification_result() throw() {
 }
 
 
-uint32_t Airavata_getAllUserSSHPubKeys_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteNotification_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3052,29 +3053,6 @@ uint32_t Airavata_getAllUserSSHPubKeys_result::read(::apache::thrift::protocol::
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
-          {
-            this->success.clear();
-            uint32_t _size11;
-            ::apache::thrift::protocol::TType _ktype12;
-            ::apache::thrift::protocol::TType _vtype13;
-            xfer += iprot->readMapBegin(_ktype12, _vtype13, _size11);
-            uint32_t _i15;
-            for (_i15 = 0; _i15 < _size11; ++_i15)
-            {
-              std::string _key16;
-              xfer += iprot->readString(_key16);
-              std::string& _val17 = this->success[_key16];
-              xfer += iprot->readString(_val17);
-            }
-            xfer += iprot->readMapEnd();
-          }
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -3099,6 +3077,14 @@ uint32_t Airavata_getAllUserSSHPubKeys_result::read(::apache::thrift::protocol::
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3111,26 +3097,13 @@ uint32_t Airavata_getAllUserSSHPubKeys_result::read(::apache::thrift::protocol::
   return xfer;
 }
 
-uint32_t Airavata_getAllUserSSHPubKeys_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteNotification_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getAllUserSSHPubKeys_result");
+  xfer += oprot->writeStructBegin("Airavata_deleteNotification_result");
 
-  if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0);
-    {
-      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::map<std::string, std::string> ::const_iterator _iter18;
-      for (_iter18 = this->success.begin(); _iter18 != this->success.end(); ++_iter18)
-      {
-        xfer += oprot->writeString(_iter18->first);
-        xfer += oprot->writeString(_iter18->second);
-      }
-      xfer += oprot->writeMapEnd();
-    }
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.ire) {
+  if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -3142,6 +3115,10 @@ uint32_t Airavata_getAllUserSSHPubKeys_result::write(::apache::thrift::protocol:
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -3149,11 +3126,11 @@ uint32_t Airavata_getAllUserSSHPubKeys_result::write(::apache::thrift::protocol:
 }
 
 
-Airavata_getAllUserSSHPubKeys_presult::~Airavata_getAllUserSSHPubKeys_presult() throw() {
+Airavata_deleteNotification_presult::~Airavata_deleteNotification_presult() throw() {
 }
 
 
-uint32_t Airavata_getAllUserSSHPubKeys_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteNotification_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3174,29 +3151,6 @@ uint32_t Airavata_getAllUserSSHPubKeys_presult::read(::apache::thrift::protocol:
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
-          {
-            (*(this->success)).clear();
-            uint32_t _size19;
-            ::apache::thrift::protocol::TType _ktype20;
-            ::apache::thrift::protocol::TType _vtype21;
-            xfer += iprot->readMapBegin(_ktype20, _vtype21, _size19);
-            uint32_t _i23;
-            for (_i23 = 0; _i23 < _size19; ++_i23)
-            {
-              std::string _key24;
-              xfer += iprot->readString(_key24);
-              std::string& _val25 = (*(this->success))[_key24];
-              xfer += iprot->readString(_val25);
-            }
-            xfer += iprot->readMapEnd();
-          }
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -3221,6 +3175,14 @@ uint32_t Airavata_getAllUserSSHPubKeys_presult::read(::apache::thrift::protocol:
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3234,11 +3196,11 @@ uint32_t Airavata_getAllUserSSHPubKeys_presult::read(::apache::thrift::protocol:
 }
 
 
-Airavata_getAllGatewaySSHPubKeys_args::~Airavata_getAllGatewaySSHPubKeys_args() throw() {
+Airavata_getNotification_args::~Airavata_getNotification_args() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewaySSHPubKeys_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getNotification_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3252,6 +3214,7 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_args::read(::apache::thrift::protocol:
 
   bool isset_authzToken = false;
   bool isset_gatewayId = false;
+  bool isset_notificationId = false;
 
   while (true)
   {
@@ -3277,6 +3240,14 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_args::read(::apache::thrift::protocol:
           xfer += iprot->skip(ftype);
         }
         break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->notificationId);
+          isset_notificationId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3290,13 +3261,15 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_args::read(::apache::thrift::protocol:
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_notificationId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getAllGatewaySSHPubKeys_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getNotification_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewaySSHPubKeys_args");
+  xfer += oprot->writeStructBegin("Airavata_getNotification_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
@@ -3306,20 +3279,24 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_args::write(::apache::thrift::protocol
   xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("notificationId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->notificationId);
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
 
-Airavata_getAllGatewaySSHPubKeys_pargs::~Airavata_getAllGatewaySSHPubKeys_pargs() throw() {
+Airavata_getNotification_pargs::~Airavata_getNotification_pargs() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewaySSHPubKeys_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getNotification_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewaySSHPubKeys_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getNotification_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
@@ -3329,17 +3306,21 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_pargs::write(::apache::thrift::protoco
   xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("notificationId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->notificationId)));
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
 
-Airavata_getAllGatewaySSHPubKeys_result::~Airavata_getAllGatewaySSHPubKeys_result() throw() {
+Airavata_getNotification_result::~Airavata_getNotification_result() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewaySSHPubKeys_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getNotification_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3361,23 +3342,8 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_result::read(::apache::thrift::protoco
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
-          {
-            this->success.clear();
-            uint32_t _size26;
-            ::apache::thrift::protocol::TType _ktype27;
-            ::apache::thrift::protocol::TType _vtype28;
-            xfer += iprot->readMapBegin(_ktype27, _vtype28, _size26);
-            uint32_t _i30;
-            for (_i30 = 0; _i30 < _size26; ++_i30)
-            {
-              std::string _key31;
-              xfer += iprot->readString(_key31);
-              std::string& _val32 = this->success[_key31];
-              xfer += iprot->readString(_val32);
-            }
-            xfer += iprot->readMapEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -3407,6 +3373,14 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_result::read(::apache::thrift::protoco
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3419,24 +3393,15 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_result::read(::apache::thrift::protoco
   return xfer;
 }
 
-uint32_t Airavata_getAllGatewaySSHPubKeys_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getNotification_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getAllGatewaySSHPubKeys_result");
+  xfer += oprot->writeStructBegin("Airavata_getNotification_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0);
-    {
-      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::map<std::string, std::string> ::const_iterator _iter33;
-      for (_iter33 = this->success.begin(); _iter33 != this->success.end(); ++_iter33)
-      {
-        xfer += oprot->writeString(_iter33->first);
-        xfer += oprot->writeString(_iter33->second);
-      }
-      xfer += oprot->writeMapEnd();
-    }
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -3450,6 +3415,10 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_result::write(::apache::thrift::protoc
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -3457,11 +3426,11 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_result::write(::apache::thrift::protoc
 }
 
 
-Airavata_getAllGatewaySSHPubKeys_presult::~Airavata_getAllGatewaySSHPubKeys_presult() throw() {
+Airavata_getNotification_presult::~Airavata_getNotification_presult() throw() {
 }
 
 
-uint32_t Airavata_getAllGatewaySSHPubKeys_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getNotification_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3483,23 +3452,8 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_presult::read(::apache::thrift::protoc
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
-          {
-            (*(this->success)).clear();
-            uint32_t _size34;
-            ::apache::thrift::protocol::TType _ktype35;
-            ::apache::thrift::protocol::TType _vtype36;
-            xfer += iprot->readMapBegin(_ktype35, _vtype36, _size34);
-            uint32_t _i38;
-            for (_i38 = 0; _i38 < _size34; ++_i38)
-            {
-              std::string _key39;
-              xfer += iprot->readString(_key39);
-              std::string& _val40 = (*(this->success))[_key39];
-              xfer += iprot->readString(_val40);
-            }
-            xfer += iprot->readMapEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -3529,6 +3483,14 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_presult::read(::apache::thrift::protoc
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3542,11 +3504,11 @@ uint32_t Airavata_getAllGatewaySSHPubKeys_presult::read(::apache::thrift::protoc
 }
 
 
-Airavata_deleteSSHPubKey_args::~Airavata_deleteSSHPubKey_args() throw() {
+Airavata_getAllNotifications_args::~Airavata_getAllNotifications_args() throw() {
 }
 
 
-uint32_t Airavata_deleteSSHPubKey_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllNotifications_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3559,7 +3521,6 @@ uint32_t Airavata_deleteSSHPubKey_args::read(::apache::thrift::protocol::TProtoc
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_airavataCredStoreToken = false;
   bool isset_gatewayId = false;
 
   while (true)
@@ -3580,14 +3541,6 @@ uint32_t Airavata_deleteSSHPubKey_args::read(::apache::thrift::protocol::TProtoc
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->airavataCredStoreToken);
-          isset_airavataCredStoreToken = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->gatewayId);
           isset_gatewayId = true;
         } else {
@@ -3605,27 +3558,21 @@ uint32_t Airavata_deleteSSHPubKey_args::read(::apache::thrift::protocol::TProtoc
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_airavataCredStoreToken)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_deleteSSHPubKey_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllNotifications_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_deleteSSHPubKey_args");
+  xfer += oprot->writeStructBegin("Airavata_getAllNotifications_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("airavataCredStoreToken", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->airavataCredStoreToken);
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
   xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
@@ -3635,24 +3582,20 @@ uint32_t Airavata_deleteSSHPubKey_args::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_deleteSSHPubKey_pargs::~Airavata_deleteSSHPubKey_pargs() throw() {
+Airavata_getAllNotifications_pargs::~Airavata_getAllNotifications_pargs() throw() {
 }
 
 
-uint32_t Airavata_deleteSSHPubKey_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllNotifications_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_deleteSSHPubKey_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getAllNotifications_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("airavataCredStoreToken", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->airavataCredStoreToken)));
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
   xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
@@ -3662,11 +3605,11 @@ uint32_t Airavata_deleteSSHPubKey_pargs::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_deleteSSHPubKey_result::~Airavata_deleteSSHPubKey_result() throw() {
+Airavata_getAllNotifications_result::~Airavata_getAllNotifications_result() throw() {
 }
 
 
-uint32_t Airavata_deleteSSHPubKey_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllNotifications_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3688,8 +3631,20 @@ uint32_t Airavata_deleteSSHPubKey_result::read(::apache::thrift::protocol::TProt
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool(this->success);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size11;
+            ::apache::thrift::protocol::TType _etype14;
+            xfer += iprot->readListBegin(_etype14, _size11);
+            this->success.resize(_size11);
+            uint32_t _i15;
+            for (_i15 = 0; _i15 < _size11; ++_i15)
+            {
+              xfer += this->success[_i15].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -3719,6 +3674,14 @@ uint32_t Airavata_deleteSSHPubKey_result::read(::apache::thrift::protocol::TProt
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3731,15 +3694,23 @@ uint32_t Airavata_deleteSSHPubKey_result::read(::apache::thrift::protocol::TProt
   return xfer;
 }
 
-uint32_t Airavata_deleteSSHPubKey_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllNotifications_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_deleteSSHPubKey_result");
+  xfer += oprot->writeStructBegin("Airavata_getAllNotifications_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
-    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::workspace::Notification> ::const_iterator _iter16;
+      for (_iter16 = this->success.begin(); _iter16 != this->success.end(); ++_iter16)
+      {
+        xfer += (*_iter16).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -3753,6 +3724,10 @@ uint32_t Airavata_deleteSSHPubKey_result::write(::apache::thrift::protocol::TPro
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -3760,11 +3735,11 @@ uint32_t Airavata_deleteSSHPubKey_result::write(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_deleteSSHPubKey_presult::~Airavata_deleteSSHPubKey_presult() throw() {
+Airavata_getAllNotifications_presult::~Airavata_getAllNotifications_presult() throw() {
 }
 
 
-uint32_t Airavata_deleteSSHPubKey_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllNotifications_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3786,8 +3761,20 @@ uint32_t Airavata_deleteSSHPubKey_presult::read(::apache::thrift::protocol::TPro
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size17;
+            ::apache::thrift::protocol::TType _etype20;
+            xfer += iprot->readListBegin(_etype20, _size17);
+            (*(this->success)).resize(_size17);
+            uint32_t _i21;
+            for (_i21 = 0; _i21 < _size17; ++_i21)
+            {
+              xfer += (*(this->success))[_i21].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -3817,6 +3804,14 @@ uint32_t Airavata_deleteSSHPubKey_presult::read(::apache::thrift::protocol::TPro
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3830,11 +3825,11 @@ uint32_t Airavata_deleteSSHPubKey_presult::read(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_createProject_args::~Airavata_createProject_args() throw() {
+Airavata_generateAndRegisterSSHKeys_args::~Airavata_generateAndRegisterSSHKeys_args() throw() {
 }
 
 
-uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_generateAndRegisterSSHKeys_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3848,7 +3843,7 @@ uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol
 
   bool isset_authzToken = false;
   bool isset_gatewayId = false;
-  bool isset_project = false;
+  bool isset_userName = false;
 
   while (true)
   {
@@ -3875,9 +3870,9 @@ uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol
         }
         break;
       case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->project.read(iprot);
-          isset_project = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userName);
+          isset_userName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -3895,15 +3890,15 @@ uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_project)
+  if (!isset_userName)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_createProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_generateAndRegisterSSHKeys_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_createProject_args");
+  xfer += oprot->writeStructBegin("Airavata_generateAndRegisterSSHKeys_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
@@ -3913,8 +3908,8 @@ uint32_t Airavata_createProject_args::write(::apache::thrift::protocol::TProtoco
   xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("project", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += this->project.write(oprot);
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->userName);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -3923,14 +3918,14 @@ uint32_t Airavata_createProject_args::write(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_createProject_pargs::~Airavata_createProject_pargs() throw() {
+Airavata_generateAndRegisterSSHKeys_pargs::~Airavata_generateAndRegisterSSHKeys_pargs() throw() {
 }
 
 
-uint32_t Airavata_createProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_generateAndRegisterSSHKeys_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_createProject_pargs");
+  xfer += oprot->writeStructBegin("Airavata_generateAndRegisterSSHKeys_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
@@ -3940,8 +3935,8 @@ uint32_t Airavata_createProject_pargs::write(::apache::thrift::protocol::TProtoc
   xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("project", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += (*(this->project)).write(oprot);
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->userName)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -3950,11 +3945,11 @@ uint32_t Airavata_createProject_pargs::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_createProject_result::~Airavata_createProject_result() throw() {
+Airavata_generateAndRegisterSSHKeys_result::~Airavata_generateAndRegisterSSHKeys_result() throw() {
 }
 
 
-uint32_t Airavata_createProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_generateAndRegisterSSHKeys_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4007,14 +4002,6 @@ uint32_t Airavata_createProject_result::read(::apache::thrift::protocol::TProtoc
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->ae.read(iprot);
-          this->__isset.ae = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4027,11 +4014,11 @@ uint32_t Airavata_createProject_result::read(::apache::thrift::protocol::TProtoc
   return xfer;
 }
 
-uint32_t Airavata_createProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_generateAndRegisterSSHKeys_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_createProject_result");
+  xfer += oprot->writeStructBegin("Airavata_generateAndRegisterSSHKeys_result");
 
   if (this->__isset.success) {
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
@@ -4049,10 +4036,6 @@ uint32_t Airavata_createProject_result::write(::apache::thrift::protocol::TProto
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.ae) {
-    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->ae.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4060,11 +4043,11 @@ uint32_t Airavata_createProject_result::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_createProject_presult::~Airavata_createProject_presult() throw() {
+Airavata_generateAndRegisterSSHKeys_presult::~Airavata_generateAndRegisterSSHKeys_presult() throw() {
 }
 
 
-uint32_t Airavata_createProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_generateAndRegisterSSHKeys_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4117,14 +4100,6 @@ uint32_t Airavata_createProject_presult::read(::apache::thrift::protocol::TProto
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->ae.read(iprot);
-          this->__isset.ae = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4138,11 +4113,11 @@ uint32_t Airavata_createProject_presult::read(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_updateProject_args::~Airavata_updateProject_args() throw() {
+Airavata_getSSHPubKey_args::~Airavata_getSSHPubKey_args() throw() {
 }
 
 
-uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getSSHPubKey_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4155,8 +4130,8 @@ uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_projectId = false;
-  bool isset_updatedProject = false;
+  bool isset_airavataCredStoreToken = false;
+  bool isset_gatewayId = false;
 
   while (true)
   {
@@ -4176,16 +4151,16 @@ uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->projectId);
-          isset_projectId = true;
+          xfer += iprot->readString(this->airavataCredStoreToken);
+          isset_airavataCredStoreToken = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->updatedProject.read(iprot);
-          isset_updatedProject = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4201,28 +4176,28 @@ uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_projectId)
+  if (!isset_airavataCredStoreToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_updatedProject)
+  if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_updateProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getSSHPubKey_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_updateProject_args");
+  xfer += oprot->writeStructBegin("Airavata_getSSHPubKey_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->projectId);
+  xfer += oprot->writeFieldBegin("airavataCredStoreToken", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->airavataCredStoreToken);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("updatedProject", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += this->updatedProject.write(oprot);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4231,25 +4206,25 @@ uint32_t Airavata_updateProject_args::write(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_updateProject_pargs::~Airavata_updateProject_pargs() throw() {
+Airavata_getSSHPubKey_pargs::~Airavata_getSSHPubKey_pargs() throw() {
 }
 
 
-uint32_t Airavata_updateProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getSSHPubKey_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_updateProject_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getSSHPubKey_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->projectId)));
+  xfer += oprot->writeFieldBegin("airavataCredStoreToken", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->airavataCredStoreToken)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("updatedProject", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += (*(this->updatedProject)).write(oprot);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4258,11 +4233,11 @@ uint32_t Airavata_updateProject_pargs::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_updateProject_result::~Airavata_updateProject_result() throw() {
+Airavata_getSSHPubKey_result::~Airavata_getSSHPubKey_result() throw() {
 }
 
 
-uint32_t Airavata_updateProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getSSHPubKey_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4283,6 +4258,14 @@ uint32_t Airavata_updateProject_result::read(::apache::thrift::protocol::TProtoc
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -4307,22 +4290,6 @@ uint32_t Airavata_updateProject_result::read(::apache::thrift::protocol::TProtoc
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->ae.read(iprot);
-          this->__isset.ae = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4335,13 +4302,17 @@ uint32_t Airavata_updateProject_result::read(::apache::thrift::protocol::TProtoc
   return xfer;
 }
 
-uint32_t Airavata_updateProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getSSHPubKey_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_updateProject_result");
+  xfer += oprot->writeStructBegin("Airavata_getSSHPubKey_result");
 
-  if (this->__isset.ire) {
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
+    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -4353,14 +4324,6 @@ uint32_t Airavata_updateProject_result::write(::apache::thrift::protocol::TProto
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.pnfe) {
-    xfer += oprot->writeFieldBegin("pnfe", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->pnfe.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.ae) {
-    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 5);
-    xfer += this->ae.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4368,11 +4331,11 @@ uint32_t Airavata_updateProject_result::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_updateProject_presult::~Airavata_updateProject_presult() throw() {
+Airavata_getSSHPubKey_presult::~Airavata_getSSHPubKey_presult() throw() {
 }
 
 
-uint32_t Airavata_updateProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getSSHPubKey_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4393,6 +4356,14 @@ uint32_t Airavata_updateProject_presult::read(::apache::thrift::protocol::TProto
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -4417,22 +4388,6 @@ uint32_t Airavata_updateProject_presult::read(::apache::thrift::protocol::TProto
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->ae.read(iprot);
-          this->__isset.ae = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4446,11 +4401,11 @@ uint32_t Airavata_updateProject_presult::read(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_getProject_args::~Airavata_getProject_args() throw() {
+Airavata_getAllUserSSHPubKeys_args::~Airavata_getAllUserSSHPubKeys_args() throw() {
 }
 
 
-uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllUserSSHPubKeys_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4463,7 +4418,7 @@ uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* i
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_projectId = false;
+  bool isset_userName = false;
 
   while (true)
   {
@@ -4483,8 +4438,8 @@ uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* i
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->projectId);
-          isset_projectId = true;
+          xfer += iprot->readString(this->userName);
+          isset_userName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4500,22 +4455,22 @@ uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* i
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_projectId)
+  if (!isset_userName)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllUserSSHPubKeys_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getProject_args");
+  xfer += oprot->writeStructBegin("Airavata_getAllUserSSHPubKeys_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->projectId);
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userName);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4524,21 +4479,21 @@ uint32_t Airavata_getProject_args::write(::apache::thrift::protocol::TProtocol*
 }
 
 
-Airavata_getProject_pargs::~Airavata_getProject_pargs() throw() {
+Airavata_getAllUserSSHPubKeys_pargs::~Airavata_getAllUserSSHPubKeys_pargs() throw() {
 }
 
 
-uint32_t Airavata_getProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllUserSSHPubKeys_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getProject_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getAllUserSSHPubKeys_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->projectId)));
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userName)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4547,11 +4502,11 @@ uint32_t Airavata_getProject_pargs::write(::apache::thrift::protocol::TProtocol*
 }
 
 
-Airavata_getProject_result::~Airavata_getProject_result() throw() {
+Airavata_getAllUserSSHPubKeys_result::~Airavata_getAllUserSSHPubKeys_result() throw() {
 }
 
 
-uint32_t Airavata_getProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllUserSSHPubKeys_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4573,8 +4528,23 @@ uint32_t Airavata_getProject_result::read(::apache::thrift::protocol::TProtocol*
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->success.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->success.clear();
+            uint32_t _size22;
+            ::apache::thrift::protocol::TType _ktype23;
+            ::apache::thrift::protocol::TType _vtype24;
+            xfer += iprot->readMapBegin(_ktype23, _vtype24, _size22);
+            uint32_t _i26;
+            for (_i26 = 0; _i26 < _size22; ++_i26)
+            {
+              std::string _key27;
+              xfer += iprot->readString(_key27);
+              std::string& _val28 = this->success[_key27];
+              xfer += iprot->readString(_val28);
+            }
+            xfer += iprot->readMapEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -4604,22 +4574,6 @@ uint32_t Airavata_getProject_result::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->ae.read(iprot);
-          this->__isset.ae = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4632,15 +4586,24 @@ uint32_t Airavata_getProject_result::read(::apache::thrift::protocol::TProtocol*
   return xfer;
 }
 
-uint32_t Airavata_getProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllUserSSHPubKeys_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getProject_result");
+  xfer += oprot->writeStructBegin("Airavata_getAllUserSSHPubKeys_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
-    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0);
+    {
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+      std::map<std::string, std::string> ::const_iterator _iter29;
+      for (_iter29 = this->success.begin(); _iter29 != this->success.end(); ++_iter29)
+      {
+        xfer += oprot->writeString(_iter29->first);
+        xfer += oprot->writeString(_iter29->second);
+      }
+      xfer += oprot->writeMapEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -4654,14 +4617,6 @@ uint32_t Airavata_getProject_result::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.pnfe) {
-    xfer += oprot->writeFieldBegin("pnfe", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->pnfe.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.ae) {
-    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 5);
-    xfer += this->ae.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4669,11 +4624,11 @@ uint32_t Airavata_getProject_result::write(::apache::thrift::protocol::TProtocol
 }
 
 
-Airavata_getProject_presult::~Airavata_getProject_presult() throw() {
+Airavata_getAllUserSSHPubKeys_presult::~Airavata_getAllUserSSHPubKeys_presult() throw() {
 }
 
 
-uint32_t Airavata_getProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllUserSSHPubKeys_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4695,8 +4650,23 @@ uint32_t Airavata_getProject_presult::read(::apache::thrift::protocol::TProtocol
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += (*(this->success)).read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size30;
+            ::apache::thrift::protocol::TType _ktype31;
+            ::apache::thrift::protocol::TType _vtype32;
+            xfer += iprot->readMapBegin(_ktype31, _vtype32, _size30);
+            uint32_t _i34;
+            for (_i34 = 0; _i34 < _size30; ++_i34)
+            {
+              std::string _key35;
+              xfer += iprot->readString(_key35);
+              std::string& _val36 = (*(this->success))[_key35];
+              xfer += iprot->readString(_val36);
+            }
+            xfer += iprot->readMapEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -4726,22 +4696,6 @@ uint32_t Airavata_getProject_presult::read(::apache::thrift::protocol::TProtocol
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->ae.read(iprot);
-          this->__isset.ae = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4755,11 +4709,11 @@ uint32_t Airavata_getProject_presult::read(::apache::thrift::protocol::TProtocol
 }
 
 
-Airavata_deleteProject_args::~Airavata_deleteProject_args() throw() {
+Airavata_getAllGatewaySSHPubKeys_args::~Airavata_getAllGatewaySSHPubKeys_args() throw() {
 }
 
 
-uint32_t Airavata_deleteProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewaySSHPubKeys_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4772,7 +4726,7 @@ uint32_t Airavata_deleteProject_args::read(::apache::thrift::protocol::TProtocol
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_projectId = false;
+  bool isset_gatewayId = false;
 
   while (true)
   {
@@ -4792,8 +4746,8 @@ uint32_t Airavata_deleteProject_args::read(::apache::thrift::protocol::TProtocol
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->projectId);
-          isset_projectId = true;
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4809,22 +4763,22 @@ uint32_t Airavata_deleteProject_args::read(::apache::thrift::protocol::TProtocol
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_projectId)
+  if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_deleteProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewaySSHPubKeys_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_deleteProject_args");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewaySSHPubKeys_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->projectId);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4833,21 +4787,21 @@ uint32_t Airavata_deleteProject_args::write(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_deleteProject_pargs::~Airavata_deleteProject_pargs() throw() {
+Airavata_getAllGatewaySSHPubKeys_pargs::~Airavata_getAllGatewaySSHPubKeys_pargs() throw() {
 }
 
 
-uint32_t Airavata_deleteProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewaySSHPubKeys_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_deleteProject_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewaySSHPubKeys_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->projectId)));
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4856,11 +4810,11 @@ uint32_t Airavata_deleteProject_pargs::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_deleteProject_result::~Airavata_deleteProject_result() throw() {
+Airavata_getAllGatewaySSHPubKeys_result::~Airavata_getAllGatewaySSHPubKeys_result() throw() {
 }
 
 
-uint32_t Airavata_deleteProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewaySSHPubKeys_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4882,8 +4836,23 @@ uint32_t Airavata_deleteProject_result::read(::apache::thrift::protocol::TProtoc
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool(this->success);
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->success.clear();
+            uint32_t _size37;
+            ::apache::thrift::protocol::TType _ktype38;
+            ::apache::thrift::protocol::TType _vtype39;
+            xfer += iprot->readMapBegin(_ktype38, _vtype39, _size37);
+            uint32_t _i41;
+            for (_i41 = 0; _i41 < _size37; ++_i41)
+            {
+              std::string _key42;
+              xfer += iprot->readString(_key42);
+              std::string& _val43 = this->success[_key42];
+              xfer += iprot->readString(_val43);
+            }
+            xfer += iprot->readMapEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -4913,22 +4882,6 @@ uint32_t Airavata_deleteProject_result::read(::apache::thrift::protocol::TProtoc
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->ae.read(iprot);
-          this->__isset.ae = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4941,15 +4894,24 @@ uint32_t Airavata_deleteProject_result::read(::apache::thrift::protocol::TProtoc
   return xfer;
 }
 
-uint32_t Airavata_deleteProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllGatewaySSHPubKeys_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_deleteProject_result");
+  xfer += oprot->writeStructBegin("Airavata_getAllGatewaySSHPubKeys_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
-    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0);
+    {
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+      std::map<std::string, std::string> ::const_iterator _iter44;
+      for (_iter44 = this->success.begin(); _iter44 != this->success.end(); ++_iter44)
+      {
+        xfer += oprot->writeString(_iter44->first);
+        xfer += oprot->writeString(_iter44->second);
+      }
+      xfer += oprot->writeMapEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -4963,14 +4925,6 @@ uint32_t Airavata_deleteProject_result::write(::apache::thrift::protocol::TProto
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.pnfe) {
-    xfer += oprot->writeFieldBegin("pnfe", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->pnfe.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.ae) {
-    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 5);
-    xfer += this->ae.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4978,11 +4932,11 @@ uint32_t Airavata_deleteProject_result::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_deleteProject_presult::~Airavata_deleteProject_presult() throw() {
+Airavata_getAllGatewaySSHPubKeys_presult::~Airavata_getAllGatewaySSHPubKeys_presult() throw() {
 }
 
 
-uint32_t Airavata_deleteProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllGatewaySSHPubKeys_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5004,8 +4958,23 @@ uint32_t Airavata_deleteProject_presult::read(::apache::thrift::protocol::TProto
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size45;
+            ::apache::thrift::protocol::TType _ktype46;
+            ::apache::thrift::protocol::TType _vtype47;
+            xfer += iprot->readMapBegin(_ktype46, _vtype47, _size45);
+            uint32_t _i49;
+            for (_i49 = 0; _i49 < _size45; ++_i49)
+            {
+              std::string _key50;
+              xfer += iprot->readString(_key50);
+              std::string& _val51 = (*(this->success))[_key50];
+              xfer += iprot->readString(_val51);
+            }
+            xfer += iprot->readMapEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -5035,22 +5004,6 @@ uint32_t Airavata_deleteProject_presult::read(::apache::thrift::protocol::TProto
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->ae.read(iprot);
-          this->__isset.ae = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -5064,11 +5017,11 @@ uint32_t Airavata_deleteProject_presult::read(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_getUserProjects_args::~Airavata_getUserProjects_args() throw() {
+Airavata_deleteSSHPubKey_args::~Airavata_deleteSSHPubKey_args() throw() {
 }
 
 
-uint32_t Airavata_getUserProjects_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteSSHPubKey_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5081,10 +5034,8 @@ uint32_t Airavata_getUserProjects_args::read(::apache::thrift::protocol::TProtoc
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
+  bool isset_airavataCredStoreToken = false;
   bool isset_gatewayId = false;
-  bool isset_userName = false;
-  bool isset_limit = false;
-  bool isset_offset = false;
 
   while (true)
   {
@@ -5104,32 +5055,16 @@ uint32_t Airavata_getUserProjects_args::read(::apache::thrift::protocol::TProtoc
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          isset_gatewayId = true;
+          xfer += iprot->readString(this->airavataCredStoreToken);
+          isset_airavataCredStoreToken = true;
         } else {
           xfer += i

<TRUNCATED>

[04/35] airavata git commit: adding scratch location override - AIRAVATA-1945

Posted by sh...@apache.org.
adding scratch location override  - AIRAVATA-1945


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

Branch: refs/heads/master
Commit: 9b52485f7261c2241eeeee9e2b740ae95244f4aa
Parents: e5ae01e
Author: Suresh Marru <sm...@apache.org>
Authored: Fri Apr 1 05:30:40 2016 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Fri Apr 1 05:30:40 2016 -0400

----------------------------------------------------------------------
 .../gfac/core/context/ProcessContext.java       |  8 ++++++-
 .../org/apache/airavata/gfac/impl/Factory.java  | 19 +++++++++++++++-
 .../airavata/gfac/impl/GFacEngineImpl.java      |  2 +-
 .../core/utils/OrchestratorUtils.java           | 23 +++++++++++++++++---
 .../cpi/impl/SimpleOrchestratorImpl.java        |  6 ++---
 5 files changed, 49 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/9b52485f/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
index e503bfb..3951216 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
@@ -167,7 +167,13 @@ public class ProcessContext {
             if (processModel.getResourceSchedule().getStaticWorkingDir() != null){
                 workingDir = processModel.getResourceSchedule().getStaticWorkingDir();
             }else {
-                String scratchLocation = computeResourcePreference.getScratchLocation();
+                String scratchLocation = null;
+				String overrideScratchLocation = processModel.getResourceSchedule().getOverrideScratchLocation();
+                if (overrideScratchLocation != null || !overrideScratchLocation.equals("")) {
+					scratchLocation = overrideScratchLocation;
+				} else {
+					scratchLocation = computeResourcePreference.getScratchLocation();
+				}
                 workingDir = (scratchLocation.endsWith("/") ? scratchLocation + processId : scratchLocation + "/" +
                         processId);
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/9b52485f/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
index 723eb37..b446e85 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
@@ -319,7 +319,7 @@ public abstract class Factory {
             ProcessModel processModel = processContext.getProcessModel();
             String loginUserName = null;
             String overrideLoginUserName = processModel.getResourceSchedule().getOverrideLoginUserName();
-            if (overrideLoginUserName != null) {
+            if (overrideLoginUserName != null || !overrideLoginUserName.equals("")) {
                 loginUserName = overrideLoginUserName;
             } else {
                 loginUserName = processContext.getComputeResourcePreference().getLoginUserName();
@@ -331,6 +331,23 @@ public abstract class Factory {
         }
     }
 
+    public static String  getScratchLocation(ProcessContext processContext) throws GFacException {
+        try {
+            ProcessModel processModel = processContext.getProcessModel();
+            String scratchLocation = null;
+            String overrideScratchLocation = processModel.getResourceSchedule().getOverrideScratchLocation();
+            if (overrideScratchLocation != null || !overrideScratchLocation.equals("")) {
+                scratchLocation = overrideScratchLocation;
+            } else {
+                scratchLocation = processContext.getComputeResourcePreference().getScratchLocation();
+            }
+
+            return scratchLocation;
+        }  catch (Exception e) {
+            throw new GFacException("Couldn't fetch scratchLocation", e);
+        }
+    }
+
     private static SSHKeyAuthentication getSshKeyAuthentication(String gatewayId,
                                                                 String loginUserName,
                                                                 String credentialStoreToken)

http://git-wip-us.apache.org/repos/asf/airavata/blob/9b52485f/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
index 129103b..c588f76 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
@@ -111,7 +111,7 @@ public class GFacEngineImpl implements GFacEngine {
             processContext.setGatewayResourceProfile(gatewayProfile);
             ComputeResourcePreference computeResourcePreference = appCatalog.getGatewayProfile().getComputeResourcePreference
                     (gatewayId, processModel.getComputeResourceId());
-            String scratchLocation = computeResourcePreference.getScratchLocation();
+            String scratchLocation = Factory.getScratchLocation(processContext);
             scratchLocation = scratchLocation + File.separator + processId + File.separator;
             processContext.setComputeResourcePreference(computeResourcePreference);
             StoragePreference storagePreference = appCatalog.getGatewayProfile().getStoragePreference(gatewayId, processModel.getStorageResourceId());

http://git-wip-us.apache.org/repos/asf/airavata/blob/9b52485f/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
index d38a860..be27eb5 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
@@ -125,7 +125,7 @@ public class OrchestratorUtils {
         try {
             String loginUserName = null;
             String overrideLoginUserName = processModel.getResourceSchedule().getOverrideLoginUserName();
-            if (overrideLoginUserName != null) {
+            if (overrideLoginUserName != null || !overrideLoginUserName.equals("")) {
                 loginUserName = overrideLoginUserName;
             } else {
                 GwyResourceProfile gatewayProfile = context.getRegistry().getAppCatalog().getGatewayProfile();
@@ -133,8 +133,25 @@ public class OrchestratorUtils {
             }
             return loginUserName;
         } catch (AppCatalogException e) {
-            logger.error("Error occurred while initializing app catalog", e);
-            throw new RegistryException("Error occurred while initializing app catalog", e);
+            logger.error("Error occurred while initializing app catalog to fetch login username", e);
+            throw new RegistryException("Error occurred while initializing app catalog to fetch login username", e);
+        }
+    }
+
+    public static String getScratchLocation(OrchestratorContext context, ProcessModel processModel, String gatewayId) throws RegistryException {
+        try {
+            String scratchLocation = null;
+            String overrideScratchLocation = processModel.getResourceSchedule().getOverrideScratchLocation();
+            if (overrideScratchLocation != null || !overrideScratchLocation.equals("")) {
+                scratchLocation = overrideScratchLocation;
+            } else {
+                GwyResourceProfile gatewayProfile = context.getRegistry().getAppCatalog().getGatewayProfile();
+                scratchLocation = gatewayProfile.getComputeResourcePreference(gatewayId, processModel.getComputeResourceId()).getScratchLocation();
+            }
+            return scratchLocation;
+        } catch (AppCatalogException e) {
+            logger.error("Error occurred while initializing app catalog to fetch scratch location", e);
+            throw new RegistryException("Error occurred while initializing app catalog to fetch scratch location", e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/9b52485f/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
index 116b5f8..4489ef0 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
@@ -352,7 +352,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         EnvironmentSetupTaskModel envSetupSubModel = new EnvironmentSetupTaskModel();
         envSetupSubModel.setProtocol(OrchestratorUtils.getSecurityProtocol(orchestratorContext, processModel, gatewayId));
         ComputeResourcePreference computeResourcePreference = OrchestratorUtils.getComputeResourcePreference(orchestratorContext, processModel, gatewayId);
-        String scratchLocation = computeResourcePreference.getScratchLocation();
+        String scratchLocation = OrchestratorUtils.getScratchLocation(orchestratorContext,processModel, gatewayId);
         String workingDir = scratchLocation + File.separator + processModel.getProcessId();
         envSetupSubModel.setLocation(workingDir);
         byte[] envSetupSub = ThriftUtils.serializeThriftObject(envSetupSubModel);
@@ -543,7 +543,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         DataStagingTaskModel submodel = new DataStagingTaskModel();
         ComputeResourcePreference computeResourcePreference = OrchestratorUtils.getComputeResourcePreference(orchestratorContext, processModel, gatewayId);
         ComputeResourceDescription computeResource = orchestratorContext.getRegistry().getAppCatalog().getComputeResource().getComputeResource(processModel.getComputeResourceId());
-        String remoteOutputDir = computeResourcePreference.getScratchLocation() + File.separator + processModel.getProcessId();
+        String remoteOutputDir = OrchestratorUtils.getScratchLocation(orchestratorContext,processModel, gatewayId) + File.separator + processModel.getProcessId();
         remoteOutputDir = remoteOutputDir.endsWith("/") ? remoteOutputDir : remoteOutputDir + "/";
         URI destination = null;
         try {
@@ -580,7 +580,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
             ComputeResourcePreference computeResourcePreference = OrchestratorUtils.getComputeResourcePreference(orchestratorContext, processModel, gatewayId);
             ComputeResourceDescription computeResource = orchestratorContext.getRegistry().getAppCatalog().getComputeResource().getComputeResource(processModel.getComputeResourceId());
 
-            String remoteOutputDir = computeResourcePreference.getScratchLocation() + File.separator + processModel.getProcessId();
+            String remoteOutputDir = OrchestratorUtils.getScratchLocation(orchestratorContext,processModel, gatewayId) + File.separator + processModel.getProcessId();
             remoteOutputDir = remoteOutputDir.endsWith("/") ? remoteOutputDir : remoteOutputDir + "/";
             DataStagingTaskModel submodel = new DataStagingTaskModel();
             DataMovementProtocol dataMovementProtocol = OrchestratorUtils.getPreferredDataMovementProtocol(orchestratorContext, processModel, gatewayId);


[16/35] airavata git commit: Adding floating ip association with instances

Posted by sh...@apache.org.
Adding floating ip association with instances


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

Branch: refs/heads/master
Commit: 8b9f5c89cbff522c8f913532cd7ad8ff5abaf412
Parents: cf575fe
Author: Mangirish Wagle <va...@gmail.com>
Authored: Sat Apr 16 00:24:34 2016 -0400
Committer: Mangirish Wagle <va...@gmail.com>
Committed: Sat Apr 16 00:24:34 2016 -0400

----------------------------------------------------------------------
 modules/cloud/cloud-provisioning/README         |   2 +-
 .../airavata/cloud/intf/CloudInterface.java     |   8 +-
 .../cloud/intf/impl/OpenstackIntfImpl.java      | 132 +++++++++++++++++--
 .../apache/airavata/cloud/util/Constants.java   |   2 +
 .../org/apache/airavata/cloud/util/IPType.java  |  39 ++++++
 .../main/resources/jetstream_openrc.properties  |   4 +
 .../airavata/cloud/test/CloudIntfTest.java      |  19 ++-
 .../src/test/resources/test_data.properties     |   1 -
 8 files changed, 187 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/8b9f5c89/modules/cloud/cloud-provisioning/README
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/README b/modules/cloud/cloud-provisioning/README
index 1b161a0..dc4a7a6 100644
--- a/modules/cloud/cloud-provisioning/README
+++ b/modules/cloud/cloud-provisioning/README
@@ -3,5 +3,5 @@ Currently supporting, Openstack on Jetstream using Openstack4j.
 
 To Test Run:-
 1) Replace the credentials in src/main/resources/jetstream_openrc.properties with the Jetstream credentials.
-2) Update the publicKeyFile, jetstream_imageId, jetstream_flavorId and jetstream_networkId to the local path in src/test/resources/test_data.properties. This are the parameters used by the unit tests.
+2) Update the publicKeyFile, jetstream_imageId, jetstream_flavorId to the local path in src/test/resources/test_data.properties. This are the parameters used by the unit tests.
 3) Run JUnit Test org.apache.airavata.cloud.test.CloudIntfTest.

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b9f5c89/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java
index f9d9520..f64e11a 100644
--- a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java
@@ -35,7 +35,7 @@ public interface CloudInterface {
 	 * @param keyPairName
 	 * @return Server object.
 	 */
-	public Server createServer(String serverName, String imageId, String flavorId, String networkId, String keyPairName);
+	public Server createServer(String serverName, String imageId, String flavorId, String keyPairName);
 
 	/**
 	 * Returns the Server object pertaining to the serverId.
@@ -69,4 +69,10 @@ public interface CloudInterface {
 	 * @param publicKey
 	 */
 	public void deleteKeyPair(String keyPairName);
+
+	/**
+	 * Associates a floating ip to the instance indicated by serverId.
+	 * @param serverId
+	 */
+	public void addFloatingIP(String serverId);
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b9f5c89/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java
index cb202c4..a4c4ed6 100644
--- a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java
@@ -29,11 +29,20 @@ import java.util.Properties;
 
 import org.apache.airavata.cloud.intf.CloudInterface;
 import org.apache.airavata.cloud.openstack.OS4JClientProvider;
+import org.apache.airavata.cloud.util.Constants;
+import org.apache.airavata.cloud.util.IPType;
 import org.openstack4j.api.Builders;
 import org.openstack4j.api.OSClient;
+import org.openstack4j.model.compute.ActionResponse;
+import org.openstack4j.model.compute.Address;
+import org.openstack4j.model.compute.FloatingIP;
 import org.openstack4j.model.compute.Keypair;
 import org.openstack4j.model.compute.Server;
 import org.openstack4j.model.compute.ServerCreate;
+import org.openstack4j.model.network.Subnet;
+import org.openstack4j.openstack.compute.domain.NovaAddresses.NovaAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class OpenstackIntfImpl implements CloudInterface {
 
@@ -41,6 +50,9 @@ public class OpenstackIntfImpl implements CloudInterface {
 	private String propertiesFile;
 	private Properties properties;
 
+	// Initializing Logger
+	private Logger logger = LoggerFactory.getLogger(OpenstackIntfImpl.class);
+
 	OSClient os = null;
 
 	/**
@@ -72,30 +84,51 @@ public class OpenstackIntfImpl implements CloudInterface {
 	}
 
 	@Override
-	public Server createServer(String serverName, String imageId, String flavorId, String networkId, String keyPairName) {
+	public Server createServer(String serverName, String imageId, String flavorId, String keyPairName) {
 		try {
 
+			Server newServer = null;
+			String networkId = null;
+
+			// Adhering to openstack format of subnet names 'subnet-<name>'.
+			String networkName = "subnet-" + properties.getProperty(Constants.OS_SUBNET_NAME);
+
+			for( Subnet net : os.networking().subnet().list() ) {
+				if(net.getName().equals(networkName)) {
+					networkId = net.getNetworkId();
+					logger.info("Using network " + networkName + " with ID: " + networkId);
+					break;
+				}
+			}
+
+			if(networkId != null) {
 
-			List<String> srvNet = new LinkedList<String>();
-			srvNet.add(networkId);
+				List<String> srvNet = new LinkedList<String>();
+				srvNet.add(networkId);
 
-			ServerCreate sc = Builders.server()
-					.name(serverName)
-					.flavor(flavorId)
-					.image(imageId)
-					.networks(srvNet)
-					.keypairName(keyPairName)
-					.addPersonality("/etc/motd", "Welcome to the new VM! Restricted access only")
-					.build();
+				ServerCreate sc = Builders.server()
+						.name(serverName)
+						.flavor(flavorId)
+						.image(imageId)
+						.networks(srvNet)
+						.keypairName(keyPairName)
+						.build();
 
-			//Boot the Server
-			Server newServer = os.compute().servers().boot(sc);
+				//Boot the Server
+				newServer = os.compute().servers().boot(sc);
 
+				logger.info("New server created with ID: " + newServer.getId());
+
+			}
+			else {
+				logger.error("Network with name " + networkName + " not found.");
+			}
 			return newServer;
 		}
 		catch( Exception ex ) {
 			ex.printStackTrace();
 			// TODO: Check with the team on how to handle exceptions.
+			logger.error("Failed to create server.");
 			return null;
 		}
 	}
@@ -106,11 +139,14 @@ public class OpenstackIntfImpl implements CloudInterface {
 
 			Server server = os.compute().servers().get(serverId);
 
+			logger.info("Server retrieved successfully for ID: " + serverId);
+
 			return server;
 		}
 		catch( Exception ex ) {
 			ex.printStackTrace();
 			// TODO: Check with the team on how to handle exceptions.
+			logger.error("Failed to retrieve server for ID: " + serverId);
 			return null;
 		}
 	}
@@ -119,11 +155,38 @@ public class OpenstackIntfImpl implements CloudInterface {
 	public void deleteServer(String serverId) {
 		try {
 
-			os.compute().servers().delete(serverId);
+			Server server = this.getServer(serverId);
+
+			// Get Floating IP if there is one associated.
+			String floatingIpAddr = null;
+			for(Address novaAddress : server.getAddresses().getAddresses().get(properties.getProperty(Constants.OS_SUBNET_NAME))) {
+				novaAddress = (NovaAddress) novaAddress;
+				if(novaAddress.getType().equals(IPType.FLOATING.toString())) {
+					floatingIpAddr = novaAddress.getAddr();
+					break;
+				}
+			}
+
+			if(server != null) {
+				os.compute().servers().delete(serverId);
+
+				// Deallocating Floating IP.
+				if(floatingIpAddr != null) {
+					for(FloatingIP floatIp : os.compute().floatingIps().list()) {
+						if(floatIp.getFloatingIpAddress().equals(floatingIpAddr)) {
+							os.compute().floatingIps().deallocateIP(floatIp.getId());
+						}
+					}
+				}
+
+				logger.info("Server deleted successfully for ID: " + serverId);
+			}
+
 		}
 		catch( Exception ex ) {
 			ex.printStackTrace();
 			// TODO: Check with the team on how to handle exceptions.
+			logger.error("Failed to delete server with ID: " + serverId);
 		}
 	}
 
@@ -133,11 +196,14 @@ public class OpenstackIntfImpl implements CloudInterface {
 
 			Keypair keyp = os.compute().keypairs().create(keyPairName, publicKey);
 
+			logger.info("Keypair created successfully: " + keyp.getName());
+
 			return keyp;
 		}
 		catch( Exception ex ) {
 			ex.printStackTrace();
 			// TODO: Check with the team on how to handle exceptions.
+			logger.error("Failed to create keypair: " + keyPairName);
 			return null;
 		}
 	}
@@ -148,11 +214,16 @@ public class OpenstackIntfImpl implements CloudInterface {
 
 			Keypair keyp = os.compute().keypairs().get(keyPairName);
 
+			if(keyp != null){
+				logger.info("Keypair retrieved successfully: " + keyp.getName());				
+			}
+
 			return keyp;
 		}
 		catch( Exception ex ) {
 			ex.printStackTrace();
 			// TODO: Check with the team on how to handle exceptions.
+			logger.error("Failed to retrieve keypair: " + keyPairName);
 			return null;
 		}
 	}
@@ -162,11 +233,44 @@ public class OpenstackIntfImpl implements CloudInterface {
 		try {
 
 			os.compute().keypairs().delete(keyPairName);
+
+			logger.info("Keypair deleted successfully: " + keyPairName);
 		}
 		catch( Exception ex ) {
 			ex.printStackTrace();
 			// TODO: Check with the team on how to handle exceptions.
+			logger.error("Failed to delete keypair: " + keyPairName);
 		}
 	}
 
+	@Override
+	public void addFloatingIP(String serverId) {
+
+		try {
+			Server server = this.getServer(serverId);
+
+			if(server != null) {
+				FloatingIP floatIp = os.compute().floatingIps().allocateIP(properties.getProperty(Constants.OS_FLOATING_IP_POOL));
+
+				if(floatIp != null) {
+					String ipAddr = floatIp.getFloatingIpAddress();
+
+					if(ipAddr != null) {
+						ActionResponse response = os.compute().floatingIps().addFloatingIP(server, ipAddr);
+						logger.info(response.isSuccess() + ":" + response.getCode() + ":" + response.getFault() + ":" + response.toString());
+
+						logger.info("Floating IP "+ ipAddr + " assigned successfully to server with ID: " + serverId);
+					}
+				}
+				else {
+					logger.error("Failed to associate Floating IP.");
+				}
+			}
+		}
+		catch( Exception ex ) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+			logger.error("Failed to associate floating IP to server with ID: " + serverId);
+		}
+	}
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b9f5c89/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java
index 275a0e7..e2b9ad1 100644
--- a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java
@@ -30,5 +30,7 @@ public class Constants {
 	public static final String OS_PASSWORD = "OS_PASSWORD";
 	public static final String OS_USER_DOMAIN_NAME = "OS_USER_DOMAIN_NAME";
 	public static final String OS_PROJECT_DOMAIN_NAME = "OS_PROJECT_DOMAIN_NAME";
+	public static final String OS_FLOATING_IP_POOL = "OS_FLOATING_IP_POOL";
+	public static final String OS_SUBNET_NAME = "OS_SUBNET_NAME";
 
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b9f5c89/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/IPType.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/IPType.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/IPType.java
new file mode 100644
index 0000000..36b5598
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/IPType.java
@@ -0,0 +1,39 @@
+/*
+ *
+ * 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.cloud.util;
+
+public enum IPType {
+
+	FLOATING("floating"),
+	STATIC("static");
+
+	String ipType;
+
+	private IPType(String type) {
+		this.ipType = type;
+	}
+
+	@Override
+	public String toString() {
+		return this.ipType;
+	}
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b9f5c89/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties b/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties
index 9487bc1..cda2bec 100644
--- a/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties
+++ b/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties
@@ -27,3 +27,7 @@ OS_USERNAME=scigap
 OS_PASSWORD=xxxxxxxx
 OS_AUTH_URL=https://jblb.jetstream-cloud.org:35357/v3
 OS_IDENTITY_API_VERSION=3
+
+# Network Properties
+OS_FLOATING_IP_POOL=public
+OS_SUBNET_NAME=airavata

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b9f5c89/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java b/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java
index 71a8a53..c48c694 100644
--- a/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java
+++ b/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java
@@ -78,7 +78,9 @@ public class CloudIntfTest {
 			// Sample data. This can be determined by the inputs from Airavata.
 			String imageId = properties.getProperty("jetstream_imageId");
 			String flavorId = properties.getProperty("jetstream_flavorId");
-			String networkId = properties.getProperty("jetstream_networkId");
+
+			// Delay in milliseconds used for waiting for server create and delete.
+			Integer delay = 30000;
 
 			/* Create Keypair */
 			String publicKeyFile = properties.getProperty("publicKeyFile");
@@ -95,19 +97,30 @@ public class CloudIntfTest {
 			logger.info("Keypair created/ retrieved: " + kp.getFingerprint());
 
 			/* Create Server */
-			Server newServer = cloudIntf.createServer("AiravataTest", imageId, flavorId, networkId, kp.getName());
+			Server newServer = cloudIntf.createServer("AiravataTest", imageId, flavorId, kp.getName());
 			logger.info("Server Created: " + newServer.getId());
 
+			/* Wait 30 seconds until server is active */
+			logger.info("Waiting for instance to go ACTIVE...");
+			Thread.sleep(delay);
+
+			/* Associate floating ip */
+			cloudIntf.addFloatingIP(newServer.getId());
+
 			/* Delete Server */
 			cloudIntf.deleteServer(newServer.getId());
 			logger.info("Server deleted: " + newServer.getId());
 
-			Server deleted = cloudIntf.getServer(newServer.getId());
+			/* Wait 30 seconds until server is terminated */
+			logger.info("Waiting for instance to terminate...");
+			Thread.sleep(delay);
 
 			/* Delete Keypair */
 			cloudIntf.deleteKeyPair(kp.getName());
 			logger.info("Keypair deleted: " + kp.getName());
 
+			Server deleted = cloudIntf.getServer(newServer.getId());
+
 			assertTrue(newServer != null && deleted == null);
 		}
 		catch( Exception ex ) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/8b9f5c89/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties b/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties
index 2ebf7c7..df87b8e 100644
--- a/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties
+++ b/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties
@@ -24,4 +24,3 @@ publicKeyFile=/path/id_rsa.pub
 # Jetstream properties
 jetstream_imageId=7048bb41-bbbbb-4caa-9370-xxxxxxxxxxx
 jetstream_flavorId=3
-jetstream_networkId=4367cd20-cccc-4dc2-97e8-kkkkkkkkkkk


[02/35] airavata git commit: adding data model parameters to override scheduling - AIRAVATA-1945

Posted by sh...@apache.org.
adding data model parameters to override scheduling - AIRAVATA-1945


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

Branch: refs/heads/master
Commit: 27e93a0f2b5032dcc57438d5f726752b64d8a24a
Parents: 6c301e6
Author: Suresh Marru <sm...@apache.org>
Authored: Wed Mar 30 17:52:07 2016 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Wed Mar 30 17:52:07 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |   2 +-
 .../lib/airavata/scheduling_model_types.cpp     |  66 ++++
 .../lib/airavata/scheduling_model_types.h       |  28 +-
 .../lib/Airavata/Model/Scheduling/Types.php     |  69 ++++
 .../apache/airavata/model/scheduling/ttypes.py  |  41 ++-
 .../apache/airavata/model/ComponentStatus.java  |   2 +-
 .../org/apache/airavata/model/EdgeModel.java    |   2 +-
 .../org/apache/airavata/model/NodeModel.java    |   2 +-
 .../org/apache/airavata/model/PortModel.java    |   2 +-
 .../apache/airavata/model/WorkflowModel.java    |   2 +-
 .../apache/airavata/model/WorkflowStatus.java   |   2 +-
 .../ApplicationDeploymentDescription.java       |   2 +-
 .../appdeployment/ApplicationModule.java        |   2 +-
 .../appcatalog/appdeployment/CommandObject.java |   2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |   2 +-
 .../ApplicationInterfaceDescription.java        |   2 +-
 .../appcatalog/computeresource/BatchQueue.java  |   2 +-
 .../computeresource/CloudJobSubmission.java     |   2 +-
 .../ComputeResourceDescription.java             |   2 +-
 .../computeresource/GlobusJobSubmission.java    |   2 +-
 .../computeresource/JobSubmissionInterface.java |   2 +-
 .../computeresource/LOCALSubmission.java        |   2 +-
 .../computeresource/ResourceJobManager.java     |   2 +-
 .../computeresource/SSHJobSubmission.java       |   2 +-
 .../computeresource/UnicoreJobSubmission.java   |   2 +-
 .../ComputeResourcePreference.java              |   2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |   2 +-
 .../gatewayprofile/StoragePreference.java       |   2 +-
 .../StorageResourceDescription.java             |   2 +-
 .../application/io/InputDataObjectType.java     |   2 +-
 .../application/io/OutputDataObjectType.java    |   2 +-
 .../airavata/model/commons/ErrorModel.java      |   2 +-
 .../model/commons/ValidationResults.java        |   2 +-
 .../airavata/model/commons/ValidatorResult.java |   2 +-
 .../data/movement/DataMovementInterface.java    |   2 +-
 .../data/movement/GridFTPDataMovement.java      |   2 +-
 .../model/data/movement/LOCALDataMovement.java  |   2 +-
 .../model/data/movement/SCPDataMovement.java    |   2 +-
 .../data/movement/UnicoreDataMovement.java      |   2 +-
 .../model/data/replica/DataProductModel.java    |   2 +-
 .../data/replica/DataReplicaLocationModel.java  |   2 +-
 .../model/error/AiravataClientException.java    |   2 +-
 .../model/error/AiravataSystemException.java    |   2 +-
 .../model/error/AuthenticationException.java    |   2 +-
 .../model/error/AuthorizationException.java     |   2 +-
 .../error/ExperimentNotFoundException.java      |   2 +-
 .../model/error/InvalidRequestException.java    |   2 +-
 .../model/error/LaunchValidationException.java  |   2 +-
 .../model/error/ProjectNotFoundException.java   |   2 +-
 .../airavata/model/error/TimedOutException.java |   2 +-
 .../airavata/model/error/ValidationResults.java |   2 +-
 .../airavata/model/error/ValidatorResult.java   |   2 +-
 .../model/experiment/ExperimentModel.java       |   2 +-
 .../model/experiment/ExperimentStatistics.java  |   2 +-
 .../experiment/ExperimentSummaryModel.java      |   2 +-
 .../experiment/UserConfigurationDataModel.java  |   2 +-
 .../org/apache/airavata/model/job/JobModel.java |   2 +-
 .../event/ExperimentStatusChangeEvent.java      |   2 +-
 .../model/messaging/event/JobIdentifier.java    |   2 +-
 .../messaging/event/JobStatusChangeEvent.java   |   2 +-
 .../event/JobStatusChangeRequestEvent.java      |   2 +-
 .../airavata/model/messaging/event/Message.java |   2 +-
 .../messaging/event/ProcessIdentifier.java      |   2 +-
 .../event/ProcessStatusChangeEvent.java         |   2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |   2 +-
 .../messaging/event/ProcessSubmitEvent.java     |   2 +-
 .../messaging/event/ProcessTerminateEvent.java  |   2 +-
 .../model/messaging/event/TaskIdentifier.java   |   2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |   2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |   2 +-
 .../event/TaskStatusChangeRequestEvent.java     |   2 +-
 .../airavata/model/process/ProcessModel.java    |   2 +-
 .../ComputationalResourceSchedulingModel.java   | 328 ++++++++++++++++++-
 .../airavata/model/security/AuthzToken.java     |   2 +-
 .../airavata/model/status/ExperimentStatus.java |   2 +-
 .../apache/airavata/model/status/JobStatus.java |   2 +-
 .../airavata/model/status/ProcessStatus.java    |   2 +-
 .../airavata/model/status/TaskStatus.java       |   2 +-
 .../model/task/DataStagingTaskModel.java        |   2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |   2 +-
 .../model/task/JobSubmissionTaskModel.java      |   2 +-
 .../airavata/model/task/MonitorTaskModel.java   |   2 +-
 .../apache/airavata/model/task/TaskModel.java   |   2 +-
 .../airavata/model/workspace/Gateway.java       |   2 +-
 .../apache/airavata/model/workspace/Group.java  |   2 +-
 .../airavata/model/workspace/Project.java       |   2 +-
 .../apache/airavata/model/workspace/User.java   |   2 +-
 .../scheduling_model.thrift                     |   5 +-
 88 files changed, 610 insertions(+), 91 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 7781f0d..5037501 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class Airavata {
 
   public interface Iface {

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.cpp
index fc068fa..909cf5e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.cpp
@@ -80,6 +80,21 @@ void ComputationalResourceSchedulingModel::__set_staticWorkingDir(const std::str
 __isset.staticWorkingDir = true;
 }
 
+void ComputationalResourceSchedulingModel::__set_overrideLoginUserName(const std::string& val) {
+  this->overrideLoginUserName = val;
+__isset.overrideLoginUserName = true;
+}
+
+void ComputationalResourceSchedulingModel::__set_overrideScratchLocation(const std::string& val) {
+  this->overrideScratchLocation = val;
+__isset.overrideScratchLocation = true;
+}
+
+void ComputationalResourceSchedulingModel::__set_overrideAllocationProjectNumber(const std::string& val) {
+  this->overrideAllocationProjectNumber = val;
+__isset.overrideAllocationProjectNumber = true;
+}
+
 uint32_t ComputationalResourceSchedulingModel::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -173,6 +188,30 @@ uint32_t ComputationalResourceSchedulingModel::read(::apache::thrift::protocol::
           xfer += iprot->skip(ftype);
         }
         break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->overrideLoginUserName);
+          this->__isset.overrideLoginUserName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 11:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->overrideScratchLocation);
+          this->__isset.overrideScratchLocation = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 12:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->overrideAllocationProjectNumber);
+          this->__isset.overrideAllocationProjectNumber = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -235,6 +274,21 @@ uint32_t ComputationalResourceSchedulingModel::write(::apache::thrift::protocol:
     xfer += oprot->writeString(this->staticWorkingDir);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.overrideLoginUserName) {
+    xfer += oprot->writeFieldBegin("overrideLoginUserName", ::apache::thrift::protocol::T_STRING, 10);
+    xfer += oprot->writeString(this->overrideLoginUserName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.overrideScratchLocation) {
+    xfer += oprot->writeFieldBegin("overrideScratchLocation", ::apache::thrift::protocol::T_STRING, 11);
+    xfer += oprot->writeString(this->overrideScratchLocation);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.overrideAllocationProjectNumber) {
+    xfer += oprot->writeFieldBegin("overrideAllocationProjectNumber", ::apache::thrift::protocol::T_STRING, 12);
+    xfer += oprot->writeString(this->overrideAllocationProjectNumber);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -251,6 +305,9 @@ void swap(ComputationalResourceSchedulingModel &a, ComputationalResourceScheduli
   swap(a.totalPhysicalMemory, b.totalPhysicalMemory);
   swap(a.chessisNumber, b.chessisNumber);
   swap(a.staticWorkingDir, b.staticWorkingDir);
+  swap(a.overrideLoginUserName, b.overrideLoginUserName);
+  swap(a.overrideScratchLocation, b.overrideScratchLocation);
+  swap(a.overrideAllocationProjectNumber, b.overrideAllocationProjectNumber);
   swap(a.__isset, b.__isset);
 }
 
@@ -264,6 +321,9 @@ ComputationalResourceSchedulingModel::ComputationalResourceSchedulingModel(const
   totalPhysicalMemory = other0.totalPhysicalMemory;
   chessisNumber = other0.chessisNumber;
   staticWorkingDir = other0.staticWorkingDir;
+  overrideLoginUserName = other0.overrideLoginUserName;
+  overrideScratchLocation = other0.overrideScratchLocation;
+  overrideAllocationProjectNumber = other0.overrideAllocationProjectNumber;
   __isset = other0.__isset;
 }
 ComputationalResourceSchedulingModel& ComputationalResourceSchedulingModel::operator=(const ComputationalResourceSchedulingModel& other1) {
@@ -276,6 +336,9 @@ ComputationalResourceSchedulingModel& ComputationalResourceSchedulingModel::oper
   totalPhysicalMemory = other1.totalPhysicalMemory;
   chessisNumber = other1.chessisNumber;
   staticWorkingDir = other1.staticWorkingDir;
+  overrideLoginUserName = other1.overrideLoginUserName;
+  overrideScratchLocation = other1.overrideScratchLocation;
+  overrideAllocationProjectNumber = other1.overrideAllocationProjectNumber;
   __isset = other1.__isset;
   return *this;
 }
@@ -291,6 +354,9 @@ void ComputationalResourceSchedulingModel::printTo(std::ostream& out) const {
   out << ", " << "totalPhysicalMemory="; (__isset.totalPhysicalMemory ? (out << to_string(totalPhysicalMemory)) : (out << "<null>"));
   out << ", " << "chessisNumber="; (__isset.chessisNumber ? (out << to_string(chessisNumber)) : (out << "<null>"));
   out << ", " << "staticWorkingDir="; (__isset.staticWorkingDir ? (out << to_string(staticWorkingDir)) : (out << "<null>"));
+  out << ", " << "overrideLoginUserName="; (__isset.overrideLoginUserName ? (out << to_string(overrideLoginUserName)) : (out << "<null>"));
+  out << ", " << "overrideScratchLocation="; (__isset.overrideScratchLocation ? (out << to_string(overrideScratchLocation)) : (out << "<null>"));
+  out << ", " << "overrideAllocationProjectNumber="; (__isset.overrideAllocationProjectNumber ? (out << to_string(overrideAllocationProjectNumber)) : (out << "<null>"));
   out << ")";
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.h
index 6aae71e..4c42e04 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/scheduling_model_types.h
@@ -39,7 +39,7 @@ namespace apache { namespace airavata { namespace model { namespace scheduling {
 class ComputationalResourceSchedulingModel;
 
 typedef struct _ComputationalResourceSchedulingModel__isset {
-  _ComputationalResourceSchedulingModel__isset() : resourceHostId(false), totalCPUCount(false), nodeCount(false), numberOfThreads(false), queueName(false), wallTimeLimit(false), totalPhysicalMemory(false), chessisNumber(false), staticWorkingDir(false) {}
+  _ComputationalResourceSchedulingModel__isset() : resourceHostId(false), totalCPUCount(false), nodeCount(false), numberOfThreads(false), queueName(false), wallTimeLimit(false), totalPhysicalMemory(false), chessisNumber(false), staticWorkingDir(false), overrideLoginUserName(false), overrideScratchLocation(false), overrideAllocationProjectNumber(false) {}
   bool resourceHostId :1;
   bool totalCPUCount :1;
   bool nodeCount :1;
@@ -49,6 +49,9 @@ typedef struct _ComputationalResourceSchedulingModel__isset {
   bool totalPhysicalMemory :1;
   bool chessisNumber :1;
   bool staticWorkingDir :1;
+  bool overrideLoginUserName :1;
+  bool overrideScratchLocation :1;
+  bool overrideAllocationProjectNumber :1;
 } _ComputationalResourceSchedulingModel__isset;
 
 class ComputationalResourceSchedulingModel {
@@ -56,7 +59,7 @@ class ComputationalResourceSchedulingModel {
 
   ComputationalResourceSchedulingModel(const ComputationalResourceSchedulingModel&);
   ComputationalResourceSchedulingModel& operator=(const ComputationalResourceSchedulingModel&);
-  ComputationalResourceSchedulingModel() : resourceHostId(), totalCPUCount(0), nodeCount(0), numberOfThreads(0), queueName(), wallTimeLimit(0), totalPhysicalMemory(0), chessisNumber(), staticWorkingDir() {
+  ComputationalResourceSchedulingModel() : resourceHostId(), totalCPUCount(0), nodeCount(0), numberOfThreads(0), queueName(), wallTimeLimit(0), totalPhysicalMemory(0), chessisNumber(), staticWorkingDir(), overrideLoginUserName(), overrideScratchLocation(), overrideAllocationProjectNumber() {
   }
 
   virtual ~ComputationalResourceSchedulingModel() throw();
@@ -69,6 +72,9 @@ class ComputationalResourceSchedulingModel {
   int32_t totalPhysicalMemory;
   std::string chessisNumber;
   std::string staticWorkingDir;
+  std::string overrideLoginUserName;
+  std::string overrideScratchLocation;
+  std::string overrideAllocationProjectNumber;
 
   _ComputationalResourceSchedulingModel__isset __isset;
 
@@ -90,6 +96,12 @@ class ComputationalResourceSchedulingModel {
 
   void __set_staticWorkingDir(const std::string& val);
 
+  void __set_overrideLoginUserName(const std::string& val);
+
+  void __set_overrideScratchLocation(const std::string& val);
+
+  void __set_overrideAllocationProjectNumber(const std::string& val);
+
   bool operator == (const ComputationalResourceSchedulingModel & rhs) const
   {
     if (__isset.resourceHostId != rhs.__isset.resourceHostId)
@@ -128,6 +140,18 @@ class ComputationalResourceSchedulingModel {
       return false;
     else if (__isset.staticWorkingDir && !(staticWorkingDir == rhs.staticWorkingDir))
       return false;
+    if (__isset.overrideLoginUserName != rhs.__isset.overrideLoginUserName)
+      return false;
+    else if (__isset.overrideLoginUserName && !(overrideLoginUserName == rhs.overrideLoginUserName))
+      return false;
+    if (__isset.overrideScratchLocation != rhs.__isset.overrideScratchLocation)
+      return false;
+    else if (__isset.overrideScratchLocation && !(overrideScratchLocation == rhs.overrideScratchLocation))
+      return false;
+    if (__isset.overrideAllocationProjectNumber != rhs.__isset.overrideAllocationProjectNumber)
+      return false;
+    else if (__isset.overrideAllocationProjectNumber && !(overrideAllocationProjectNumber == rhs.overrideAllocationProjectNumber))
+      return false;
     return true;
   }
   bool operator != (const ComputationalResourceSchedulingModel &rhs) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Scheduling/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Scheduling/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Scheduling/Types.php
index 44c1180..9eb8ebb 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Scheduling/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Scheduling/Types.php
@@ -61,6 +61,18 @@ class ComputationalResourceSchedulingModel {
    * @var string
    */
   public $staticWorkingDir = null;
+  /**
+   * @var string
+   */
+  public $overrideLoginUserName = null;
+  /**
+   * @var string
+   */
+  public $overrideScratchLocation = null;
+  /**
+   * @var string
+   */
+  public $overrideAllocationProjectNumber = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -101,6 +113,18 @@ class ComputationalResourceSchedulingModel {
           'var' => 'staticWorkingDir',
           'type' => TType::STRING,
           ),
+        10 => array(
+          'var' => 'overrideLoginUserName',
+          'type' => TType::STRING,
+          ),
+        11 => array(
+          'var' => 'overrideScratchLocation',
+          'type' => TType::STRING,
+          ),
+        12 => array(
+          'var' => 'overrideAllocationProjectNumber',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -131,6 +155,15 @@ class ComputationalResourceSchedulingModel {
       if (isset($vals['staticWorkingDir'])) {
         $this->staticWorkingDir = $vals['staticWorkingDir'];
       }
+      if (isset($vals['overrideLoginUserName'])) {
+        $this->overrideLoginUserName = $vals['overrideLoginUserName'];
+      }
+      if (isset($vals['overrideScratchLocation'])) {
+        $this->overrideScratchLocation = $vals['overrideScratchLocation'];
+      }
+      if (isset($vals['overrideAllocationProjectNumber'])) {
+        $this->overrideAllocationProjectNumber = $vals['overrideAllocationProjectNumber'];
+      }
     }
   }
 
@@ -216,6 +249,27 @@ class ComputationalResourceSchedulingModel {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 10:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->overrideLoginUserName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->overrideScratchLocation);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->overrideAllocationProjectNumber);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -274,6 +328,21 @@ class ComputationalResourceSchedulingModel {
       $xfer += $output->writeString($this->staticWorkingDir);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->overrideLoginUserName !== null) {
+      $xfer += $output->writeFieldBegin('overrideLoginUserName', TType::STRING, 10);
+      $xfer += $output->writeString($this->overrideLoginUserName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->overrideScratchLocation !== null) {
+      $xfer += $output->writeFieldBegin('overrideScratchLocation', TType::STRING, 11);
+      $xfer += $output->writeString($this->overrideScratchLocation);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->overrideAllocationProjectNumber !== null) {
+      $xfer += $output->writeFieldBegin('overrideAllocationProjectNumber', TType::STRING, 12);
+      $xfer += $output->writeString($this->overrideAllocationProjectNumber);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/scheduling/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/scheduling/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/scheduling/ttypes.py
index 8309de3..6fb231b 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/scheduling/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/scheduling/ttypes.py
@@ -33,6 +33,9 @@ class ComputationalResourceSchedulingModel:
    - totalPhysicalMemory
    - chessisNumber
    - staticWorkingDir
+   - overrideLoginUserName
+   - overrideScratchLocation
+   - overrideAllocationProjectNumber
   """
 
   thrift_spec = (
@@ -46,9 +49,12 @@ class ComputationalResourceSchedulingModel:
     (7, TType.I32, 'totalPhysicalMemory', None, None, ), # 7
     (8, TType.STRING, 'chessisNumber', None, None, ), # 8
     (9, TType.STRING, 'staticWorkingDir', None, None, ), # 9
+    (10, TType.STRING, 'overrideLoginUserName', None, None, ), # 10
+    (11, TType.STRING, 'overrideScratchLocation', None, None, ), # 11
+    (12, TType.STRING, 'overrideAllocationProjectNumber', None, None, ), # 12
   )
 
-  def __init__(self, resourceHostId=None, totalCPUCount=None, nodeCount=None, numberOfThreads=None, queueName=None, wallTimeLimit=None, totalPhysicalMemory=None, chessisNumber=None, staticWorkingDir=None,):
+  def __init__(self, resourceHostId=None, totalCPUCount=None, nodeCount=None, numberOfThreads=None, queueName=None, wallTimeLimit=None, totalPhysicalMemory=None, chessisNumber=None, staticWorkingDir=None, overrideLoginUserName=None, overrideScratchLocation=None, overrideAllocationProjectNumber=None,):
     self.resourceHostId = resourceHostId
     self.totalCPUCount = totalCPUCount
     self.nodeCount = nodeCount
@@ -58,6 +64,9 @@ class ComputationalResourceSchedulingModel:
     self.totalPhysicalMemory = totalPhysicalMemory
     self.chessisNumber = chessisNumber
     self.staticWorkingDir = staticWorkingDir
+    self.overrideLoginUserName = overrideLoginUserName
+    self.overrideScratchLocation = overrideScratchLocation
+    self.overrideAllocationProjectNumber = overrideAllocationProjectNumber
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -113,6 +122,21 @@ class ComputationalResourceSchedulingModel:
           self.staticWorkingDir = iprot.readString()
         else:
           iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.STRING:
+          self.overrideLoginUserName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 11:
+        if ftype == TType.STRING:
+          self.overrideScratchLocation = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.STRING:
+          self.overrideAllocationProjectNumber = iprot.readString()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -159,6 +183,18 @@ class ComputationalResourceSchedulingModel:
       oprot.writeFieldBegin('staticWorkingDir', TType.STRING, 9)
       oprot.writeString(self.staticWorkingDir)
       oprot.writeFieldEnd()
+    if self.overrideLoginUserName is not None:
+      oprot.writeFieldBegin('overrideLoginUserName', TType.STRING, 10)
+      oprot.writeString(self.overrideLoginUserName)
+      oprot.writeFieldEnd()
+    if self.overrideScratchLocation is not None:
+      oprot.writeFieldBegin('overrideScratchLocation', TType.STRING, 11)
+      oprot.writeString(self.overrideScratchLocation)
+      oprot.writeFieldEnd()
+    if self.overrideAllocationProjectNumber is not None:
+      oprot.writeFieldBegin('overrideAllocationProjectNumber', TType.STRING, 12)
+      oprot.writeString(self.overrideAllocationProjectNumber)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -177,6 +213,9 @@ class ComputationalResourceSchedulingModel:
     value = (value * 31) ^ hash(self.totalPhysicalMemory)
     value = (value * 31) ^ hash(self.chessisNumber)
     value = (value * 31) ^ hash(self.staticWorkingDir)
+    value = (value * 31) ^ hash(self.overrideLoginUserName)
+    value = (value * 31) ^ hash(self.overrideScratchLocation)
+    value = (value * 31) ^ hash(self.overrideAllocationProjectNumber)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
index 7a85d05..9478451 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ComponentStatus implements org.apache.thrift.TBase<ComponentStatus, ComponentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ComponentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComponentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
index 33221f8..045de67 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class EdgeModel implements org.apache.thrift.TBase<EdgeModel, EdgeModel._Fields>, java.io.Serializable, Cloneable, Comparable<EdgeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EdgeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
index 36910d8..be05c22 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class NodeModel implements org.apache.thrift.TBase<NodeModel, NodeModel._Fields>, java.io.Serializable, Cloneable, Comparable<NodeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NodeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
index 557f861..cb4ba65 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class PortModel implements org.apache.thrift.TBase<PortModel, PortModel._Fields>, java.io.Serializable, Cloneable, Comparable<PortModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PortModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
index 1868c5c..58b279e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class WorkflowModel implements org.apache.thrift.TBase<WorkflowModel, WorkflowModel._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
index cd2efe0..8832b1e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class WorkflowStatus implements org.apache.thrift.TBase<WorkflowStatus, WorkflowStatus._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index a2fbcef..421bec0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *  assigns to the environment variable "NAME" the value
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index e757c83..ba64fdc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  *    Descriprion of the Module
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
index a48fc03..7829673 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * commandOrder:
  *   Order of the command in the multiple command situation
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class CommandObject implements org.apache.thrift.TBase<CommandObject, CommandObject._Fields>, java.io.Serializable, Cloneable, Comparable<CommandObject> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommandObject");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index f0fc336..12da26f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -63,7 +63,7 @@ import org.slf4j.LoggerFactory;
  * envPathOrder:
  *   The order of the setting of the env variables when there are multiple env variables
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index 47a037c..63b40ed 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   Outputs generated from the application
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index b41e918..fc02ddd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * maxRunTime:
  *  Maximum allowed run time in hours.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index bea570d..d5c0223 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index 0c41f35..14e1eda 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -80,7 +80,7 @@ import org.slf4j.LoggerFactory;
  *  Map of file systems type and the path.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index 3000092..c327a13 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index 564997f..c42e3f8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index 4f1cfc5..fa9efed 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index a14d5cc..6ae8a78 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  *  An enumeration of commonly used manager commands.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index 2a417f9..832ae0b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  *    the same. Example: *@*.example.com or *@example.com
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
index e262222..85f19c9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -59,7 +59,7 @@ import org.slf4j.LoggerFactory;
  * authenticationMode
  *  The authenticationMode defines the way certificate is fetched.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index d16cd3e..707d67b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -85,7 +85,7 @@ import org.slf4j.LoggerFactory;
  *   default credential store.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ComputeResourcePreference implements org.apache.thrift.TBase<ComputeResourcePreference, ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourcePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourcePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index fa3b782..52e8bcd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *  List of resource preferences for each of the registered compute resources.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayResourceProfile, GatewayResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayResourceProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
index e6a800a..0f40677 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class StoragePreference implements org.apache.thrift.TBase<StoragePreference, StoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<StoragePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StoragePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
index 35ac8b8..1c6bb51 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class StorageResourceDescription implements org.apache.thrift.TBase<StorageResourceDescription, StorageResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<StorageResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StorageResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index dde272f..ceb5101 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index 3e2308e..abd2017 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataObjectType, OutputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<OutputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OutputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
index a674147..a6399b2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ErrorModel implements org.apache.thrift.TBase<ErrorModel, ErrorModel._Fields>, java.io.Serializable, Cloneable, Comparable<ErrorModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ErrorModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
index 38be5b1..5537399 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
index c18a045..7e8cf53 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * during the experiment launch operation
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
index 4e45246..196fc0b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class DataMovementInterface implements org.apache.thrift.TBase<DataMovementInterface, DataMovementInterface._Fields>, java.io.Serializable, Cloneable, Comparable<DataMovementInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataMovementInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
index 9d0a53b..eb87de9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
index fafa7e1..7ec5ae2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-defualt port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class LOCALDataMovement implements org.apache.thrift.TBase<LOCALDataMovement, LOCALDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
index d8af655..32d671d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
index 90d8a93..e5138b3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * unicoreEndPointURL:
  *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
index 9207a93..4e5ccbe 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class DataProductModel implements org.apache.thrift.TBase<DataProductModel, DataProductModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataProductModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataProductModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
index b4fbff0..29f51aa 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataReplicaLocationModel, DataReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataReplicaLocationModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataReplicaLocationModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
index 2e8b6d8..50cc83e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  * parameter:  If the error applied to a particular input parameter, this will
  *   indicate which parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class AiravataClientException extends TException implements org.apache.thrift.TBase<AiravataClientException, AiravataClientException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataClientException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataClientException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
index 13f9940..b167aec 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  * message:  This may contain additional information about the error
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class AiravataSystemException extends TException implements org.apache.thrift.TBase<AiravataSystemException, AiravataSystemException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataSystemException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataSystemException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
index 704933a..659d1ec 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the cause of the authorization failure.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class AuthenticationException extends TException implements org.apache.thrift.TBase<AuthenticationException, AuthenticationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthenticationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthenticationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
index feb87f8..b372bc3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the authorization failure message
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class AuthorizationException extends TException implements org.apache.thrift.TBase<AuthorizationException, AuthorizationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthorizationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthorizationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
index e98b8a9..87148b7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * 
  * key:  The value passed from the client in the identifier, which was not found.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ExperimentNotFoundException extends TException implements org.apache.thrift.TBase<ExperimentNotFoundException, ExperimentNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
index f9549e8..19268c0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the associated error message.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class InvalidRequestException extends TException implements org.apache.thrift.TBase<InvalidRequestException, InvalidRequestException._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidRequestException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidRequestException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
index f5547db..db3688f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class LaunchValidationException extends TException implements org.apache.thrift.TBase<LaunchValidationException, LaunchValidationException._Fields>, java.io.Serializable, Cloneable, Comparable<LaunchValidationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LaunchValidationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
index f2d106a..9a04347 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 2:  optional  string key
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class ProjectNotFoundException extends TException implements org.apache.thrift.TBase<ProjectNotFoundException, ProjectNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/27e93a0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
index 7f7c87a..c8a9b10 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
@@ -54,7 +54,7 @@ import org.slf4j.LoggerFactory;
 /**
  * This exception is thrown when RPC timeout gets exceeded.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-25")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
 public class TimedOutException extends TException implements org.apache.thrift.TBase<TimedOutException, TimedOutException._Fields>, java.io.Serializable, Cloneable, Comparable<TimedOutException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TimedOutException");
 


[24/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php
index 6903330..cb7b721 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php
@@ -650,4 +650,194 @@ class Gateway {
 
 }
 
+class Notification {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $notificationId = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $title = null;
+  /**
+   * @var string
+   */
+  public $notifcationMessage = null;
+  /**
+   * @var int
+   */
+  public $publishedtime = null;
+  /**
+   * @var int
+   */
+  public $expirationTime = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'notificationId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'title',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'notifcationMessage',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'publishedtime',
+          'type' => TType::I64,
+          ),
+        6 => array(
+          'var' => 'expirationTime',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['notificationId'])) {
+        $this->notificationId = $vals['notificationId'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['title'])) {
+        $this->title = $vals['title'];
+      }
+      if (isset($vals['notifcationMessage'])) {
+        $this->notifcationMessage = $vals['notifcationMessage'];
+      }
+      if (isset($vals['publishedtime'])) {
+        $this->publishedtime = $vals['publishedtime'];
+      }
+      if (isset($vals['expirationTime'])) {
+        $this->expirationTime = $vals['expirationTime'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Notification';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->notificationId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->title);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->notifcationMessage);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->publishedtime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->expirationTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Notification');
+    if ($this->notificationId !== null) {
+      $xfer += $output->writeFieldBegin('notificationId', TType::STRING, 1);
+      $xfer += $output->writeString($this->notificationId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->title !== null) {
+      $xfer += $output->writeFieldBegin('title', TType::STRING, 3);
+      $xfer += $output->writeString($this->title);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->notifcationMessage !== null) {
+      $xfer += $output->writeFieldBegin('notifcationMessage', TType::STRING, 4);
+      $xfer += $output->writeString($this->notifcationMessage);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->publishedtime !== null) {
+      $xfer += $output->writeFieldBegin('publishedtime', TType::I64, 5);
+      $xfer += $output->writeI64($this->publishedtime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->expirationTime !== null) {
+      $xfer += $output->writeFieldBegin('expirationTime', TType::I64, 6);
+      $xfer += $output->writeI64($this->expirationTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
index 67910c4..27a7799 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
@@ -32,6 +32,11 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('  bool deleteGateway(AuthzToken authzToken, string gatewayId)')
   print('   getAllGateways(AuthzToken authzToken)')
   print('  bool isGatewayExist(AuthzToken authzToken, string gatewayId)')
+  print('  string createNotification(AuthzToken authzToken, Notification notification)')
+  print('  void updateNotification(AuthzToken authzToken, Notification notification)')
+  print('  void deleteNotification(AuthzToken authzToken, string gatewayId, string notificationId)')
+  print('  Notification getNotification(AuthzToken authzToken, string gatewayId, string notificationId)')
+  print('   getAllNotifications(AuthzToken authzToken, string gatewayId)')
   print('  string generateAndRegisterSSHKeys(AuthzToken authzToken, string gatewayId, string userName)')
   print('  string getSSHPubKey(AuthzToken authzToken, string airavataCredStoreToken, string gatewayId)')
   print('   getAllUserSSHPubKeys(AuthzToken authzToken, string userName)')
@@ -267,6 +272,36 @@ elif cmd == 'isGatewayExist':
     sys.exit(1)
   pp.pprint(client.isGatewayExist(eval(args[0]),args[1],))
 
+elif cmd == 'createNotification':
+  if len(args) != 2:
+    print('createNotification requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.createNotification(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'updateNotification':
+  if len(args) != 2:
+    print('updateNotification requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.updateNotification(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'deleteNotification':
+  if len(args) != 3:
+    print('deleteNotification requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.deleteNotification(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getNotification':
+  if len(args) != 3:
+    print('getNotification requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.getNotification(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllNotifications':
+  if len(args) != 2:
+    print('getAllNotifications requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.getAllNotifications(eval(args[0]),args[1],))
+
 elif cmd == 'generateAndRegisterSSHKeys':
   if len(args) != 3:
     print('generateAndRegisterSSHKeys requires 3 args')


[09/35] airavata git commit: temporary revert of scratch location

Posted by sh...@apache.org.
temporary revert of scratch location


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

Branch: refs/heads/master
Commit: 2536b339a88be99022171a3378ea2faafc48f3ee
Parents: f5e0f22
Author: Suresh Marru <sm...@apache.org>
Authored: Fri Apr 1 17:55:14 2016 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Fri Apr 1 17:55:14 2016 -0400

----------------------------------------------------------------------
 .../main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/2536b339/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
index c588f76..fbd8095 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
@@ -111,7 +111,9 @@ public class GFacEngineImpl implements GFacEngine {
             processContext.setGatewayResourceProfile(gatewayProfile);
             ComputeResourcePreference computeResourcePreference = appCatalog.getGatewayProfile().getComputeResourcePreference
                     (gatewayId, processModel.getComputeResourceId());
-            String scratchLocation = Factory.getScratchLocation(processContext);
+            //FIXME: Temporary revert, this needs a proper fix.
+//            String scratchLocation = Factory.getScratchLocation(processContext);
+            String scratchLocation = computeResourcePreference.getScratchLocation();
             scratchLocation = scratchLocation + File.separator + processId + File.separator;
             processContext.setComputeResourcePreference(computeResourcePreference);
             StoragePreference storagePreference = appCatalog.getGatewayProfile().getStoragePreference(gatewayId, processModel.getStorageResourceId());


[29/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
adding backend functionality for notifications


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

Branch: refs/heads/master
Commit: 47290ad1545187e0ab6b970575896d2ff76fb2cd
Parents: 4a1e79f
Author: scnakandala <su...@gmail.com>
Authored: Fri Apr 22 15:14:11 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Fri Apr 22 15:14:12 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |    87 +
 .../handler/AiravataServerHandlerTest.java      |    22 +
 .../java/org/apache/airavata/api/Airavata.java  | 15220 ++++++++++++-----
 .../main/resources/lib/airavata/Airavata.cpp    |  5355 ++++--
 .../src/main/resources/lib/airavata/Airavata.h  |  1172 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    32 +
 .../lib/airavata/workspace_model_types.cpp      |   201 +
 .../lib/airavata/workspace_model_types.h        |    81 +
 .../resources/lib/Airavata/API/Airavata.php     |  3062 +++-
 .../lib/Airavata/Model/Workspace/Types.php      |   190 +
 .../lib/apache/airavata/api/Airavata-remote     |    35 +
 .../lib/apache/airavata/api/Airavata.py         |  2754 ++-
 .../apache/airavata/model/workspace/ttypes.py   |   136 +
 .../apache/airavata/model/ComponentStatus.java  |     2 +-
 .../org/apache/airavata/model/EdgeModel.java    |     2 +-
 .../org/apache/airavata/model/NodeModel.java    |     2 +-
 .../org/apache/airavata/model/PortModel.java    |     2 +-
 .../apache/airavata/model/WorkflowModel.java    |     2 +-
 .../apache/airavata/model/WorkflowStatus.java   |     2 +-
 .../ApplicationDeploymentDescription.java       |     2 +-
 .../appdeployment/ApplicationModule.java        |     2 +-
 .../appcatalog/appdeployment/CommandObject.java |     2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |     2 +-
 .../ApplicationInterfaceDescription.java        |     2 +-
 .../appcatalog/computeresource/BatchQueue.java  |     2 +-
 .../computeresource/CloudJobSubmission.java     |     2 +-
 .../ComputeResourceDescription.java             |     2 +-
 .../computeresource/GlobusJobSubmission.java    |     2 +-
 .../computeresource/JobSubmissionInterface.java |     2 +-
 .../computeresource/LOCALSubmission.java        |     2 +-
 .../computeresource/ResourceJobManager.java     |     2 +-
 .../computeresource/SSHJobSubmission.java       |     2 +-
 .../computeresource/UnicoreJobSubmission.java   |     2 +-
 .../ComputeResourcePreference.java              |     2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |     2 +-
 .../gatewayprofile/StoragePreference.java       |     2 +-
 .../StorageResourceDescription.java             |     2 +-
 .../application/io/InputDataObjectType.java     |     2 +-
 .../application/io/OutputDataObjectType.java    |     2 +-
 .../airavata/model/commons/ErrorModel.java      |     2 +-
 .../model/commons/ValidationResults.java        |     2 +-
 .../airavata/model/commons/ValidatorResult.java |     2 +-
 .../data/movement/DataMovementInterface.java    |     2 +-
 .../data/movement/GridFTPDataMovement.java      |     2 +-
 .../model/data/movement/LOCALDataMovement.java  |     2 +-
 .../model/data/movement/SCPDataMovement.java    |     2 +-
 .../data/movement/UnicoreDataMovement.java      |     2 +-
 .../model/data/replica/DataProductModel.java    |     2 +-
 .../data/replica/DataReplicaLocationModel.java  |     2 +-
 .../model/error/AiravataClientException.java    |     2 +-
 .../model/error/AiravataSystemException.java    |     2 +-
 .../model/error/AuthenticationException.java    |     2 +-
 .../model/error/AuthorizationException.java     |     2 +-
 .../error/ExperimentNotFoundException.java      |     2 +-
 .../model/error/InvalidRequestException.java    |     2 +-
 .../model/error/LaunchValidationException.java  |     2 +-
 .../model/error/ProjectNotFoundException.java   |     2 +-
 .../airavata/model/error/TimedOutException.java |     2 +-
 .../airavata/model/error/ValidationResults.java |     2 +-
 .../airavata/model/error/ValidatorResult.java   |     2 +-
 .../model/experiment/ExperimentModel.java       |     2 +-
 .../model/experiment/ExperimentStatistics.java  |     2 +-
 .../experiment/ExperimentSummaryModel.java      |     2 +-
 .../experiment/UserConfigurationDataModel.java  |     2 +-
 .../org/apache/airavata/model/job/JobModel.java |     2 +-
 .../event/ExperimentStatusChangeEvent.java      |     2 +-
 .../model/messaging/event/JobIdentifier.java    |     2 +-
 .../messaging/event/JobStatusChangeEvent.java   |     2 +-
 .../event/JobStatusChangeRequestEvent.java      |     2 +-
 .../airavata/model/messaging/event/Message.java |     2 +-
 .../messaging/event/ProcessIdentifier.java      |     2 +-
 .../event/ProcessStatusChangeEvent.java         |     2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |     2 +-
 .../messaging/event/ProcessSubmitEvent.java     |     2 +-
 .../messaging/event/ProcessTerminateEvent.java  |     2 +-
 .../model/messaging/event/TaskIdentifier.java   |     2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |     2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |     2 +-
 .../event/TaskStatusChangeRequestEvent.java     |     2 +-
 .../airavata/model/process/ProcessModel.java    |     2 +-
 .../ComputationalResourceSchedulingModel.java   |     2 +-
 .../airavata/model/security/AuthzToken.java     |     2 +-
 .../airavata/model/status/ExperimentStatus.java |     2 +-
 .../apache/airavata/model/status/JobStatus.java |     2 +-
 .../airavata/model/status/ProcessStatus.java    |     2 +-
 .../airavata/model/status/TaskStatus.java       |     2 +-
 .../model/task/DataStagingTaskModel.java        |     2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |     2 +-
 .../model/task/JobSubmissionTaskModel.java      |     2 +-
 .../airavata/model/task/MonitorTaskModel.java   |     2 +-
 .../apache/airavata/model/task/TaskModel.java   |     2 +-
 .../airavata/model/workspace/Gateway.java       |     2 +-
 .../apache/airavata/model/workspace/Group.java  |     2 +-
 .../airavata/model/workspace/Project.java       |     2 +-
 .../apache/airavata/model/workspace/User.java   |     2 +-
 .../core/experiment/catalog/ResourceType.java   |     1 +
 .../catalog/impl/ExperimentCatalogImpl.java     |    17 +
 .../catalog/impl/NotificationRegistry.java      |    87 +
 .../core/experiment/catalog/impl/UserReg.java   |    41 -
 .../experiment/catalog/impl/UserRegistry.java   |    41 +
 .../experiment/catalog/model/Notification.java  |    98 +
 .../resources/AbstractExpCatResource.java       |     7 +
 .../catalog/resources/NotificationResource.java |   267 +
 .../experiment/catalog/resources/Utils.java     |    21 +
 .../utils/ThriftDataModelConversion.java        |    17 +
 .../src/main/resources/META-INF/persistence.xml |     1 +
 .../src/main/resources/expcatalog-derby.sql     |    11 +
 .../src/main/resources/expcatalog-mysql.sql     |    11 +
 .../registry/cpi/ExpCatParentDataType.java      |     3 +-
 .../cpi/ExperimentCatalogModelType.java         |     1 +
 .../airavata-apis/airavata_api.thrift           |    33 +
 .../workspace_model.thrift                      |     9 +
 112 files changed, 22218 insertions(+), 6959 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index a176573..cfcd5d1 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -64,6 +64,7 @@ import org.apache.airavata.model.status.ExperimentStatus;
 import org.apache.airavata.model.status.JobStatus;
 import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.model.workspace.Gateway;
+import org.apache.airavata.model.workspace.Notification;
 import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.orchestrator.client.OrchestratorClientFactory;
 import org.apache.airavata.orchestrator.cpi.OrchestratorService;
@@ -279,6 +280,92 @@ public class AiravataServerHandler implements Airavata.Iface {
         }
     }
 
+    /**
+     * * API methods to retrieve notifications
+     * *
+     *
+     * @param authzToken
+     * @param notification
+     */
+    @Override
+    public String createNotification(AuthzToken authzToken, Notification notification) throws InvalidRequestException,
+            AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            experimentCatalog = RegistryFactory.getExperimentCatalog(notification.getGatewayId());
+            return (String) experimentCatalog.add(ExpCatParentDataType.NOTIFICATION, notification, notification.getGatewayId());
+        } catch (RegistryException e) {
+            logger.error("Error while creating notification", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while creating notification. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public void updateNotification(AuthzToken authzToken, Notification notification) throws InvalidRequestException,
+            AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            experimentCatalog = RegistryFactory.getExperimentCatalog(notification.getGatewayId());
+            experimentCatalog.update(ExperimentCatalogModelType.NOTIFICATION, notification, notification.getGatewayId());
+        } catch (RegistryException e) {
+            logger.error("Error while updating notification", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while getting gateway. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public void deleteNotification(AuthzToken authzToken, String gatewayId, String notificationId) throws InvalidRequestException,
+            AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            experimentCatalog = RegistryFactory.getExperimentCatalog(gatewayId);
+            experimentCatalog.remove(ExperimentCatalogModelType.NOTIFICATION, notificationId);
+        } catch (RegistryException e) {
+            logger.error("Error while deleting notification", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while deleting notification. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public Notification getNotification(AuthzToken authzToken, String gatewayId, String notificationId) throws InvalidRequestException,
+            AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            experimentCatalog = RegistryFactory.getExperimentCatalog(gatewayId);
+            return (Notification)experimentCatalog.get(ExperimentCatalogModelType.NOTIFICATION, notificationId);
+        } catch (RegistryException e) {
+            logger.error("Error while retrieving notification", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while retreiving notification. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public List<Notification> getAllNotifications(AuthzToken authzToken, String gatewayId) throws InvalidRequestException,
+            AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            experimentCatalog = RegistryFactory.getExperimentCatalog(gatewayId);
+            List<Object> objectList = experimentCatalog.get(ExperimentCatalogModelType.NOTIFICATION, null, gatewayId);
+            List<Notification> notifications = new ArrayList<>();
+            for(Object o : objectList)
+                notifications.add((Notification) o);
+            return notifications;
+        } catch (RegistryException e) {
+            logger.error("Error while getting all notifications", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while getting all notifications. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
     /*Following method wraps the logic of isGatewayExist method and this is to be called by any other method of the API as needed.*/
     private boolean isGatewayExistInternal(String gatewayId) throws InvalidRequestException, AiravataClientException,
             AiravataSystemException, AuthorizationException, TException{

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java b/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java
index 453d17d..081d15c 100644
--- a/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java
+++ b/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java
@@ -35,7 +35,9 @@ import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel
 import org.apache.airavata.model.security.AuthzToken;
 import org.apache.airavata.model.status.ExperimentState;
 import org.apache.airavata.model.workspace.Gateway;
+import org.apache.airavata.model.workspace.Notification;
 import org.apache.airavata.model.workspace.Project;
+import org.apache.thrift.TException;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -308,4 +310,24 @@ public class AiravataServerHandlerTest {
             Assert.fail();
         }
     }
+
+    @Test
+    public void testNotifications(){
+        try {
+            AuthzToken authzToken = new AuthzToken();
+            authzToken.setAccessToken("");
+            Notification notification = new Notification();
+            notification.setTitle("3424234");
+            notification.setGatewayId("test");
+            notification.setNotifcationMessage("sdkjfbjks kjbsdf kjsdbfkjsdbf");
+            String notificationId = airavataServerHandler.createNotification(authzToken, notification);
+            Assert.assertNotNull(notificationId);
+            List<Notification> notifications = airavataServerHandler.getAllNotifications(authzToken, "test");
+            Assert.assertTrue(notifications.size() > 0);
+            Assert.assertNotNull(airavataServerHandler.getNotification(authzToken,"test",notificationId));
+        } catch (TException e) {
+            e.printStackTrace();
+            Assert.fail();
+        }
+    }
 }
\ No newline at end of file


[18/35] airavata git commit: Merge branch 'develop' of github.com:vaglomangirish/airavata into develop

Posted by sh...@apache.org.
Merge branch 'develop' of github.com:vaglomangirish/airavata into develop


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

Branch: refs/heads/master
Commit: 4a1e79f46f55f10d60b904b2a1db4f1f3e053898
Parents: 8b9f5c8 e1b2005
Author: Mangirish Wagle <va...@gmail.com>
Authored: Sat Apr 16 00:29:48 2016 -0400
Committer: Mangirish Wagle <va...@gmail.com>
Committed: Sat Apr 16 00:29:48 2016 -0400

----------------------------------------------------------------------
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[23/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index bcebcdd..d3b3fd7 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -154,6 +154,51 @@ class Iface:
     """
     pass
 
+  def createNotification(self, authzToken, notification):
+    """
+      * API methods to retrieve notifications
+    *
+
+    Parameters:
+     - authzToken
+     - notification
+    """
+    pass
+
+  def updateNotification(self, authzToken, notification):
+    """
+    Parameters:
+     - authzToken
+     - notification
+    """
+    pass
+
+  def deleteNotification(self, authzToken, gatewayId, notificationId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - notificationId
+    """
+    pass
+
+  def getNotification(self, authzToken, gatewayId, notificationId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - notificationId
+    """
+    pass
+
+  def getAllNotifications(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    pass
+
   def generateAndRegisterSSHKeys(self, authzToken, gatewayId, userName):
     """
     Generate and Register SSH Key Pair with Airavata Credential Store.
@@ -3365,6 +3410,214 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "isGatewayExist failed: unknown result")
 
+  def createNotification(self, authzToken, notification):
+    """
+      * API methods to retrieve notifications
+    *
+
+    Parameters:
+     - authzToken
+     - notification
+    """
+    self.send_createNotification(authzToken, notification)
+    return self.recv_createNotification()
+
+  def send_createNotification(self, authzToken, notification):
+    self._oprot.writeMessageBegin('createNotification', TMessageType.CALL, self._seqid)
+    args = createNotification_args()
+    args.authzToken = authzToken
+    args.notification = notification
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_createNotification(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = createNotification_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "createNotification failed: unknown result")
+
+  def updateNotification(self, authzToken, notification):
+    """
+    Parameters:
+     - authzToken
+     - notification
+    """
+    self.send_updateNotification(authzToken, notification)
+    self.recv_updateNotification()
+
+  def send_updateNotification(self, authzToken, notification):
+    self._oprot.writeMessageBegin('updateNotification', TMessageType.CALL, self._seqid)
+    args = updateNotification_args()
+    args.authzToken = authzToken
+    args.notification = notification
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateNotification(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateNotification_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def deleteNotification(self, authzToken, gatewayId, notificationId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - notificationId
+    """
+    self.send_deleteNotification(authzToken, gatewayId, notificationId)
+    self.recv_deleteNotification()
+
+  def send_deleteNotification(self, authzToken, gatewayId, notificationId):
+    self._oprot.writeMessageBegin('deleteNotification', TMessageType.CALL, self._seqid)
+    args = deleteNotification_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.notificationId = notificationId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_deleteNotification(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = deleteNotification_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def getNotification(self, authzToken, gatewayId, notificationId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - notificationId
+    """
+    self.send_getNotification(authzToken, gatewayId, notificationId)
+    return self.recv_getNotification()
+
+  def send_getNotification(self, authzToken, gatewayId, notificationId):
+    self._oprot.writeMessageBegin('getNotification', TMessageType.CALL, self._seqid)
+    args = getNotification_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.notificationId = notificationId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getNotification(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getNotification_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getNotification failed: unknown result")
+
+  def getAllNotifications(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+    """
+    self.send_getAllNotifications(authzToken, gatewayId)
+    return self.recv_getAllNotifications()
+
+  def send_getAllNotifications(self, authzToken, gatewayId):
+    self._oprot.writeMessageBegin('getAllNotifications', TMessageType.CALL, self._seqid)
+    args = getAllNotifications_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAllNotifications(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAllNotifications_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllNotifications failed: unknown result")
+
   def generateAndRegisterSSHKeys(self, authzToken, gatewayId, userName):
     """
     Generate and Register SSH Key Pair with Airavata Credential Store.
@@ -10615,6 +10868,11 @@ class Processor(Iface, TProcessor):
     self._processMap["deleteGateway"] = Processor.process_deleteGateway
     self._processMap["getAllGateways"] = Processor.process_getAllGateways
     self._processMap["isGatewayExist"] = Processor.process_isGatewayExist
+    self._processMap["createNotification"] = Processor.process_createNotification
+    self._processMap["updateNotification"] = Processor.process_updateNotification
+    self._processMap["deleteNotification"] = Processor.process_deleteNotification
+    self._processMap["getNotification"] = Processor.process_getNotification
+    self._processMap["getAllNotifications"] = Processor.process_getAllNotifications
     self._processMap["generateAndRegisterSSHKeys"] = Processor.process_generateAndRegisterSSHKeys
     self._processMap["getSSHPubKey"] = Processor.process_getSSHPubKey
     self._processMap["getAllUserSSHPubKeys"] = Processor.process_getAllUserSSHPubKeys
@@ -11010,13 +11268,13 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_generateAndRegisterSSHKeys(self, seqid, iprot, oprot):
-    args = generateAndRegisterSSHKeys_args()
+  def process_createNotification(self, seqid, iprot, oprot):
+    args = createNotification_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = generateAndRegisterSSHKeys_result()
+    result = createNotification_result()
     try:
-      result.success = self._handler.generateAndRegisterSSHKeys(args.authzToken, args.gatewayId, args.userName)
+      result.success = self._handler.createNotification(args.authzToken, args.notification)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -11029,22 +11287,25 @@ class Processor(Iface, TProcessor):
     except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
       msg_type = TMessageType.REPLY
       result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
     except Exception as ex:
       msg_type = TMessageType.EXCEPTION
       logging.exception(ex)
       result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("generateAndRegisterSSHKeys", msg_type, seqid)
+    oprot.writeMessageBegin("createNotification", msg_type, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_getSSHPubKey(self, seqid, iprot, oprot):
-    args = getSSHPubKey_args()
+  def process_updateNotification(self, seqid, iprot, oprot):
+    args = updateNotification_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = getSSHPubKey_result()
+    result = updateNotification_result()
     try:
-      result.success = self._handler.getSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId)
+      self._handler.updateNotification(args.authzToken, args.notification)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -11057,22 +11318,25 @@ class Processor(Iface, TProcessor):
     except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
       msg_type = TMessageType.REPLY
       result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
     except Exception as ex:
       msg_type = TMessageType.EXCEPTION
       logging.exception(ex)
       result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("getSSHPubKey", msg_type, seqid)
+    oprot.writeMessageBegin("updateNotification", msg_type, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_getAllUserSSHPubKeys(self, seqid, iprot, oprot):
-    args = getAllUserSSHPubKeys_args()
+  def process_deleteNotification(self, seqid, iprot, oprot):
+    args = deleteNotification_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = getAllUserSSHPubKeys_result()
+    result = deleteNotification_result()
     try:
-      result.success = self._handler.getAllUserSSHPubKeys(args.authzToken, args.userName)
+      self._handler.deleteNotification(args.authzToken, args.gatewayId, args.notificationId)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -11085,22 +11349,25 @@ class Processor(Iface, TProcessor):
     except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
       msg_type = TMessageType.REPLY
       result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
     except Exception as ex:
       msg_type = TMessageType.EXCEPTION
       logging.exception(ex)
       result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("getAllUserSSHPubKeys", msg_type, seqid)
+    oprot.writeMessageBegin("deleteNotification", msg_type, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_getAllGatewaySSHPubKeys(self, seqid, iprot, oprot):
-    args = getAllGatewaySSHPubKeys_args()
+  def process_getNotification(self, seqid, iprot, oprot):
+    args = getNotification_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = getAllGatewaySSHPubKeys_result()
+    result = getNotification_result()
     try:
-      result.success = self._handler.getAllGatewaySSHPubKeys(args.authzToken, args.gatewayId)
+      result.success = self._handler.getNotification(args.authzToken, args.gatewayId, args.notificationId)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -11113,22 +11380,25 @@ class Processor(Iface, TProcessor):
     except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
       msg_type = TMessageType.REPLY
       result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
     except Exception as ex:
       msg_type = TMessageType.EXCEPTION
       logging.exception(ex)
       result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("getAllGatewaySSHPubKeys", msg_type, seqid)
+    oprot.writeMessageBegin("getNotification", msg_type, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_deleteSSHPubKey(self, seqid, iprot, oprot):
-    args = deleteSSHPubKey_args()
+  def process_getAllNotifications(self, seqid, iprot, oprot):
+    args = getAllNotifications_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = deleteSSHPubKey_result()
+    result = getAllNotifications_result()
     try:
-      result.success = self._handler.deleteSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId)
+      result.success = self._handler.getAllNotifications(args.authzToken, args.gatewayId)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -11141,22 +11411,25 @@ class Processor(Iface, TProcessor):
     except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
       msg_type = TMessageType.REPLY
       result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
     except Exception as ex:
       msg_type = TMessageType.EXCEPTION
       logging.exception(ex)
       result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("deleteSSHPubKey", msg_type, seqid)
+    oprot.writeMessageBegin("getAllNotifications", msg_type, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_createProject(self, seqid, iprot, oprot):
-    args = createProject_args()
+  def process_generateAndRegisterSSHKeys(self, seqid, iprot, oprot):
+    args = generateAndRegisterSSHKeys_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = createProject_result()
+    result = generateAndRegisterSSHKeys_result()
     try:
-      result.success = self._handler.createProject(args.authzToken, args.gatewayId, args.project)
+      result.success = self._handler.generateAndRegisterSSHKeys(args.authzToken, args.gatewayId, args.userName)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -11169,25 +11442,50 @@ class Processor(Iface, TProcessor):
     except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
       msg_type = TMessageType.REPLY
       result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("generateAndRegisterSSHKeys", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getSSHPubKey(self, seqid, iprot, oprot):
+    args = getSSHPubKey_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getSSHPubKey_result()
+    try:
+      result.success = self._handler.getSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId)
       msg_type = TMessageType.REPLY
-      result.ae = ae
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
     except Exception as ex:
       msg_type = TMessageType.EXCEPTION
       logging.exception(ex)
       result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("createProject", msg_type, seqid)
+    oprot.writeMessageBegin("getSSHPubKey", msg_type, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_updateProject(self, seqid, iprot, oprot):
-    args = updateProject_args()
+  def process_getAllUserSSHPubKeys(self, seqid, iprot, oprot):
+    args = getAllUserSSHPubKeys_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = updateProject_result()
+    result = getAllUserSSHPubKeys_result()
     try:
-      self._handler.updateProject(args.authzToken, args.projectId, args.updatedProject)
+      result.success = self._handler.getAllUserSSHPubKeys(args.authzToken, args.userName)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -11200,28 +11498,50 @@ class Processor(Iface, TProcessor):
     except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
       msg_type = TMessageType.REPLY
       result.ase = ase
-    except apache.airavata.api.error.ttypes.ProjectNotFoundException as pnfe:
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("getAllUserSSHPubKeys", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getAllGatewaySSHPubKeys(self, seqid, iprot, oprot):
+    args = getAllGatewaySSHPubKeys_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getAllGatewaySSHPubKeys_result()
+    try:
+      result.success = self._handler.getAllGatewaySSHPubKeys(args.authzToken, args.gatewayId)
       msg_type = TMessageType.REPLY
-      result.pnfe = pnfe
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
       msg_type = TMessageType.REPLY
-      result.ae = ae
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
     except Exception as ex:
       msg_type = TMessageType.EXCEPTION
       logging.exception(ex)
       result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("updateProject", msg_type, seqid)
+    oprot.writeMessageBegin("getAllGatewaySSHPubKeys", msg_type, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_getProject(self, seqid, iprot, oprot):
-    args = getProject_args()
+  def process_deleteSSHPubKey(self, seqid, iprot, oprot):
+    args = deleteSSHPubKey_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = getProject_result()
+    result = deleteSSHPubKey_result()
     try:
-      result.success = self._handler.getProject(args.authzToken, args.projectId)
+      result.success = self._handler.deleteSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -11234,9 +11554,34 @@ class Processor(Iface, TProcessor):
     except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
       msg_type = TMessageType.REPLY
       result.ase = ase
-    except apache.airavata.api.error.ttypes.ProjectNotFoundException as pnfe:
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("deleteSSHPubKey", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_createProject(self, seqid, iprot, oprot):
+    args = createProject_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = createProject_result()
+    try:
+      result.success = self._handler.createProject(args.authzToken, args.gatewayId, args.project)
       msg_type = TMessageType.REPLY
-      result.pnfe = pnfe
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
     except apache.airavata.api.error.ttypes.AuthorizationException as ae:
       msg_type = TMessageType.REPLY
       result.ae = ae
@@ -11244,18 +11589,86 @@ class Processor(Iface, TProcessor):
       msg_type = TMessageType.EXCEPTION
       logging.exception(ex)
       result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("getProject", msg_type, seqid)
+    oprot.writeMessageBegin("createProject", msg_type, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
-  def process_deleteProject(self, seqid, iprot, oprot):
-    args = deleteProject_args()
+  def process_updateProject(self, seqid, iprot, oprot):
+    args = updateProject_args()
     args.read(iprot)
     iprot.readMessageEnd()
-    result = deleteProject_result()
+    result = updateProject_result()
     try:
-      result.success = self._handler.deleteProject(args.authzToken, args.projectId)
+      self._handler.updateProject(args.authzToken, args.projectId, args.updatedProject)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.ProjectNotFoundException as pnfe:
+      msg_type = TMessageType.REPLY
+      result.pnfe = pnfe
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("updateProject", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getProject(self, seqid, iprot, oprot):
+    args = getProject_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getProject_result()
+    try:
+      result.success = self._handler.getProject(args.authzToken, args.projectId)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.ProjectNotFoundException as pnfe:
+      msg_type = TMessageType.REPLY
+      result.pnfe = pnfe
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("getProject", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_deleteProject(self, seqid, iprot, oprot):
+    args = deleteProject_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = deleteProject_result()
+    try:
+      result.success = self._handler.deleteProject(args.authzToken, args.projectId)
       msg_type = TMessageType.REPLY
     except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
       raise
@@ -15277,25 +15690,855 @@ class getAPIVersion_result:
   def __ne__(self, other):
     return not (self == other)
 
-class isUserExists_args:
+class isUserExists_args:
+  """
+  Attributes:
+   - authzToken
+   - gatewayId
+   - userName
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRING, 'userName', None, None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, gatewayId=None, userName=None,):
+    self.authzToken = authzToken
+    self.gatewayId = gatewayId
+    self.userName = userName
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.userName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('isUserExists_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.userName is not None:
+      oprot.writeFieldBegin('userName', TType.STRING, 3)
+      oprot.writeString(self.userName)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    if self.userName is None:
+      raise TProtocol.TProtocolException(message='Required field userName is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.userName)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class isUserExists_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.BOOL, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.BOOL:
+          self.success = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('isUserExists_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.BOOL, 0)
+      oprot.writeBool(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class addGateway_args:
+  """
+  Attributes:
+   - authzToken
+   - gateway
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'gateway', (apache.airavata.model.workspace.ttypes.Gateway, apache.airavata.model.workspace.ttypes.Gateway.thrift_spec), None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, gateway=None,):
+    self.authzToken = authzToken
+    self.gateway = gateway
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.gateway = apache.airavata.model.workspace.ttypes.Gateway()
+          self.gateway.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('addGateway_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.gateway is not None:
+      oprot.writeFieldBegin('gateway', TType.STRUCT, 2)
+      self.gateway.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.gateway is None:
+      raise TProtocol.TProtocolException(message='Required field gateway is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.gateway)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class addGateway_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.STRING, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.STRING:
+          self.success = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('addGateway_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRING, 0)
+      oprot.writeString(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class updateGateway_args:
+  """
+  Attributes:
+   - authzToken
+   - gatewayId
+   - updatedGateway
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRUCT, 'updatedGateway', (apache.airavata.model.workspace.ttypes.Gateway, apache.airavata.model.workspace.ttypes.Gateway.thrift_spec), None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, gatewayId=None, updatedGateway=None,):
+    self.authzToken = authzToken
+    self.gatewayId = gatewayId
+    self.updatedGateway = updatedGateway
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.updatedGateway = apache.airavata.model.workspace.ttypes.Gateway()
+          self.updatedGateway.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('updateGateway_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.updatedGateway is not None:
+      oprot.writeFieldBegin('updatedGateway', TType.STRUCT, 3)
+      self.updatedGateway.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    if self.updatedGateway is None:
+      raise TProtocol.TProtocolException(message='Required field updatedGateway is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.updatedGateway)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class updateGateway_result:
+  """
+  Attributes:
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, ire=None, ace=None, ase=None, ae=None,):
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('updateGateway_result')
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getGateway_args:
+  """
+  Attributes:
+   - authzToken
+   - gatewayId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, gatewayId=None,):
+    self.authzToken = authzToken
+    self.gatewayId = gatewayId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getGateway_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.gatewayId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getGateway_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.STRUCT, 'success', (apache.airavata.model.workspace.ttypes.Gateway, apache.airavata.model.workspace.ttypes.Gateway.thrift_spec), None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.STRUCT:
+          self.success = apache.airavata.model.workspace.ttypes.Gateway()
+          self.success.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getGateway_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRUCT, 0)
+      self.success.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class deleteGateway_args:
   """
   Attributes:
    - authzToken
    - gatewayId
-   - userName
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
     (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRING, 'userName', None, None, ), # 3
   )
 
-  def __init__(self, authzToken=None, gatewayId=None, userName=None,):
+  def __init__(self, authzToken=None, gatewayId=None,):
     self.authzToken = authzToken
     self.gatewayId = gatewayId
-    self.userName = userName
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -15317,11 +16560,6 @@ class isUserExists_args:
           self.gatewayId = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.userName = iprot.readString()
-        else:
-          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -15331,7 +16569,7 @@ class isUserExists_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('isUserExists_args')
+    oprot.writeStructBegin('deleteGateway_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -15340,10 +16578,6 @@ class isUserExists_args:
       oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
       oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
-    if self.userName is not None:
-      oprot.writeFieldBegin('userName', TType.STRING, 3)
-      oprot.writeString(self.userName)
-      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -15352,8 +16586,6 @@ class isUserExists_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     if self.gatewayId is None:
       raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
-    if self.userName is None:
-      raise TProtocol.TProtocolException(message='Required field userName is unset!')
     return
 
 
@@ -15361,7 +16593,6 @@ class isUserExists_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.userName)
     return value
 
   def __repr__(self):
@@ -15375,7 +16606,7 @@ class isUserExists_args:
   def __ne__(self, other):
     return not (self == other)
 
-class isUserExists_result:
+class deleteGateway_result:
   """
   Attributes:
    - success
@@ -15447,7 +16678,7 @@ class isUserExists_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('isUserExists_result')
+    oprot.writeStructBegin('deleteGateway_result')
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.BOOL, 0)
       oprot.writeBool(self.success)
@@ -15495,22 +16726,19 @@ class isUserExists_result:
   def __ne__(self, other):
     return not (self == other)
 
-class addGateway_args:
+class getAllGateways_args:
   """
   Attributes:
    - authzToken
-   - gateway
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRUCT, 'gateway', (apache.airavata.model.workspace.ttypes.Gateway, apache.airavata.model.workspace.ttypes.Gateway.thrift_spec), None, ), # 2
   )
 
-  def __init__(self, authzToken=None, gateway=None,):
+  def __init__(self, authzToken=None,):
     self.authzToken = authzToken
-    self.gateway = gateway
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -15527,12 +16755,6 @@ class addGateway_args:
           self.authzToken.read(iprot)
         else:
           iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRUCT:
-          self.gateway = apache.airavata.model.workspace.ttypes.Gateway()
-          self.gateway.read(iprot)
-        else:
-          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -15542,30 +16764,23 @@ class addGateway_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('addGateway_args')
+    oprot.writeStructBegin('getAllGateways_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.gateway is not None:
-      oprot.writeFieldBegin('gateway', TType.STRUCT, 2)
-      self.gateway.write(oprot)
-      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
   def validate(self):
     if self.authzToken is None:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
-    if self.gateway is None:
-      raise TProtocol.TProtocolException(message='Required field gateway is unset!')
     return
 
 
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
-    value = (value * 31) ^ hash(self.gateway)
     return value
 
   def __repr__(self):
@@ -15579,7 +16794,7 @@ class addGateway_args:
   def __ne__(self, other):
     return not (self == other)
 
-class addGateway_result:
+class getAllGateways_result:
   """
   Attributes:
    - success
@@ -15590,7 +16805,7 @@ class addGateway_result:
   """
 
   thrift_spec = (
-    (0, TType.STRING, 'success', None, None, ), # 0
+    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.workspace.ttypes.Gateway, apache.airavata.model.workspace.ttypes.Gateway.thrift_spec)), None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
@@ -15614,8 +16829,14 @@ class addGateway_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.STRING:
-          self.success = iprot.readString()
+        if ftype == TType.LIST:
+          self.success = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = apache.airavata.model.workspace.ttypes.Gateway()
+            _elem5.read(iprot)
+            self.success.append(_elem5)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -15651,10 +16872,13 @@ class addGateway_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('addGateway_result')
+    oprot.writeStructBegin('getAllGateways_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.STRING, 0)
-      oprot.writeString(self.success)
+      oprot.writeFieldBegin('success', TType.LIST, 0)
+      oprot.writeListBegin(TType.STRUCT, len(self.success))
+      for iter6 in self.success:
+        iter6.write(oprot)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -15699,25 +16923,22 @@ class addGateway_result:
   def __ne__(self, other):
     return not (self == other)
 
-class updateGateway_args:
+class isGatewayExist_args:
   """
   Attributes:
    - authzToken
    - gatewayId
-   - updatedGateway
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
     (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRUCT, 'updatedGateway', (apache.airavata.model.workspace.ttypes.Gateway, apache.airavata.model.workspace.ttypes.Gateway.thrift_spec), None, ), # 3
   )
 
-  def __init__(self, authzToken=None, gatewayId=None, updatedGateway=None,):
+  def __init__(self, authzToken=None, gatewayId=None,):
     self.authzToken = authzToken
     self.gatewayId = gatewayId
-    self.updatedGateway = updatedGateway
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -15739,12 +16960,6 @@ class updateGateway_args:
           self.gatewayId = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRUCT:
-          self.updatedGateway = apache.airavata.model.workspace.ttypes.Gateway()
-          self.updatedGateway.read(iprot)
-        else:
-          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -15754,7 +16969,7 @@ class updateGateway_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('updateGateway_args')
+    oprot.writeStructBegin('isGatewayExist_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -15763,10 +16978,6 @@ class updateGateway_args:
       oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
       oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
-    if self.updatedGateway is not None:
-      oprot.writeFieldBegin('updatedGateway', TType.STRUCT, 3)
-      self.updatedGateway.write(oprot)
-      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -15775,8 +16986,6 @@ class updateGateway_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     if self.gatewayId is None:
       raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
-    if self.updatedGateway is None:
-      raise TProtocol.TProtocolException(message='Required field updatedGateway is unset!')
     return
 
 
@@ -15784,7 +16993,6 @@ class updateGateway_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.updatedGateway)
     return value
 
   def __repr__(self):
@@ -15798,9 +17006,10 @@ class updateGateway_args:
   def __ne__(self, other):
     return not (self == other)
 
-class updateGateway_result:
+class isGatewayExist_result:
   """
   Attributes:
+   - success
    - ire
    - ace
    - ase
@@ -15808,14 +17017,15 @@ class updateGateway_result:
   """
 
   thrift_spec = (
-    None, # 0
+    (0, TType.BOOL, 'success', None, None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
     (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
   )
 
-  def __init__(self, ire=None, ace=None, ase=None, ae=None,):
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
     self.ire = ire
     self.ace = ace
     self.ase = ase
@@ -15830,8 +17040,217 @@ class updateGateway_result:
       (fname, ftype, fid) = iprot.readFieldBegin()
       if ftype == TType.STOP:
         break
+      if fid == 0:
+        if ftype == TType.BOOL:
+          self.success = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('isGatewayExist_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.BOOL, 0)
+      oprot.writeBool(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class createNotification_args:
+  """
+  Attributes:
+   - authzToken
+   - notification
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'notification', (apache.airavata.model.workspace.ttypes.Notification, apache.airavata.model.workspace.ttypes.Notification.thrift_spec), None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, notification=None,):
+    self.authzToken = authzToken
+    self.notification = notification
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
       if fid == 1:
         if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.notification = apache.airavata.model.workspace.ttypes.Notification()
+          self.notification.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('createNotification_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.notification is not None:
+      oprot.writeFieldBegin('notification', TType.STRUCT, 2)
+      self.notification.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.notification is None:
+      raise TProtocol.TProtocolException(message='Required field notification is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.notification)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class createNotification_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.STRING, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.STRING:
+          self.success = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
           self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
           self.ire.read(iprot)
         else:
@@ -15863,7 +17282,11 @@ class updateGateway_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('updateGateway_result')
+    oprot.writeStructBegin('createNotification_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRING, 0)
+      oprot.writeString(self.success)
+      oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
       self.ire.write(oprot)
@@ -15889,6 +17312,7 @@ class updateGateway_result:
 
   def __hash__(self):
     value = 17
+    value = (value * 31) ^ hash(self.success)
     value = (value * 31) ^ hash(self.ire)
     value = (value * 31) ^ hash(self.ace)
     value = (value * 31) ^ hash(self.ase)
@@ -15906,22 +17330,22 @@ class updateGateway_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getGateway_args:
+class updateNotification_args:
   """
   Attributes:
    - authzToken
-   - gatewayId
+   - notification
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (2, TType.STRUCT, 'notification', (apache.airavata.model.workspace.ttypes.Notification, apache.airavata.model.workspace.ttypes.Notification.thrift_spec), None, ), # 2
   )
 
-  def __init__(self, authzToken=None, gatewayId=None,):
+  def __init__(self, authzToken=None, notification=None,):
     self.authzToken = authzToken
-    self.gatewayId = gatewayId
+    self.notification = notification
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -15939,8 +17363,9 @@ class getGateway_args:
         else:
           iprot.skip(ftype)
       elif fid == 2:
-        if ftype == TType.STRING:
-          self.gatewayId = iprot.readString()
+        if ftype == TType.STRUCT:
+          self.notification = apache.airavata.model.workspace.ttypes.Notification()
+          self.notification.read(iprot)
         else:
           iprot.skip(ftype)
       else:
@@ -15952,14 +17377,14 @@ class getGateway_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('getGateway_args')
+    oprot.writeStructBegin('updateNotification_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.gatewayId is not None:
-      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
-      oprot.writeString(self.gatewayId)
+    if self.notification is not None:
+      oprot.writeFieldBegin('notification', TType.STRUCT, 2)
+      self.notification.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -15967,15 +17392,15 @@ class getGateway_args:
   def validate(self):
     if self.authzToken is None:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
-    if self.gatewayId is None:
-      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    if self.notification is None:
+      raise TProtocol.TProtocolException(message='Required field notification is unset!')
     return
 
 
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
-    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.notification)
     return value
 
   def __repr__(self):
@@ -15989,10 +17414,9 @@ class getGateway_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getGateway_result:
+class updateNotification_result:
   """
   Attributes:
-   - success
    - ire
    - ace
    - ase
@@ -16000,15 +17424,14 @@ class getGateway_result:
   """
 
   thrift_spec = (
-    (0, TType.STRUCT, 'success', (apache.airavata.model.workspace.ttypes.Gateway, apache.airavata.model.workspace.ttypes.Gateway.thrift_spec), None, ), # 0
+    None, # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
     (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
   )
 
-  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
-    self.success = success
+  def __init__(self, ire=None, ace=None, ase=None, ae=None,):
     self.ire = ire
     self.ace = ace
     self.ase = ase
@@ -16023,13 +17446,7 @@ class getGateway_result:
       (fname, ftype, fid) = iprot.readFieldBegin()
       if ftype == TType.STOP:
         break
-      if fid == 0:
-        if ftype == TType.STRUCT:
-          self.success = apache.airavata.model.workspace.ttypes.Gateway()
-          self.success.read(iprot)
-        else:
-          iprot.skip(ftype)
-      elif fid == 1:
+      if fid == 1:
         if ftype == TType.STRUCT:
           self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
           self.ire.read(iprot)
@@ -16062,11 +17479,7 @@ class getGateway_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('getGateway_result')
-    if self.success is not None:
-      oprot.writeFieldBegin('success', TType.STRUCT, 0)
-      self.success.write(oprot)
-      oprot.writeFieldEnd()
+    oprot.writeStructBegin('updateNotification_result')
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
       self.ire.write(oprot)
@@ -16092,7 +17505,6 @@ class getGateway_result:
 
   def __hash__(self):
     value = 17
-    value = (value * 31) ^ hash(self.success)
     value = (value * 31) ^ hash(self.ire)
     value = (value * 31) ^ hash(self.ace)
     value = (value * 31) ^ hash(self.ase)
@@ -16110,22 +17522,25 @@ class getGateway_result:
   def __ne__(self, other):
     return not (self == other)
 
-class deleteGateway_args:
+class deleteNotification_args:
   """
   Attributes:
    - authzToken
    - gatewayId
+   - notificationId
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
     (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRING, 'notificationId', None, None, ), # 3
   )
 
-  def __init__(self, authzToken=None, gatewayId=None,):
+  def __init__(self, authzToken=None, gatewayId=None, notificationId=None,):
     self.authzToken = authzToken
     self.gatewayId = gatewayId
+    self.notificationId = notificationId
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -16147,6 +17562,11 @@ class deleteGateway_args:
           self.gatewayId = iprot.readString()
         else:
           iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.notificationId = iprot.readString()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -16156,7 +17576,7 @@ class deleteGateway_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('deleteGateway_args')
+    oprot.writeStructBegin('deleteNotification_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -16165,6 +17585,10 @@ class deleteGateway_args:
       oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
       oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
+    if self.notificationId is not None:
+      oprot.writeFieldBegin('notificationId', TType.STRING, 3)
+      oprot.writeString(self.notificationId)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -16173,6 +17597,8 @@ class deleteGateway_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     if self.gatewayId is None:
       raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    if self.notificationId is None:
+      raise TProtocol.TProtocolException(message='Required field notificationId is unset!')
     return
 
 
@@ -16180,6 +17606,7 @@ class deleteGateway_args:
 

<TRUNCATED>

[28/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 5037501..a726a21 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class Airavata {
 
   public interface Iface {
@@ -176,6 +176,23 @@ public class Airavata {
     public boolean isGatewayExist(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
     /**
+     *   * API methods to retrieve notifications
+     * *
+     * 
+     * @param authzToken
+     * @param notification
+     */
+    public String createNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+
+    public void updateNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+
+    public void deleteNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+
+    public org.apache.airavata.model.workspace.Notification getNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+
+    public List<org.apache.airavata.model.workspace.Notification> getAllNotifications(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+
+    /**
      * Generate and Register SSH Key Pair with Airavata Credential Store.
      * 
      * @param gatewayId
@@ -2674,6 +2691,16 @@ public class Airavata {
 
     public void isGatewayExist(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void createNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void updateNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void deleteNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getAllNotifications(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void generateAndRegisterSSHKeys(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void getSSHPubKey(org.apache.airavata.model.security.AuthzToken authzToken, String airavataCredStoreToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -3243,6 +3270,182 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isGatewayExist failed: unknown result");
     }
 
+    public String createNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      send_createNotification(authzToken, notification);
+      return recv_createNotification();
+    }
+
+    public void send_createNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification) throws org.apache.thrift.TException
+    {
+      createNotification_args args = new createNotification_args();
+      args.setAuthzToken(authzToken);
+      args.setNotification(notification);
+      sendBase("createNotification", args);
+    }
+
+    public String recv_createNotification() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      createNotification_result result = new createNotification_result();
+      receiveBase(result, "createNotification");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.ae != null) {
+        throw result.ae;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createNotification failed: unknown result");
+    }
+
+    public void updateNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      send_updateNotification(authzToken, notification);
+      recv_updateNotification();
+    }
+
+    public void send_updateNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification) throws org.apache.thrift.TException
+    {
+      updateNotification_args args = new updateNotification_args();
+      args.setAuthzToken(authzToken);
+      args.setNotification(notification);
+      sendBase("updateNotification", args);
+    }
+
+    public void recv_updateNotification() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      updateNotification_result result = new updateNotification_result();
+      receiveBase(result, "updateNotification");
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.ae != null) {
+        throw result.ae;
+      }
+      return;
+    }
+
+    public void deleteNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      send_deleteNotification(authzToken, gatewayId, notificationId);
+      recv_deleteNotification();
+    }
+
+    public void send_deleteNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId) throws org.apache.thrift.TException
+    {
+      deleteNotification_args args = new deleteNotification_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayId(gatewayId);
+      args.setNotificationId(notificationId);
+      sendBase("deleteNotification", args);
+    }
+
+    public void recv_deleteNotification() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      deleteNotification_result result = new deleteNotification_result();
+      receiveBase(result, "deleteNotification");
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.ae != null) {
+        throw result.ae;
+      }
+      return;
+    }
+
+    public org.apache.airavata.model.workspace.Notification getNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      send_getNotification(authzToken, gatewayId, notificationId);
+      return recv_getNotification();
+    }
+
+    public void send_getNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId) throws org.apache.thrift.TException
+    {
+      getNotification_args args = new getNotification_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayId(gatewayId);
+      args.setNotificationId(notificationId);
+      sendBase("getNotification", args);
+    }
+
+    public org.apache.airavata.model.workspace.Notification recv_getNotification() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      getNotification_result result = new getNotification_result();
+      receiveBase(result, "getNotification");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.ae != null) {
+        throw result.ae;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getNotification failed: unknown result");
+    }
+
+    public List<org.apache.airavata.model.workspace.Notification> getAllNotifications(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      send_getAllNotifications(authzToken, gatewayId);
+      return recv_getAllNotifications();
+    }
+
+    public void send_getAllNotifications(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId) throws org.apache.thrift.TException
+    {
+      getAllNotifications_args args = new getAllNotifications_args();
+      args.setAuthzToken(authzToken);
+      args.setGatewayId(gatewayId);
+      sendBase("getAllNotifications", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.Notification> recv_getAllNotifications() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      getAllNotifications_result result = new getAllNotifications_result();
+      receiveBase(result, "getAllNotifications");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.ae != null) {
+        throw result.ae;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllNotifications failed: unknown result");
+    }
+
     public String generateAndRegisterSSHKeys(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_generateAndRegisterSSHKeys(authzToken, gatewayId, userName);
@@ -8362,6 +8565,187 @@ public class Airavata {
       }
     }
 
+    public void createNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      createNotification_call method_call = new createNotification_call(authzToken, notification, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class createNotification_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private org.apache.airavata.model.workspace.Notification notification;
+      public createNotification_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.notification = notification;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createNotification", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        createNotification_args args = new createNotification_args();
+        args.setAuthzToken(authzToken);
+        args.setNotification(notification);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_createNotification();
+      }
+    }
+
+    public void updateNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      updateNotification_call method_call = new updateNotification_call(authzToken, notification, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateNotification_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private org.apache.airavata.model.workspace.Notification notification;
+      public updateNotification_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.notification = notification;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateNotification", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateNotification_args args = new updateNotification_args();
+        args.setAuthzToken(authzToken);
+        args.setNotification(notification);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public void getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        (new Client(prot)).recv_updateNotification();
+      }
+    }
+
+    public void deleteNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      deleteNotification_call method_call = new deleteNotification_call(authzToken, gatewayId, notificationId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteNotification_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayId;
+      private String notificationId;
+      public deleteNotification_call(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.gatewayId = gatewayId;
+        this.notificationId = notificationId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteNotification", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteNotification_args args = new deleteNotification_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayId(gatewayId);
+        args.setNotificationId(notificationId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public void getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        (new Client(prot)).recv_deleteNotification();
+      }
+    }
+
+    public void getNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getNotification_call method_call = new getNotification_call(authzToken, gatewayId, notificationId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getNotification_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayId;
+      private String notificationId;
+      public getNotification_call(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.gatewayId = gatewayId;
+        this.notificationId = notificationId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getNotification", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getNotification_args args = new getNotification_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayId(gatewayId);
+        args.setNotificationId(notificationId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.workspace.Notification getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getNotification();
+      }
+    }
+
+    public void getAllNotifications(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllNotifications_call method_call = new getAllNotifications_call(authzToken, gatewayId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllNotifications_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String gatewayId;
+      public getAllNotifications_call(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.gatewayId = gatewayId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllNotifications", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllNotifications_args args = new getAllNotifications_args();
+        args.setAuthzToken(authzToken);
+        args.setGatewayId(gatewayId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.Notification> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllNotifications();
+      }
+    }
+
     public void generateAndRegisterSSHKeys(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       generateAndRegisterSSHKeys_call method_call = new generateAndRegisterSSHKeys_call(authzToken, gatewayId, userName, resultHandler, this, ___protocolFactory, ___transport);
@@ -13310,6 +13694,11 @@ public class Airavata {
       processMap.put("deleteGateway", new deleteGateway());
       processMap.put("getAllGateways", new getAllGateways());
       processMap.put("isGatewayExist", new isGatewayExist());
+      processMap.put("createNotification", new createNotification());
+      processMap.put("updateNotification", new updateNotification());
+      processMap.put("deleteNotification", new deleteNotification());
+      processMap.put("getNotification", new getNotification());
+      processMap.put("getAllNotifications", new getAllNotifications());
       processMap.put("generateAndRegisterSSHKeys", new generateAndRegisterSSHKeys());
       processMap.put("getSSHPubKey", new getSSHPubKey());
       processMap.put("getAllUserSSHPubKeys", new getAllUserSSHPubKeys());
@@ -13687,6 +14076,156 @@ public class Airavata {
       }
     }
 
+    public static class createNotification<I extends Iface> extends org.apache.thrift.ProcessFunction<I, createNotification_args> {
+      public createNotification() {
+        super("createNotification");
+      }
+
+      public createNotification_args getEmptyArgsInstance() {
+        return new createNotification_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public createNotification_result getResult(I iface, createNotification_args args) throws org.apache.thrift.TException {
+        createNotification_result result = new createNotification_result();
+        try {
+          result.success = iface.createNotification(args.authzToken, args.notification);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
+    public static class updateNotification<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateNotification_args> {
+      public updateNotification() {
+        super("updateNotification");
+      }
+
+      public updateNotification_args getEmptyArgsInstance() {
+        return new updateNotification_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public updateNotification_result getResult(I iface, updateNotification_args args) throws org.apache.thrift.TException {
+        updateNotification_result result = new updateNotification_result();
+        try {
+          iface.updateNotification(args.authzToken, args.notification);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
+    public static class deleteNotification<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteNotification_args> {
+      public deleteNotification() {
+        super("deleteNotification");
+      }
+
+      public deleteNotification_args getEmptyArgsInstance() {
+        return new deleteNotification_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public deleteNotification_result getResult(I iface, deleteNotification_args args) throws org.apache.thrift.TException {
+        deleteNotification_result result = new deleteNotification_result();
+        try {
+          iface.deleteNotification(args.authzToken, args.gatewayId, args.notificationId);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
+    public static class getNotification<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getNotification_args> {
+      public getNotification() {
+        super("getNotification");
+      }
+
+      public getNotification_args getEmptyArgsInstance() {
+        return new getNotification_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getNotification_result getResult(I iface, getNotification_args args) throws org.apache.thrift.TException {
+        getNotification_result result = new getNotification_result();
+        try {
+          result.success = iface.getNotification(args.authzToken, args.gatewayId, args.notificationId);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
+    public static class getAllNotifications<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllNotifications_args> {
+      public getAllNotifications() {
+        super("getAllNotifications");
+      }
+
+      public getAllNotifications_args getEmptyArgsInstance() {
+        return new getAllNotifications_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllNotifications_result getResult(I iface, getAllNotifications_args args) throws org.apache.thrift.TException {
+        getAllNotifications_result result = new getAllNotifications_result();
+        try {
+          result.success = iface.getAllNotifications(args.authzToken, args.gatewayId);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
     public static class generateAndRegisterSSHKeys<I extends Iface> extends org.apache.thrift.ProcessFunction<I, generateAndRegisterSSHKeys_args> {
       public generateAndRegisterSSHKeys() {
         super("generateAndRegisterSSHKeys");
@@ -17688,6 +18227,11 @@ public class Airavata {
       processMap.put("deleteGateway", new deleteGateway());
       processMap.put("getAllGateways", new getAllGateways());
       processMap.put("isGatewayExist", new isGatewayExist());
+      processMap.put("createNotification", new createNotification());
+      processMap.put("updateNotification", new updateNotification());
+      processMap.put("deleteNotification", new deleteNotification());
+      processMap.put("getNotification", new getNotification());
+      processMap.put("getAllNotifications", new getAllNotifications());
       processMap.put("generateAndRegisterSSHKeys", new generateAndRegisterSSHKeys());
       processMap.put("getSSHPubKey", new getSSHPubKey());
       processMap.put("getAllUserSSHPubKeys", new getAllUserSSHPubKeys());
@@ -18400,20 +18944,20 @@ public class Airavata {
       }
     }
 
-    public static class generateAndRegisterSSHKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, generateAndRegisterSSHKeys_args, String> {
-      public generateAndRegisterSSHKeys() {
-        super("generateAndRegisterSSHKeys");
+    public static class createNotification<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createNotification_args, String> {
+      public createNotification() {
+        super("createNotification");
       }
 
-      public generateAndRegisterSSHKeys_args getEmptyArgsInstance() {
-        return new generateAndRegisterSSHKeys_args();
+      public createNotification_args getEmptyArgsInstance() {
+        return new createNotification_args();
       }
 
       public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<String>() { 
           public void onComplete(String o) {
-            generateAndRegisterSSHKeys_result result = new generateAndRegisterSSHKeys_result();
+            createNotification_result result = new createNotification_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -18426,7 +18970,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            generateAndRegisterSSHKeys_result result = new generateAndRegisterSSHKeys_result();
+            createNotification_result result = new createNotification_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -18442,71 +18986,9 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-             else 
-            {
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-              return;
-            } catch (Exception ex) {
-              LOGGER.error("Exception writing to internal frame buffer", ex);
-            }
-            fb.close();
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, generateAndRegisterSSHKeys_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.generateAndRegisterSSHKeys(args.authzToken, args.gatewayId, args.userName,resultHandler);
-      }
-    }
-
-    public static class getSSHPubKey<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getSSHPubKey_args, String> {
-      public getSSHPubKey() {
-        super("getSSHPubKey");
-      }
-
-      public getSSHPubKey_args getEmptyArgsInstance() {
-        return new getSSHPubKey_args();
-      }
-
-      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<String>() { 
-          public void onComplete(String o) {
-            getSSHPubKey_result result = new getSSHPubKey_result();
-            result.success = o;
-            try {
-              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-              return;
-            } catch (Exception e) {
-              LOGGER.error("Exception writing to internal frame buffer", e);
-            }
-            fb.close();
-          }
-          public void onError(Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TBase msg;
-            getSSHPubKey_result result = new getSSHPubKey_result();
-            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
-                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
-                        result.setIreIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
-                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
-                        result.setAceIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
-                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
-                        result.setAseIsSet(true);
+            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+                        result.setAeIsSet(true);
                         msg = result;
             }
              else 
@@ -18529,26 +19011,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getSSHPubKey_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.getSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
+      public void start(I iface, createNotification_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.createNotification(args.authzToken, args.notification,resultHandler);
       }
     }
 
-    public static class getAllUserSSHPubKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserSSHPubKeys_args, Map<String,String>> {
-      public getAllUserSSHPubKeys() {
-        super("getAllUserSSHPubKeys");
+    public static class updateNotification<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateNotification_args, Void> {
+      public updateNotification() {
+        super("updateNotification");
       }
 
-      public getAllUserSSHPubKeys_args getEmptyArgsInstance() {
-        return new getAllUserSSHPubKeys_args();
+      public updateNotification_args getEmptyArgsInstance() {
+        return new updateNotification_args();
       }
 
-      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Map<String,String>>() { 
-          public void onComplete(Map<String,String> o) {
-            getAllUserSSHPubKeys_result result = new getAllUserSSHPubKeys_result();
-            result.success = o;
+        return new AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateNotification_result result = new updateNotification_result();
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -18560,7 +19041,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllUserSSHPubKeys_result result = new getAllUserSSHPubKeys_result();
+            updateNotification_result result = new updateNotification_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -18576,6 +19057,11 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+                        result.setAeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -18596,26 +19082,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllUserSSHPubKeys_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
-        iface.getAllUserSSHPubKeys(args.authzToken, args.userName,resultHandler);
+      public void start(I iface, updateNotification_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.updateNotification(args.authzToken, args.notification,resultHandler);
       }
     }
 
-    public static class getAllGatewaySSHPubKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewaySSHPubKeys_args, Map<String,String>> {
-      public getAllGatewaySSHPubKeys() {
-        super("getAllGatewaySSHPubKeys");
+    public static class deleteNotification<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteNotification_args, Void> {
+      public deleteNotification() {
+        super("deleteNotification");
       }
 
-      public getAllGatewaySSHPubKeys_args getEmptyArgsInstance() {
-        return new getAllGatewaySSHPubKeys_args();
+      public deleteNotification_args getEmptyArgsInstance() {
+        return new deleteNotification_args();
       }
 
-      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Map<String,String>>() { 
-          public void onComplete(Map<String,String> o) {
-            getAllGatewaySSHPubKeys_result result = new getAllGatewaySSHPubKeys_result();
-            result.success = o;
+        return new AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            deleteNotification_result result = new deleteNotification_result();
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -18627,7 +19112,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllGatewaySSHPubKeys_result result = new getAllGatewaySSHPubKeys_result();
+            deleteNotification_result result = new deleteNotification_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -18643,6 +19128,11 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+                        result.setAeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -18663,27 +19153,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllGatewaySSHPubKeys_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
-        iface.getAllGatewaySSHPubKeys(args.authzToken, args.gatewayId,resultHandler);
+      public void start(I iface, deleteNotification_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.deleteNotification(args.authzToken, args.gatewayId, args.notificationId,resultHandler);
       }
     }
 
-    public static class deleteSSHPubKey<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteSSHPubKey_args, Boolean> {
-      public deleteSSHPubKey() {
-        super("deleteSSHPubKey");
+    public static class getNotification<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getNotification_args, org.apache.airavata.model.workspace.Notification> {
+      public getNotification() {
+        super("getNotification");
       }
 
-      public deleteSSHPubKey_args getEmptyArgsInstance() {
-        return new deleteSSHPubKey_args();
+      public getNotification_args getEmptyArgsInstance() {
+        return new getNotification_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.workspace.Notification> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            deleteSSHPubKey_result result = new deleteSSHPubKey_result();
+        return new AsyncMethodCallback<org.apache.airavata.model.workspace.Notification>() { 
+          public void onComplete(org.apache.airavata.model.workspace.Notification o) {
+            getNotification_result result = new getNotification_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -18695,7 +19184,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteSSHPubKey_result result = new deleteSSHPubKey_result();
+            getNotification_result result = new getNotification_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -18711,6 +19200,11 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+                        result.setAeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -18731,25 +19225,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteSSHPubKey_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
+      public void start(I iface, getNotification_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Notification> resultHandler) throws TException {
+        iface.getNotification(args.authzToken, args.gatewayId, args.notificationId,resultHandler);
       }
     }
 
-    public static class createProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createProject_args, String> {
-      public createProject() {
-        super("createProject");
+    public static class getAllNotifications<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllNotifications_args, List<org.apache.airavata.model.workspace.Notification>> {
+      public getAllNotifications() {
+        super("getAllNotifications");
       }
 
-      public createProject_args getEmptyArgsInstance() {
-        return new createProject_args();
+      public getAllNotifications_args getEmptyArgsInstance() {
+        return new getAllNotifications_args();
       }
 
-      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Notification>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<String>() { 
-          public void onComplete(String o) {
-            createProject_result result = new createProject_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Notification>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.Notification> o) {
+            getAllNotifications_result result = new getAllNotifications_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -18762,7 +19256,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            createProject_result result = new createProject_result();
+            getAllNotifications_result result = new getAllNotifications_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -18803,25 +19297,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, createProject_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.createProject(args.authzToken, args.gatewayId, args.project,resultHandler);
+      public void start(I iface, getAllNotifications_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Notification>> resultHandler) throws TException {
+        iface.getAllNotifications(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class updateProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProject_args, Void> {
-      public updateProject() {
-        super("updateProject");
+    public static class generateAndRegisterSSHKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, generateAndRegisterSSHKeys_args, String> {
+      public generateAndRegisterSSHKeys() {
+        super("generateAndRegisterSSHKeys");
       }
 
-      public updateProject_args getEmptyArgsInstance() {
-        return new updateProject_args();
+      public generateAndRegisterSSHKeys_args getEmptyArgsInstance() {
+        return new generateAndRegisterSSHKeys_args();
       }
 
-      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            updateProject_result result = new updateProject_result();
+        return new AsyncMethodCallback<String>() { 
+          public void onComplete(String o) {
+            generateAndRegisterSSHKeys_result result = new generateAndRegisterSSHKeys_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -18833,7 +19328,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateProject_result result = new updateProject_result();
+            generateAndRegisterSSHKeys_result result = new generateAndRegisterSSHKeys_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -18849,16 +19344,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-                        result.setAeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -18879,25 +19364,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateProject_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
-        iface.updateProject(args.authzToken, args.projectId, args.updatedProject,resultHandler);
+      public void start(I iface, generateAndRegisterSSHKeys_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.generateAndRegisterSSHKeys(args.authzToken, args.gatewayId, args.userName,resultHandler);
       }
     }
 
-    public static class getProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProject_args, org.apache.airavata.model.workspace.Project> {
-      public getProject() {
-        super("getProject");
+    public static class getSSHPubKey<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getSSHPubKey_args, String> {
+      public getSSHPubKey() {
+        super("getSSHPubKey");
       }
 
-      public getProject_args getEmptyArgsInstance() {
-        return new getProject_args();
+      public getSSHPubKey_args getEmptyArgsInstance() {
+        return new getSSHPubKey_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.workspace.Project> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.workspace.Project>() { 
-          public void onComplete(org.apache.airavata.model.workspace.Project o) {
-            getProject_result result = new getProject_result();
+        return new AsyncMethodCallback<String>() { 
+          public void onComplete(String o) {
+            getSSHPubKey_result result = new getSSHPubKey_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -18910,7 +19395,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getProject_result result = new getProject_result();
+            getSSHPubKey_result result = new getSSHPubKey_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -18926,16 +19411,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-                        result.setAeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -18956,27 +19431,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getProject_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Project> resultHandler) throws TException {
-        iface.getProject(args.authzToken, args.projectId,resultHandler);
+      public void start(I iface, getSSHPubKey_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.getSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class deleteProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteProject_args, Boolean> {
-      public deleteProject() {
-        super("deleteProject");
+    public static class getAllUserSSHPubKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserSSHPubKeys_args, Map<String,String>> {
+      public getAllUserSSHPubKeys() {
+        super("getAllUserSSHPubKeys");
       }
 
-      public deleteProject_args getEmptyArgsInstance() {
-        return new deleteProject_args();
+      public getAllUserSSHPubKeys_args getEmptyArgsInstance() {
+        return new getAllUserSSHPubKeys_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            deleteProject_result result = new deleteProject_result();
+        return new AsyncMethodCallback<Map<String,String>>() { 
+          public void onComplete(Map<String,String> o) {
+            getAllUserSSHPubKeys_result result = new getAllUserSSHPubKeys_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -18988,7 +19462,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteProject_result result = new deleteProject_result();
+            getAllUserSSHPubKeys_result result = new getAllUserSSHPubKeys_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -19004,16 +19478,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
-                        msg = result;
-            }
-            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-                        result.setAeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -19034,25 +19498,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteProject_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteProject(args.authzToken, args.projectId,resultHandler);
+      public void start(I iface, getAllUserSSHPubKeys_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
+        iface.getAllUserSSHPubKeys(args.authzToken, args.userName,resultHandler);
       }
     }
 
-    public static class getUserProjects<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserProjects_args, List<org.apache.airavata.model.workspace.Project>> {
-      public getUserProjects() {
-        super("getUserProjects");
+    public static class getAllGatewaySSHPubKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGatewaySSHPubKeys_args, Map<String,String>> {
+      public getAllGatewaySSHPubKeys() {
+        super("getAllGatewaySSHPubKeys");
       }
 
-      public getUserProjects_args getEmptyArgsInstance() {
-        return new getUserProjects_args();
+      public getAllGatewaySSHPubKeys_args getEmptyArgsInstance() {
+        return new getAllGatewaySSHPubKeys_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
-            getUserProjects_result result = new getUserProjects_result();
+        return new AsyncMethodCallback<Map<String,String>>() { 
+          public void onComplete(Map<String,String> o) {
+            getAllGatewaySSHPubKeys_result result = new getAllGatewaySSHPubKeys_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -19065,7 +19529,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getUserProjects_result result = new getUserProjects_result();
+            getAllGatewaySSHPubKeys_result result = new getAllGatewaySSHPubKeys_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -19081,11 +19545,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-                        result.setAeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -19106,26 +19565,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getUserProjects_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
-        iface.getUserProjects(args.authzToken, args.gatewayId, args.userName, args.limit, args.offset,resultHandler);
+      public void start(I iface, getAllGatewaySSHPubKeys_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
+        iface.getAllGatewaySSHPubKeys(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class searchProjectsByProjectName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchProjectsByProjectName_args, List<org.apache.airavata.model.workspace.Project>> {
-      public searchProjectsByProjectName() {
-        super("searchProjectsByProjectName");
+    public static class deleteSSHPubKey<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteSSHPubKey_args, Boolean> {
+      public deleteSSHPubKey() {
+        super("deleteSSHPubKey");
       }
 
-      public searchProjectsByProjectName_args getEmptyArgsInstance() {
-        return new searchProjectsByProjectName_args();
+      public deleteSSHPubKey_args getEmptyArgsInstance() {
+        return new deleteSSHPubKey_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
-            searchProjectsByProjectName_result result = new searchProjectsByProjectName_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            deleteSSHPubKey_result result = new deleteSSHPubKey_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -19137,7 +19597,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchProjectsByProjectName_result result = new searchProjectsByProjectName_result();
+            deleteSSHPubKey_result result = new deleteSSHPubKey_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -19153,11 +19613,6 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-                        result.setAeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -19178,25 +19633,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, searchProjectsByProjectName_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
-        iface.searchProjectsByProjectName(args.authzToken, args.gatewayId, args.userName, args.projectName, args.limit, args.offset,resultHandler);
+      public void start(I iface, deleteSSHPubKey_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class searchProjectsByProjectDesc<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchProjectsByProjectDesc_args, List<org.apache.airavata.model.workspace.Project>> {
-      public searchProjectsByProjectDesc() {
-        super("searchProjectsByProjectDesc");
+    public static class createProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createProject_args, String> {
+      public createProject() {
+        super("createProject");
       }
 
-      public searchProjectsByProjectDesc_args getEmptyArgsInstance() {
-        return new searchProjectsByProjectDesc_args();
+      public createProject_args getEmptyArgsInstance() {
+        return new createProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
-            searchProjectsByProjectDesc_result result = new searchProjectsByProjectDesc_result();
+        return new AsyncMethodCallback<String>() { 
+          public void onComplete(String o) {
+            createProject_result result = new createProject_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -19209,7 +19664,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchProjectsByProjectDesc_result result = new searchProjectsByProjectDesc_result();
+            createProject_result result = new createProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -19250,26 +19705,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, searchProjectsByProjectDesc_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
-        iface.searchProjectsByProjectDesc(args.authzToken, args.gatewayId, args.userName, args.description, args.limit, args.offset,resultHandler);
+      public void start(I iface, createProject_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.createProject(args.authzToken, args.gatewayId, args.project,resultHandler);
       }
     }
 
-    public static class searchExperimentsByName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByName_args, List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> {
-      public searchExperimentsByName() {
-        super("searchExperimentsByName");
+    public static class updateProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProject_args, Void> {
+      public updateProject() {
+        super("updateProject");
       }
 
-      public searchExperimentsByName_args getEmptyArgsInstance() {
-        return new searchExperimentsByName_args();
+      public updateProject_args getEmptyArgsInstance() {
+        return new updateProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>>() { 
-          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentSummaryModel> o) {
-            searchExperimentsByName_result result = new searchExperimentsByName_result();
-            result.success = o;
+        return new AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateProject_result result = new updateProject_result();
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -19281,7 +19735,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperimentsByName_result result = new searchExperimentsByName_result();
+            updateProject_result result = new updateProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -19297,6 +19751,11 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
+                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
+                        result.setPnfeIsSet(true);
+                        msg = result;
+            }
             else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
                         result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
                         result.setAeIsSet(true);
@@ -19322,25 +19781,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, searchExperimentsByName_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> resultHandler) throws TException {
-        iface.searchExperimentsByName(args.authzToken, args.gatewayId, args.userName, args.expName, args.limit, args.offset,resultHandler);
+      public void start(I iface, updateProject_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.updateProject(args.authzToken, args.projectId, args.updatedProject,resultHandler);
       }
     }
 
-    public static class searchExperimentsByDesc<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByDesc_args, List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> {
-      public searchExperimentsByDesc() {
-        super("searchExperimentsByDesc");
+    public static class getProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProject_args, org.apache.airavata.model.workspace.Project> {
+      public getProject() {
+        super("getProject");
       }
 
-      public searchExperimentsByDesc_args getEmptyArgsInstance() {
-        return new searchExperimentsByDesc_args();
+      public getProject_args getEmptyArgsInstance() {
+        return new getProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.workspace.Project> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>>() { 
-          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentSummaryModel> o) {
-            searchExperimentsByDesc_result result = new searchExperimentsByDesc_result();
+        return new AsyncMethodCallback<org.apache.airavata.model.workspace.Project>() { 
+          public void onComplete(org.apache.airavata.model.workspace.Project o) {
+            getProject_result result = new getProject_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -19353,7 +19812,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperimentsByDesc_result result = new searchExperimentsByDesc_result();
+            getProject_result result = new getProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -19369,6 +19828,11 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
+                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
+                        result.setPnfeIsSet(true);
+                        msg = result;
+            }
             else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
                         result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
                         result.setAeIsSet(true);
@@ -19394,26 +19858,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, searchExperimentsByDesc_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> resultHandler) throws TException {
-        iface.searchExperimentsByDesc(args.authzToken, args.gatewayId, args.userName, args.description, args.limit, args.offset,resultHandler);
+      public void start(I iface, getProject_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Project> resultHandler) throws TException {
+        iface.getProject(args.authzToken, args.projectId,resultHandler);
       }
     }
 
-    public static class searchExperimentsByApplication<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByApplication_args, List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> {
-      public searchExperimentsByApplication() {
-        super("searchExperimentsByApplication");
+    public static class deleteProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteProject_args, Boolean> {
+      public deleteProject() {
+        super("deleteProject");
       }
 
-      public searchExperimentsByApplication_args getEmptyArgsInstance() {
-        return new searchExperimentsByApplication_args();
+      public deleteProject_args getEmptyArgsInstance() {
+        return new deleteProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>>() { 
-          public void onComplete(List<org.apache.airavata.model.experiment.ExperimentSummaryModel> o) {
-            searchExperimentsByApplication_result result = new searchExperimentsByApplication_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            deleteProject_result result = new deleteProject_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -19425,7 +19890,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperimentsByApplication_result result = new searchExperimentsByApplication_result();
+            deleteProject_result result = new deleteProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -19441,6 +19906,11 @@ public class Airavata {
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
+                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
+                        result.setPnfeIsSet(true);
+                        msg = result;
+            }
             else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
                         result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
                         result.setAeIsSet(true);
@@ -19466,25 +19936,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, searchExperimentsByApplication_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> resultHandler) throws TException {
-        iface.searchExperimentsByApplication(args.authzToken, args.gatewayId, args.userName, args.applicationId, args.limit, args.offset,resultHandler);
+      public void start(I iface, deleteProject_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteProject(args.authzToken, args.projectId,resultHandler);
       }
     }
 
-    public static class searchExperimentsByStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByStatus_args, List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> {
-      public searchExperimentsByStatus() {
-        super("searchExperimentsByStatus");
+    public static class getUserProjects<I e

<TRUNCATED>

[14/35] airavata git commit: Added cloud provisioning module to build with cloud module

Posted by sh...@apache.org.
Added cloud provisioning module to build with cloud module


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

Branch: refs/heads/master
Commit: cf575fe0a09eb7f5a39ff6e79b2f87b2b1e6feb1
Parents: 975edba
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 15 15:55:56 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 15 15:55:56 2016 -0400

----------------------------------------------------------------------
 modules/cloud/cloud-provisioning/pom.xml | 12 ++++++++++--
 modules/cloud/pom.xml                    |  6 +++++-
 2 files changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/cf575fe0/modules/cloud/cloud-provisioning/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/pom.xml b/modules/cloud/cloud-provisioning/pom.xml
index 0554f0c..b3d4eae 100644
--- a/modules/cloud/cloud-provisioning/pom.xml
+++ b/modules/cloud/cloud-provisioning/pom.xml
@@ -1,9 +1,17 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.airavata.cloud</groupId>
+	<parent>
+		<groupId>org.apache.airavata</groupId>
+		<artifactId>airavata-cloud</artifactId>
+		<version>0.16-SNAPSHOT</version>
+		<relativePath>../pom.xml</relativePath>
+	</parent>
+
 	<artifactId>cloud-provisioning</artifactId>
-	<version>0.0.1</version>
+	<packaging>jar</packaging>
+	<name>Airavata Cloud Provisioning</name>
+	<url>http://airavata.apache.org/</url>
 
 	<dependencies>
 		<dependency>

http://git-wip-us.apache.org/repos/asf/airavata/blob/cf575fe0/modules/cloud/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cloud/pom.xml b/modules/cloud/pom.xml
index cc6645b..4f87811 100644
--- a/modules/cloud/pom.xml
+++ b/modules/cloud/pom.xml
@@ -12,8 +12,12 @@
 
     <modelVersion>4.0.0</modelVersion>
     <artifactId>airavata-cloud</artifactId>
-    <packaging>jar</packaging>
+    <packaging>pom</packaging>
     <name>Airavata Cloud</name>
     <url>http://airavata.apache.org/</url>
 
+    <modules>
+        <module>cloud-provisioning</module>
+    </modules>
+
 </project>
\ No newline at end of file


[26/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 82c79ff..278d61f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -159,6 +159,19 @@ class AiravataIf {
   virtual bool isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) = 0;
 
   /**
+   *   * API methods to retrieve notifications
+   * *
+   * 
+   * @param authzToken
+   * @param notification
+   */
+  virtual void createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification) = 0;
+  virtual void updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification) = 0;
+  virtual void deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId) = 0;
+  virtual void getNotification( ::apache::airavata::model::workspace::Notification& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId) = 0;
+  virtual void getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) = 0;
+
+  /**
    * Generate and Register SSH Key Pair with Airavata Credential Store.
    * 
    * @param gatewayId
@@ -2677,6 +2690,21 @@ class AiravataNull : virtual public AiravataIf {
     bool _return = false;
     return _return;
   }
+  void createNotification(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::workspace::Notification& /* notification */) {
+    return;
+  }
+  void updateNotification(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::workspace::Notification& /* notification */) {
+    return;
+  }
+  void deleteNotification(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */, const std::string& /* notificationId */) {
+    return;
+  }
+  void getNotification( ::apache::airavata::model::workspace::Notification& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */, const std::string& /* notificationId */) {
+    return;
+  }
+  void getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */) {
+    return;
+  }
   void generateAndRegisterSSHKeys(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */, const std::string& /* userName */) {
     return;
   }
@@ -3450,16 +3478,688 @@ class Airavata_addGateway_result {
   Airavata_addGateway_result() : success() {
   }
 
-  virtual ~Airavata_addGateway_result() throw();
-  std::string success;
+  virtual ~Airavata_addGateway_result() throw();
+  std::string success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_addGateway_result__isset __isset;
+
+  void __set_success(const std::string& val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_addGateway_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_addGateway_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_addGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addGateway_presult__isset {
+  _Airavata_addGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_addGateway_presult__isset;
+
+class Airavata_addGateway_presult {
+ public:
+
+
+  virtual ~Airavata_addGateway_presult() throw();
+  std::string* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_addGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_updateGateway_args {
+ public:
+
+  Airavata_updateGateway_args(const Airavata_updateGateway_args&);
+  Airavata_updateGateway_args& operator=(const Airavata_updateGateway_args&);
+  Airavata_updateGateway_args() : gatewayId() {
+  }
+
+  virtual ~Airavata_updateGateway_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayId;
+   ::apache::airavata::model::workspace::Gateway updatedGateway;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  void __set_updatedGateway(const  ::apache::airavata::model::workspace::Gateway& val);
+
+  bool operator == (const Airavata_updateGateway_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    if (!(updatedGateway == rhs.updatedGateway))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateGateway_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGateway_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_updateGateway_pargs {
+ public:
+
+
+  virtual ~Airavata_updateGateway_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayId;
+  const  ::apache::airavata::model::workspace::Gateway* updatedGateway;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateGateway_result__isset {
+  _Airavata_updateGateway_result__isset() : ire(false), ace(false), ase(false), ae(false) {}
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateGateway_result__isset;
+
+class Airavata_updateGateway_result {
+ public:
+
+  Airavata_updateGateway_result(const Airavata_updateGateway_result&);
+  Airavata_updateGateway_result& operator=(const Airavata_updateGateway_result&);
+  Airavata_updateGateway_result() {
+  }
+
+  virtual ~Airavata_updateGateway_result() throw();
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateGateway_result__isset __isset;
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_updateGateway_result & rhs) const
+  {
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateGateway_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateGateway_presult__isset {
+  _Airavata_updateGateway_presult__isset() : ire(false), ace(false), ase(false), ae(false) {}
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateGateway_presult__isset;
+
+class Airavata_updateGateway_presult {
+ public:
+
+
+  virtual ~Airavata_updateGateway_presult() throw();
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getGateway_args {
+ public:
+
+  Airavata_getGateway_args(const Airavata_getGateway_args&);
+  Airavata_getGateway_args& operator=(const Airavata_getGateway_args&);
+  Airavata_getGateway_args() : gatewayId() {
+  }
+
+  virtual ~Airavata_getGateway_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_getGateway_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getGateway_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getGateway_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getGateway_pargs {
+ public:
+
+
+  virtual ~Airavata_getGateway_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getGateway_result__isset {
+  _Airavata_getGateway_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getGateway_result__isset;
+
+class Airavata_getGateway_result {
+ public:
+
+  Airavata_getGateway_result(const Airavata_getGateway_result&);
+  Airavata_getGateway_result& operator=(const Airavata_getGateway_result&);
+  Airavata_getGateway_result() {
+  }
+
+  virtual ~Airavata_getGateway_result() throw();
+   ::apache::airavata::model::workspace::Gateway success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getGateway_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::workspace::Gateway& val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getGateway_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getGateway_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getGateway_presult__isset {
+  _Airavata_getGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getGateway_presult__isset;
+
+class Airavata_getGateway_presult {
+ public:
+
+
+  virtual ~Airavata_getGateway_presult() throw();
+   ::apache::airavata::model::workspace::Gateway* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_deleteGateway_args {
+ public:
+
+  Airavata_deleteGateway_args(const Airavata_deleteGateway_args&);
+  Airavata_deleteGateway_args& operator=(const Airavata_deleteGateway_args&);
+  Airavata_deleteGateway_args() : gatewayId() {
+  }
+
+  virtual ~Airavata_deleteGateway_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_deleteGateway_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteGateway_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteGateway_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_deleteGateway_pargs {
+ public:
+
+
+  virtual ~Airavata_deleteGateway_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteGateway_result__isset {
+  _Airavata_deleteGateway_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteGateway_result__isset;
+
+class Airavata_deleteGateway_result {
+ public:
+
+  Airavata_deleteGateway_result(const Airavata_deleteGateway_result&);
+  Airavata_deleteGateway_result& operator=(const Airavata_deleteGateway_result&);
+  Airavata_deleteGateway_result() : success(0) {
+  }
+
+  virtual ~Airavata_deleteGateway_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteGateway_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_deleteGateway_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteGateway_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteGateway_presult__isset {
+  _Airavata_deleteGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteGateway_presult__isset;
+
+class Airavata_deleteGateway_presult {
+ public:
+
+
+  virtual ~Airavata_deleteGateway_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getAllGateways_args {
+ public:
+
+  Airavata_getAllGateways_args(const Airavata_getAllGateways_args&);
+  Airavata_getAllGateways_args& operator=(const Airavata_getAllGateways_args&);
+  Airavata_getAllGateways_args() {
+  }
+
+  virtual ~Airavata_getAllGateways_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  bool operator == (const Airavata_getAllGateways_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllGateways_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGateways_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAllGateways_pargs {
+ public:
+
+
+  virtual ~Airavata_getAllGateways_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllGateways_result__isset {
+  _Airavata_getAllGateways_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllGateways_result__isset;
+
+class Airavata_getAllGateways_result {
+ public:
+
+  Airavata_getAllGateways_result(const Airavata_getAllGateways_result&);
+  Airavata_getAllGateways_result& operator=(const Airavata_getAllGateways_result&);
+  Airavata_getAllGateways_result() {
+  }
+
+  virtual ~Airavata_getAllGateways_result() throw();
+  std::vector< ::apache::airavata::model::workspace::Gateway>  success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllGateways_result__isset __isset;
+
+  void __set_success(const std::vector< ::apache::airavata::model::workspace::Gateway> & val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getAllGateways_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllGateways_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGateways_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllGateways_presult__isset {
+  _Airavata_getAllGateways_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllGateways_presult__isset;
+
+class Airavata_getAllGateways_presult {
+ public:
+
+
+  virtual ~Airavata_getAllGateways_presult() throw();
+  std::vector< ::apache::airavata::model::workspace::Gateway> * success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllGateways_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_isGatewayExist_args {
+ public:
+
+  Airavata_isGatewayExist_args(const Airavata_isGatewayExist_args&);
+  Airavata_isGatewayExist_args& operator=(const Airavata_isGatewayExist_args&);
+  Airavata_isGatewayExist_args() : gatewayId() {
+  }
+
+  virtual ~Airavata_isGatewayExist_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_isGatewayExist_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_isGatewayExist_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_isGatewayExist_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_isGatewayExist_pargs {
+ public:
+
+
+  virtual ~Airavata_isGatewayExist_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_isGatewayExist_result__isset {
+  _Airavata_isGatewayExist_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_isGatewayExist_result__isset;
+
+class Airavata_isGatewayExist_result {
+ public:
+
+  Airavata_isGatewayExist_result(const Airavata_isGatewayExist_result&);
+  Airavata_isGatewayExist_result& operator=(const Airavata_isGatewayExist_result&);
+  Airavata_isGatewayExist_result() : success(0) {
+  }
+
+  virtual ~Airavata_isGatewayExist_result() throw();
+  bool success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_addGateway_result__isset __isset;
+  _Airavata_isGatewayExist_result__isset __isset;
 
-  void __set_success(const std::string& val);
+  void __set_success(const bool val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -3469,7 +4169,7 @@ class Airavata_addGateway_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_addGateway_result & rhs) const
+  bool operator == (const Airavata_isGatewayExist_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -3483,78 +4183,73 @@ class Airavata_addGateway_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_addGateway_result &rhs) const {
+  bool operator != (const Airavata_isGatewayExist_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_addGateway_result & ) const;
+  bool operator < (const Airavata_isGatewayExist_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_addGateway_presult__isset {
-  _Airavata_addGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_isGatewayExist_presult__isset {
+  _Airavata_isGatewayExist_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_addGateway_presult__isset;
+} _Airavata_isGatewayExist_presult__isset;
 
-class Airavata_addGateway_presult {
+class Airavata_isGatewayExist_presult {
  public:
 
 
-  virtual ~Airavata_addGateway_presult() throw();
-  std::string* success;
+  virtual ~Airavata_isGatewayExist_presult() throw();
+  bool* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_addGateway_presult__isset __isset;
+  _Airavata_isGatewayExist_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
 };
 
 
-class Airavata_updateGateway_args {
+class Airavata_createNotification_args {
  public:
 
-  Airavata_updateGateway_args(const Airavata_updateGateway_args&);
-  Airavata_updateGateway_args& operator=(const Airavata_updateGateway_args&);
-  Airavata_updateGateway_args() : gatewayId() {
+  Airavata_createNotification_args(const Airavata_createNotification_args&);
+  Airavata_createNotification_args& operator=(const Airavata_createNotification_args&);
+  Airavata_createNotification_args() {
   }
 
-  virtual ~Airavata_updateGateway_args() throw();
+  virtual ~Airavata_createNotification_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
-  std::string gatewayId;
-   ::apache::airavata::model::workspace::Gateway updatedGateway;
+   ::apache::airavata::model::workspace::Notification notification;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  void __set_gatewayId(const std::string& val);
-
-  void __set_updatedGateway(const  ::apache::airavata::model::workspace::Gateway& val);
+  void __set_notification(const  ::apache::airavata::model::workspace::Notification& val);
 
-  bool operator == (const Airavata_updateGateway_args & rhs) const
+  bool operator == (const Airavata_createNotification_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
-    if (!(gatewayId == rhs.gatewayId))
-      return false;
-    if (!(updatedGateway == rhs.updatedGateway))
+    if (!(notification == rhs.notification))
       return false;
     return true;
   }
-  bool operator != (const Airavata_updateGateway_args &rhs) const {
+  bool operator != (const Airavata_createNotification_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_updateGateway_args & ) const;
+  bool operator < (const Airavata_createNotification_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -3562,42 +4257,45 @@ class Airavata_updateGateway_args {
 };
 
 
-class Airavata_updateGateway_pargs {
+class Airavata_createNotification_pargs {
  public:
 
 
-  virtual ~Airavata_updateGateway_pargs() throw();
+  virtual ~Airavata_createNotification_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
-  const std::string* gatewayId;
-  const  ::apache::airavata::model::workspace::Gateway* updatedGateway;
+  const  ::apache::airavata::model::workspace::Notification* notification;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_updateGateway_result__isset {
-  _Airavata_updateGateway_result__isset() : ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_createNotification_result__isset {
+  _Airavata_createNotification_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_updateGateway_result__isset;
+} _Airavata_createNotification_result__isset;
 
-class Airavata_updateGateway_result {
+class Airavata_createNotification_result {
  public:
 
-  Airavata_updateGateway_result(const Airavata_updateGateway_result&);
-  Airavata_updateGateway_result& operator=(const Airavata_updateGateway_result&);
-  Airavata_updateGateway_result() {
+  Airavata_createNotification_result(const Airavata_createNotification_result&);
+  Airavata_createNotification_result& operator=(const Airavata_createNotification_result&);
+  Airavata_createNotification_result() : success() {
   }
 
-  virtual ~Airavata_updateGateway_result() throw();
+  virtual ~Airavata_createNotification_result() throw();
+  std::string success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_updateGateway_result__isset __isset;
+  _Airavata_createNotification_result__isset __isset;
+
+  void __set_success(const std::string& val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -3607,8 +4305,10 @@ class Airavata_updateGateway_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_updateGateway_result & rhs) const
+  bool operator == (const Airavata_createNotification_result & rhs) const
   {
+    if (!(success == rhs.success))
+      return false;
     if (!(ire == rhs.ire))
       return false;
     if (!(ace == rhs.ace))
@@ -3619,71 +4319,73 @@ class Airavata_updateGateway_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_updateGateway_result &rhs) const {
+  bool operator != (const Airavata_createNotification_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_updateGateway_result & ) const;
+  bool operator < (const Airavata_createNotification_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_updateGateway_presult__isset {
-  _Airavata_updateGateway_presult__isset() : ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_createNotification_presult__isset {
+  _Airavata_createNotification_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_updateGateway_presult__isset;
+} _Airavata_createNotification_presult__isset;
 
-class Airavata_updateGateway_presult {
+class Airavata_createNotification_presult {
  public:
 
 
-  virtual ~Airavata_updateGateway_presult() throw();
+  virtual ~Airavata_createNotification_presult() throw();
+  std::string* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_updateGateway_presult__isset __isset;
+  _Airavata_createNotification_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
 };
 
 
-class Airavata_getGateway_args {
+class Airavata_updateNotification_args {
  public:
 
-  Airavata_getGateway_args(const Airavata_getGateway_args&);
-  Airavata_getGateway_args& operator=(const Airavata_getGateway_args&);
-  Airavata_getGateway_args() : gatewayId() {
+  Airavata_updateNotification_args(const Airavata_updateNotification_args&);
+  Airavata_updateNotification_args& operator=(const Airavata_updateNotification_args&);
+  Airavata_updateNotification_args() {
   }
 
-  virtual ~Airavata_getGateway_args() throw();
+  virtual ~Airavata_updateNotification_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
-  std::string gatewayId;
+   ::apache::airavata::model::workspace::Notification notification;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  void __set_gatewayId(const std::string& val);
+  void __set_notification(const  ::apache::airavata::model::workspace::Notification& val);
 
-  bool operator == (const Airavata_getGateway_args & rhs) const
+  bool operator == (const Airavata_updateNotification_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
-    if (!(gatewayId == rhs.gatewayId))
+    if (!(notification == rhs.notification))
       return false;
     return true;
   }
-  bool operator != (const Airavata_getGateway_args &rhs) const {
+  bool operator != (const Airavata_updateNotification_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getGateway_args & ) const;
+  bool operator < (const Airavata_updateNotification_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -3691,45 +4393,41 @@ class Airavata_getGateway_args {
 };
 
 
-class Airavata_getGateway_pargs {
+class Airavata_updateNotification_pargs {
  public:
 
 
-  virtual ~Airavata_getGateway_pargs() throw();
+  virtual ~Airavata_updateNotification_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
-  const std::string* gatewayId;
+  const  ::apache::airavata::model::workspace::Notification* notification;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_getGateway_result__isset {
-  _Airavata_getGateway_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
-  bool success :1;
+typedef struct _Airavata_updateNotification_result__isset {
+  _Airavata_updateNotification_result__isset() : ire(false), ace(false), ase(false), ae(false) {}
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_getGateway_result__isset;
+} _Airavata_updateNotification_result__isset;
 
-class Airavata_getGateway_result {
+class Airavata_updateNotification_result {
  public:
 
-  Airavata_getGateway_result(const Airavata_getGateway_result&);
-  Airavata_getGateway_result& operator=(const Airavata_getGateway_result&);
-  Airavata_getGateway_result() {
+  Airavata_updateNotification_result(const Airavata_updateNotification_result&);
+  Airavata_updateNotification_result& operator=(const Airavata_updateNotification_result&);
+  Airavata_updateNotification_result() {
   }
 
-  virtual ~Airavata_getGateway_result() throw();
-   ::apache::airavata::model::workspace::Gateway success;
+  virtual ~Airavata_updateNotification_result() throw();
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_getGateway_result__isset __isset;
-
-  void __set_success(const  ::apache::airavata::model::workspace::Gateway& val);
+  _Airavata_updateNotification_result__isset __isset;
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -3739,10 +4437,8 @@ class Airavata_getGateway_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_getGateway_result & rhs) const
+  bool operator == (const Airavata_updateNotification_result & rhs) const
   {
-    if (!(success == rhs.success))
-      return false;
     if (!(ire == rhs.ire))
       return false;
     if (!(ace == rhs.ace))
@@ -3753,73 +4449,76 @@ class Airavata_getGateway_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_getGateway_result &rhs) const {
+  bool operator != (const Airavata_updateNotification_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getGateway_result & ) const;
+  bool operator < (const Airavata_updateNotification_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_getGateway_presult__isset {
-  _Airavata_getGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
-  bool success :1;
+typedef struct _Airavata_updateNotification_presult__isset {
+  _Airavata_updateNotification_presult__isset() : ire(false), ace(false), ase(false), ae(false) {}
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_getGateway_presult__isset;
+} _Airavata_updateNotification_presult__isset;
 
-class Airavata_getGateway_presult {
+class Airavata_updateNotification_presult {
  public:
 
 
-  virtual ~Airavata_getGateway_presult() throw();
-   ::apache::airavata::model::workspace::Gateway* success;
+  virtual ~Airavata_updateNotification_presult() throw();
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_getGateway_presult__isset __isset;
+  _Airavata_updateNotification_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
 };
 
 
-class Airavata_deleteGateway_args {
+class Airavata_deleteNotification_args {
  public:
 
-  Airavata_deleteGateway_args(const Airavata_deleteGateway_args&);
-  Airavata_deleteGateway_args& operator=(const Airavata_deleteGateway_args&);
-  Airavata_deleteGateway_args() : gatewayId() {
+  Airavata_deleteNotification_args(const Airavata_deleteNotification_args&);
+  Airavata_deleteNotification_args& operator=(const Airavata_deleteNotification_args&);
+  Airavata_deleteNotification_args() : gatewayId(), notificationId() {
   }
 
-  virtual ~Airavata_deleteGateway_args() throw();
+  virtual ~Airavata_deleteNotification_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
   std::string gatewayId;
+  std::string notificationId;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
   void __set_gatewayId(const std::string& val);
 
-  bool operator == (const Airavata_deleteGateway_args & rhs) const
+  void __set_notificationId(const std::string& val);
+
+  bool operator == (const Airavata_deleteNotification_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
     if (!(gatewayId == rhs.gatewayId))
       return false;
+    if (!(notificationId == rhs.notificationId))
+      return false;
     return true;
   }
-  bool operator != (const Airavata_deleteGateway_args &rhs) const {
+  bool operator != (const Airavata_deleteNotification_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_deleteGateway_args & ) const;
+  bool operator < (const Airavata_deleteNotification_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -3827,45 +4526,42 @@ class Airavata_deleteGateway_args {
 };
 
 
-class Airavata_deleteGateway_pargs {
+class Airavata_deleteNotification_pargs {
  public:
 
 
-  virtual ~Airavata_deleteGateway_pargs() throw();
+  virtual ~Airavata_deleteNotification_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const std::string* gatewayId;
+  const std::string* notificationId;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_deleteGateway_result__isset {
-  _Airavata_deleteGateway_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
-  bool success :1;
+typedef struct _Airavata_deleteNotification_result__isset {
+  _Airavata_deleteNotification_result__isset() : ire(false), ace(false), ase(false), ae(false) {}
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_deleteGateway_result__isset;
+} _Airavata_deleteNotification_result__isset;
 
-class Airavata_deleteGateway_result {
+class Airavata_deleteNotification_result {
  public:
 
-  Airavata_deleteGateway_result(const Airavata_deleteGateway_result&);
-  Airavata_deleteGateway_result& operator=(const Airavata_deleteGateway_result&);
-  Airavata_deleteGateway_result() : success(0) {
+  Airavata_deleteNotification_result(const Airavata_deleteNotification_result&);
+  Airavata_deleteNotification_result& operator=(const Airavata_deleteNotification_result&);
+  Airavata_deleteNotification_result() {
   }
 
-  virtual ~Airavata_deleteGateway_result() throw();
-  bool success;
+  virtual ~Airavata_deleteNotification_result() throw();
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_deleteGateway_result__isset __isset;
-
-  void __set_success(const bool val);
+  _Airavata_deleteNotification_result__isset __isset;
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -3875,10 +4571,8 @@ class Airavata_deleteGateway_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_deleteGateway_result & rhs) const
+  bool operator == (const Airavata_deleteNotification_result & rhs) const
   {
-    if (!(success == rhs.success))
-      return false;
     if (!(ire == rhs.ire))
       return false;
     if (!(ace == rhs.ace))
@@ -3889,68 +4583,76 @@ class Airavata_deleteGateway_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_deleteGateway_result &rhs) const {
+  bool operator != (const Airavata_deleteNotification_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_deleteGateway_result & ) const;
+  bool operator < (const Airavata_deleteNotification_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_deleteGateway_presult__isset {
-  _Airavata_deleteGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
-  bool success :1;
+typedef struct _Airavata_deleteNotification_presult__isset {
+  _Airavata_deleteNotification_presult__isset() : ire(false), ace(false), ase(false), ae(false) {}
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_deleteGateway_presult__isset;
+} _Airavata_deleteNotification_presult__isset;
 
-class Airavata_deleteGateway_presult {
+class Airavata_deleteNotification_presult {
  public:
 
 
-  virtual ~Airavata_deleteGateway_presult() throw();
-  bool* success;
+  virtual ~Airavata_deleteNotification_presult() throw();
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_deleteGateway_presult__isset __isset;
+  _Airavata_deleteNotification_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
 };
 
 
-class Airavata_getAllGateways_args {
+class Airavata_getNotification_args {
  public:
 
-  Airavata_getAllGateways_args(const Airavata_getAllGateways_args&);
-  Airavata_getAllGateways_args& operator=(const Airavata_getAllGateways_args&);
-  Airavata_getAllGateways_args() {
+  Airavata_getNotification_args(const Airavata_getNotification_args&);
+  Airavata_getNotification_args& operator=(const Airavata_getNotification_args&);
+  Airavata_getNotification_args() : gatewayId(), notificationId() {
   }
 
-  virtual ~Airavata_getAllGateways_args() throw();
+  virtual ~Airavata_getNotification_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayId;
+  std::string notificationId;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  bool operator == (const Airavata_getAllGateways_args & rhs) const
+  void __set_gatewayId(const std::string& val);
+
+  void __set_notificationId(const std::string& val);
+
+  bool operator == (const Airavata_getNotification_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    if (!(notificationId == rhs.notificationId))
+      return false;
     return true;
   }
-  bool operator != (const Airavata_getAllGateways_args &rhs) const {
+  bool operator != (const Airavata_getNotification_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAllGateways_args & ) const;
+  bool operator < (const Airavata_getNotification_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -3958,44 +4660,46 @@ class Airavata_getAllGateways_args {
 };
 
 
-class Airavata_getAllGateways_pargs {
+class Airavata_getNotification_pargs {
  public:
 
 
-  virtual ~Airavata_getAllGateways_pargs() throw();
+  virtual ~Airavata_getNotification_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayId;
+  const std::string* notificationId;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_getAllGateways_result__isset {
-  _Airavata_getAllGateways_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getNotification_result__isset {
+  _Airavata_getNotification_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_getAllGateways_result__isset;
+} _Airavata_getNotification_result__isset;
 
-class Airavata_getAllGateways_result {
+class Airavata_getNotification_result {
  public:
 
-  Airavata_getAllGateways_result(const Airavata_getAllGateways_result&);
-  Airavata_getAllGateways_result& operator=(const Airavata_getAllGateways_result&);
-  Airavata_getAllGateways_result() {
+  Airavata_getNotification_result(const Airavata_getNotification_result&);
+  Airavata_getNotification_result& operator=(const Airavata_getNotification_result&);
+  Airavata_getNotification_result() {
   }
 
-  virtual ~Airavata_getAllGateways_result() throw();
-  std::vector< ::apache::airavata::model::workspace::Gateway>  success;
+  virtual ~Airavata_getNotification_result() throw();
+   ::apache::airavata::model::workspace::Notification success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_getAllGateways_result__isset __isset;
+  _Airavata_getNotification_result__isset __isset;
 
-  void __set_success(const std::vector< ::apache::airavata::model::workspace::Gateway> & val);
+  void __set_success(const  ::apache::airavata::model::workspace::Notification& val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -4005,7 +4709,7 @@ class Airavata_getAllGateways_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_getAllGateways_result & rhs) const
+  bool operator == (const Airavata_getNotification_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -4019,53 +4723,53 @@ class Airavata_getAllGateways_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_getAllGateways_result &rhs) const {
+  bool operator != (const Airavata_getNotification_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAllGateways_result & ) const;
+  bool operator < (const Airavata_getNotification_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_getAllGateways_presult__isset {
-  _Airavata_getAllGateways_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getNotification_presult__isset {
+  _Airavata_getNotification_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_getAllGateways_presult__isset;
+} _Airavata_getNotification_presult__isset;
 
-class Airavata_getAllGateways_presult {
+class Airavata_getNotification_presult {
  public:
 
 
-  virtual ~Airavata_getAllGateways_presult() throw();
-  std::vector< ::apache::airavata::model::workspace::Gateway> * success;
+  virtual ~Airavata_getNotification_presult() throw();
+   ::apache::airavata::model::workspace::Notification* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_getAllGateways_presult__isset __isset;
+  _Airavata_getNotification_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
 };
 
 
-class Airavata_isGatewayExist_args {
+class Airavata_getAllNotifications_args {
  public:
 
-  Airavata_isGatewayExist_args(const Airavata_isGatewayExist_args&);
-  Airavata_isGatewayExist_args& operator=(const Airavata_isGatewayExist_args&);
-  Airavata_isGatewayExist_args() : gatewayId() {
+  Airavata_getAllNotifications_args(const Airavata_getAllNotifications_args&);
+  Airavata_getAllNotifications_args& operator=(const Airavata_getAllNotifications_args&);
+  Airavata_getAllNotifications_args() : gatewayId() {
   }
 
-  virtual ~Airavata_isGatewayExist_args() throw();
+  virtual ~Airavata_getAllNotifications_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
   std::string gatewayId;
 
@@ -4073,7 +4777,7 @@ class Airavata_isGatewayExist_args {
 
   void __set_gatewayId(const std::string& val);
 
-  bool operator == (const Airavata_isGatewayExist_args & rhs) const
+  bool operator == (const Airavata_getAllNotifications_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
@@ -4081,11 +4785,11 @@ class Airavata_isGatewayExist_args {
       return false;
     return true;
   }
-  bool operator != (const Airavata_isGatewayExist_args &rhs) const {
+  bool operator != (const Airavata_getAllNotifications_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_isGatewayExist_args & ) const;
+  bool operator < (const Airavata_getAllNotifications_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -4093,11 +4797,11 @@ class Airavata_isGatewayExist_args {
 };
 
 
-class Airavata_isGatewayExist_pargs {
+class Airavata_getAllNotifications_pargs {
  public:
 
 
-  virtual ~Airavata_isGatewayExist_pargs() throw();
+  virtual ~Airavata_getAllNotifications_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const std::string* gatewayId;
 
@@ -4105,33 +4809,33 @@ class Airavata_isGatewayExist_pargs {
 
 };
 
-typedef struct _Airavata_isGatewayExist_result__isset {
-  _Airavata_isGatewayExist_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getAllNotifications_result__isset {
+  _Airavata_getAllNotifications_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_isGatewayExist_result__isset;
+} _Airavata_getAllNotifications_result__isset;
 
-class Airavata_isGatewayExist_result {
+class Airavata_getAllNotifications_result {
  public:
 
-  Airavata_isGatewayExist_result(const Airavata_isGatewayExist_result&);
-  Airavata_isGatewayExist_result& operator=(const Airavata_isGatewayExist_result&);
-  Airavata_isGatewayExist_result() : success(0) {
+  Airavata_getAllNotifications_result(const Airavata_getAllNotifications_result&);
+  Airavata_getAllNotifications_result& operator=(const Airavata_getAllNotifications_result&);
+  Airavata_getAllNotifications_result() {
   }
 
-  virtual ~Airavata_isGatewayExist_result() throw();
-  bool success;
+  virtual ~Airavata_getAllNotifications_result() throw();
+  std::vector< ::apache::airavata::model::workspace::Notification>  success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_isGatewayExist_result__isset __isset;
+  _Airavata_getAllNotifications_result__isset __isset;
 
-  void __set_success(const bool val);
+  void __set_success(const std::vector< ::apache::airavata::model::workspace::Notification> & val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -4141,7 +4845,7 @@ class Airavata_isGatewayExist_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_isGatewayExist_result & rhs) const
+  bool operator == (const Airavata_getAllNotifications_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -4155,38 +4859,38 @@ class Airavata_isGatewayExist_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_isGatewayExist_result &rhs) const {
+  bool operator != (const Airavata_getAllNotifications_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_isGatewayExist_result & ) const;
+  bool operator < (const Airavata_getAllNotifications_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_isGatewayExist_presult__isset {
-  _Airavata_isGatewayExist_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_getAllNotifications_presult__isset {
+  _Airavata_getAllNotifications_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_isGatewayExist_presult__isset;
+} _Airavata_getAllNotifications_presult__isset;
 
-class Airavata_isGatewayExist_presult {
+class Airavata_getAllNotifications_presult {
  public:
 
 
-  virtual ~Airavata_isGatewayExist_presult() throw();
-  bool* success;
+  virtual ~Airavata_getAllNotifications_presult() throw();
+  std::vector< ::apache::airavata::model::workspace::Notification> * success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_isGatewayExist_presult__isset __isset;
+  _Airavata_getAllNotifications_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
@@ -22745,6 +23449,21 @@ class AiravataClient : virtual public AiravataIf {
   bool isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
   void send_isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
   bool recv_isGatewayExist();
+  void createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void send_createNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void recv_createNotification(std::string& _return);
+  void updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void send_updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void recv_updateNotification();
+  void deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void send_deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void recv_deleteNotification();
+  void getNotification( ::apache::airavata::model::workspace::Notification& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void send_getNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void recv_getNotification( ::apache::airavata::model::workspace::Notification& _return);
+  void getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_getAllNotifications(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void recv_getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return);
   void generateAndRegisterSSHKeys(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName);
   void send_generateAndRegisterSSHKeys(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName);
   void recv_generateAndRegisterSSHKeys(std::string& _return);
@@ -23161,6 +23880,11 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
   void process_deleteGateway(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getAllGateways(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_isGatewayExist(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_createNotification(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_updateNotification(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_deleteNotification(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getNotification(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getAllNotifications(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_generateAndRegisterSSHKeys(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getSSHPubKey(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getAllUserSSHPubKeys(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
@@ -23303,6 +24027,11 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
     processMap_["deleteGateway"] = &AiravataProcessor::process_deleteGateway;
     processMap_["getAllGateways"] = &AiravataProcessor::process_getAllGateways;
     processMap_["isGatewayExist"] = &AiravataProcessor::process_isGatewayExist;
+    processMap_["createNotification"] = &AiravataProcessor::process_createNotification;
+    processMap_["updateNotification"] = &AiravataProcessor::process_updateNotification;
+    processMap_["deleteNotification"] = &AiravataProcessor::process_deleteNotification;
+    processMap_["getNotification"] = &AiravataProcessor::process_getNotification;
+    processMap_["getAllNotifications"] = &AiravataProcessor::process_getAllNotifications;
     processMap_["generateAndRegisterSSHKeys"] = &AiravataProcessor::process_generateAndRegisterSSHKeys;
     processMap_["getSSHPubKey"] = &AiravataProcessor::process_getSSHPubKey;
     processMap_["getAllUserSSHPubKeys"] = &AiravataProcessor::process_getAllUserSSHPubKeys;
@@ -23538,6 +24267,54 @@ class AiravataMultiface : virtual public AiravataIf {
     return ifaces_[i]->isGatewayExist(authzToken, gatewayId);
   }
 
+  void createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->createNotification(_return, authzToken, notification);
+    }
+    ifaces_[i]->createNotification(_return, authzToken, notification);
+    return;
+  }
+
+  void updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->updateNotification(authzToken, notification);
+    }
+    ifaces_[i]->updateNotification(authzToken, notification);
+  }
+
+  void deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->deleteNotification(authzToken, gatewayId, notificationId);
+    }
+    ifaces_[i]->deleteNotification(authzToken, gatewayId, notificationId);
+  }
+
+  void getNotification( ::apache::airavata::model::workspace::Notification& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getNotification(_return, authzToken, gatewayId, notificationId);
+    }
+    ifaces_[i]->getNotification(_return, authzToken, gatewayId, notificationId);
+    return;
+  }
+
+  void getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getAllNotifications(_return, authzToken, gatewayId);
+    }
+    ifaces_[i]->getAllNotifications(_return, authzToken, gatewayId);
+    return;
+  }
+
   void generateAndRegisterSSHKeys(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName) {
     size_t sz = ifaces_.size();
     size_t i = 0;
@@ -24854,6 +25631,21 @@ class AiravataConcurrentClient : virtual public AiravataIf {
   bool isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
   int32_t send_isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
   bool recv_isGatewayExist(const int32_t seqid);
+  void createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  int32_t send_createNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void recv_createNotification(std::string& _return, const int32_t seqid);
+  void updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  int32_t send_updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void recv_updateNotification(const int32_t seqid);
+  void deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  int32_t send_deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void recv_deleteNotification(const int32_t seqid);
+  void getNotification( ::apache::airavata::model::workspace::Notification& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  int32_t send_getNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void recv_getNotification( ::apache::airavata::model::workspace::Notification& _return, const int32_t seqid);
+  void getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  int32_t send_getAllNotifications(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void recv_getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const int32_t seqid);
   void generateAndRegisterSSHKeys(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName);
   int32_t send_generateAndRegisterSSHKeys(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName);
   void recv_generateAndRegisterSSHKeys(std::string& _return, const int32_t seqid);

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index bc63cc3..ba4e2d8 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -183,6 +183,38 @@ class AiravataHandler : virtual public AiravataIf {
   }
 
   /**
+   *   * API methods to retrieve notifications
+   * *
+   * 
+   * @param authzToken
+   * @param notification
+   */
+  void createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification) {
+    // Your implementation goes here
+    printf("createNotification\n");
+  }
+
+  void updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification) {
+    // Your implementation goes here
+    printf("updateNotification\n");
+  }
+
+  void deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId) {
+    // Your implementation goes here
+    printf("deleteNotification\n");
+  }
+
+  void getNotification( ::apache::airavata::model::workspace::Notification& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId) {
+    // Your implementation goes here
+    printf("getNotification\n");
+  }
+
+  void getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) {
+    // Your implementation goes here
+    printf("getAllNotifications\n");
+  }
+
+  /**
    * Generate and Register SSH Key Pair with Airavata Credential Store.
    * 
    * @param gatewayId

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.cpp
index cb74008..e45f171 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.cpp
@@ -690,4 +690,205 @@ void Gateway::printTo(std::ostream& out) const {
   out << ")";
 }
 
+
+Notification::~Notification() throw() {
+}
+
+
+void Notification::__set_notificationId(const std::string& val) {
+  this->notificationId = val;
+__isset.notificationId = true;
+}
+
+void Notification::__set_gatewayId(const std::string& val) {
+  this->gatewayId = val;
+}
+
+void Notification::__set_title(const std::string& val) {
+  this->title = val;
+}
+
+void Notification::__set_notifcationMessage(const std::string& val) {
+  this->notifcationMessage = val;
+}
+
+void Notification::__set_publishedtime(const int64_t val) {
+  this->publishedtime = val;
+__isset.publishedtime = true;
+}
+
+void Notification::__set_expirationTime(const int64_t val) {
+  this->expirationTime = val;
+__isset.expirationTime = true;
+}
+
+uint32_t Notification::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_gatewayId = false;
+  bool isset_title = false;
+  bool isset_notifcationMessage = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->notificationId);
+          this->__isset.notificationId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->title);
+          isset_title = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->notifcationMessage);
+          isset_notifcationMessage = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->publishedtime);
+          this->__isset.publishedtime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->expirationTime);
+          this->__isset.expirationTime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_gatewayId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_title)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_notifcationMessage)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Notification::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Notification");
+
+  if (this->__isset.notificationId) {
+    xfer += oprot->writeFieldBegin("notificationId", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeString(this->notificationId);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("title", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->title);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("notifcationMessage", ::apache::thrift::protocol::T_STRING, 4);
+  xfer += oprot->writeString(this->notifcationMessage);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.publishedtime) {
+    xfer += oprot->writeFieldBegin("publishedtime", ::apache::thrift::protocol::T_I64, 5);
+    xfer += oprot->writeI64(this->publishedtime);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.expirationTime) {
+    xfer += oprot->writeFieldBegin("expirationTime", ::apache::thrift::protocol::T_I64, 6);
+    xfer += oprot->writeI64(this->expirationTime);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(Notification &a, Notification &b) {
+  using ::std::swap;
+  swap(a.notificationId, b.notificationId);
+  swap(a.gatewayId, b.gatewayId);
+  swap(a.title, b.title);
+  swap(a.notifcationMessage, b.notifcationMessage);
+  swap(a.publishedtime, b.publishedtime);
+  swap(a.expirationTime, b.expirationTime);
+  swap(a.__isset, b.__isset);
+}
+
+Notification::Notification(const Notification& other26) {
+  notificationId = other26.notificationId;
+  gatewayId = other26.gatewayId;
+  title = other26.title;
+  notifcationMessage = other26.notifcationMessage;
+  publishedtime = other26.publishedtime;
+  expirationTime = other26.expirationTime;
+  __isset = other26.__isset;
+}
+Notification& Notification::operator=(const Notification& other27) {
+  notificationId = other27.notificationId;
+  gatewayId = other27.gatewayId;
+  title = other27.title;
+  notifcationMessage = other27.notifcationMessage;
+  publishedtime = other27.publishedtime;
+  expirationTime = other27.expirationTime;
+  __isset = other27.__isset;
+  return *this;
+}
+void Notification::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "Notification(";
+  out << "notificationId="; (__isset.notificationId ? (out << to_string(notificationId)) : (out << "<null>"));
+  out << ", " << "gatewayId=" << to_string(gatewayId);
+  out << ", " << "title=" << to_string(title);
+  out << ", " << "notifcationMessage=" << to_string(notifcationMessage);
+  out << ", " << "publishedtime="; (__isset.publishedtime ? (out << to_string(publishedtime)) : (out << "<null>"));
+  out << ", " << "expirationTime="; (__isset.expirationTime ? (out << to_string(expirationTime)) : (out << "<null>"));
+  out << ")";
+}
+
 }}}} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.h
index 4e624af..121b181 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspace_model_types.h
@@ -45,6 +45,8 @@ class User;
 
 class Gateway;
 
+class Notification;
+
 typedef struct _Group__isset {
   _Group__isset() : description(false) {}
   bool description :1;
@@ -307,6 +309,85 @@ inline std::ostream& operator<<(std::ostream& out, const Gateway& obj)
   return out;
 }
 
+typedef struct _Notification__isset {
+  _Notification__isset() : notificationId(false), publishedtime(false), expirationTime(false) {}
+  bool notificationId :1;
+  bool publishedtime :1;
+  bool expirationTime :1;
+} _Notification__isset;
+
+class Notification {
+ public:
+
+  Notification(const Notification&);
+  Notification& operator=(const Notification&);
+  Notification() : notificationId(), gatewayId(), title(), notifcationMessage(), publishedtime(0), expirationTime(0) {
+  }
+
+  virtual ~Notification() throw();
+  std::string notificationId;
+  std::string gatewayId;
+  std::string title;
+  std::string notifcationMessage;
+  int64_t publishedtime;
+  int64_t expirationTime;
+
+  _Notification__isset __isset;
+
+  void __set_notificationId(const std::string& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  void __set_title(const std::string& val);
+
+  void __set_notifcationMessage(const std::string& val);
+
+  void __set_publishedtime(const int64_t val);
+
+  void __set_expirationTime(const int64_t val);
+
+  bool operator == (const Notification & rhs) const
+  {
+    if (__isset.notificationId != rhs.__isset.notificationId)
+      return false;
+    else if (__isset.notificationId && !(notificationId == rhs.notificationId))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    if (!(title == rhs.title))
+      return false;
+    if (!(notifcationMessage == rhs.notifcationMessage))
+      return false;
+    if (__isset.publishedtime != rhs.__isset.publishedtime)
+      return false;
+    else if (__isset.publishedtime && !(publishedtime == rhs.publishedtime))
+      return false;
+    if (__isset.expirationTime != rhs.__isset.expirationTime)
+      return false;
+    else if (__isset.expirationTime && !(expirationTime == rhs.expirationTime))
+      return false;
+    return true;
+  }
+  bool operator != (const Notification &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Notification & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(Notification &a, Notification &b);
+
+inline std::ostream& operator<<(std::ostream& out, const Notification& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 }}}} // namespace
 
 #endif


[32/35] airavata git commit: Retry 3 times if jsch channel issue with execute command

Posted by sh...@apache.org.
Retry 3 times if jsch channel issue with execute command


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

Branch: refs/heads/master
Commit: 38c64239e436b619c39416864dca15caea9a854d
Parents: 7781ff8
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 22 15:27:45 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 22 15:27:45 2016 -0400

----------------------------------------------------------------------
 .../airavata/gfac/impl/HPCRemoteCluster.java    | 31 ++++++++++++++------
 1 file changed, 22 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/38c64239/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
index cdd0500..725b6d0 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
@@ -310,18 +310,31 @@ public class HPCRemoteCluster extends AbstractRemoteCluster{
 
 	private void executeCommand(CommandInfo commandInfo, CommandOutput commandOutput) throws SSHApiException {
 		String command = commandInfo.getCommand();
+		int retryCount = 0;
 		ChannelExec channelExec = null;
 		try {
-			session = Factory.getSSHSession(authenticationInfo, serverInfo);
-			channelExec = ((ChannelExec) session.openChannel("exec"));
-			channelExec.setCommand(command);
-		    channelExec.setInputStream(null);
-			channelExec.setErrStream(commandOutput.getStandardError());
-			log.info("Executing command {}", commandInfo.getCommand());
-			channelExec.connect();
-			commandOutput.onOutput(channelExec);
+			while (retryCount < MAX_RETRY_COUNT) {
+				retryCount++;
+				try {
+					session = Factory.getSSHSession(authenticationInfo, serverInfo);
+					channelExec = ((ChannelExec) session.openChannel("exec"));
+					channelExec.setCommand(command);
+					channelExec.setInputStream(null);
+					channelExec.setErrStream(commandOutput.getStandardError());
+					channelExec.connect();
+					log.info("Executing command {}", commandInfo.getCommand());
+					commandOutput.onOutput(channelExec);
+					break; // exit from while loop
+				} catch (JSchException e) {
+					if (retryCount == MAX_RETRY_COUNT) {
+						log.error("Retry count " + MAX_RETRY_COUNT + " exceeded for executing command : " + command, e);
+						throw e;
+					}
+					log.error("Issue with jsch, Retry executing command : " + command, e);
+				}
+			}
 		} catch (JSchException | AiravataException e) {
-			throw new SSHApiException("Unable to execute command - ", e);
+			throw new SSHApiException("Unable to execute command - " + command, e);
 		} finally {
 			//Only disconnecting the channel, session can be reused
 			if (channelExec != null) {


[35/35] airavata git commit: Merge branch 'develop'

Posted by sh...@apache.org.
Merge branch 'develop'


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

Branch: refs/heads/master
Commit: fad21741d1f7c4df2b0d7ee9c7be637a15bd4d8e
Parents: b5bdad1 26fd7c3
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 22 21:57:54 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 22 21:57:54 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |    87 +
 .../handler/AiravataServerHandlerTest.java      |    22 +
 .../java/org/apache/airavata/api/Airavata.java  | 15220 ++++++++++++-----
 .../main/resources/lib/airavata/Airavata.cpp    |  5355 ++++--
 .../src/main/resources/lib/airavata/Airavata.h  |  1172 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    32 +
 .../lib/airavata/scheduling_model_types.cpp     |    66 +
 .../lib/airavata/scheduling_model_types.h       |    28 +-
 .../lib/airavata/workspace_model_types.cpp      |   201 +
 .../lib/airavata/workspace_model_types.h        |    81 +
 .../resources/lib/Airavata/API/Airavata.php     |  3062 +++-
 .../lib/Airavata/Model/Scheduling/Types.php     |    69 +
 .../lib/Airavata/Model/Workspace/Types.php      |   190 +
 .../lib/apache/airavata/api/Airavata-remote     |    35 +
 .../lib/apache/airavata/api/Airavata.py         |  2754 ++-
 .../apache/airavata/model/scheduling/ttypes.py  |    41 +-
 .../apache/airavata/model/workspace/ttypes.py   |   136 +
 .../apache/airavata/model/ComponentStatus.java  |     2 +-
 .../org/apache/airavata/model/EdgeModel.java    |     2 +-
 .../org/apache/airavata/model/NodeModel.java    |     2 +-
 .../org/apache/airavata/model/PortModel.java    |     2 +-
 .../apache/airavata/model/WorkflowModel.java    |     2 +-
 .../apache/airavata/model/WorkflowStatus.java   |     2 +-
 .../ApplicationDeploymentDescription.java       |     2 +-
 .../appdeployment/ApplicationModule.java        |     2 +-
 .../appcatalog/appdeployment/CommandObject.java |     2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |     2 +-
 .../ApplicationInterfaceDescription.java        |     2 +-
 .../appcatalog/computeresource/BatchQueue.java  |     2 +-
 .../computeresource/CloudJobSubmission.java     |     2 +-
 .../ComputeResourceDescription.java             |     2 +-
 .../computeresource/GlobusJobSubmission.java    |     2 +-
 .../computeresource/JobSubmissionInterface.java |     2 +-
 .../computeresource/LOCALSubmission.java        |     2 +-
 .../computeresource/ResourceJobManager.java     |     2 +-
 .../computeresource/SSHJobSubmission.java       |     2 +-
 .../computeresource/UnicoreJobSubmission.java   |     2 +-
 .../ComputeResourcePreference.java              |     2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |     2 +-
 .../gatewayprofile/StoragePreference.java       |     2 +-
 .../StorageResourceDescription.java             |     2 +-
 .../application/io/InputDataObjectType.java     |     2 +-
 .../application/io/OutputDataObjectType.java    |     2 +-
 .../airavata/model/commons/ErrorModel.java      |     2 +-
 .../model/commons/ValidationResults.java        |     2 +-
 .../airavata/model/commons/ValidatorResult.java |     2 +-
 .../data/movement/DataMovementInterface.java    |     2 +-
 .../data/movement/GridFTPDataMovement.java      |     2 +-
 .../model/data/movement/LOCALDataMovement.java  |     2 +-
 .../model/data/movement/SCPDataMovement.java    |     2 +-
 .../data/movement/UnicoreDataMovement.java      |     2 +-
 .../model/data/replica/DataProductModel.java    |     2 +-
 .../data/replica/DataReplicaLocationModel.java  |     2 +-
 .../model/error/AiravataClientException.java    |     2 +-
 .../model/error/AiravataSystemException.java    |     2 +-
 .../model/error/AuthenticationException.java    |     2 +-
 .../model/error/AuthorizationException.java     |     2 +-
 .../error/ExperimentNotFoundException.java      |     2 +-
 .../model/error/InvalidRequestException.java    |     2 +-
 .../model/error/LaunchValidationException.java  |     2 +-
 .../model/error/ProjectNotFoundException.java   |     2 +-
 .../airavata/model/error/TimedOutException.java |     2 +-
 .../airavata/model/error/ValidationResults.java |     2 +-
 .../airavata/model/error/ValidatorResult.java   |     2 +-
 .../model/experiment/ExperimentModel.java       |     2 +-
 .../model/experiment/ExperimentStatistics.java  |     2 +-
 .../experiment/ExperimentSummaryModel.java      |     2 +-
 .../experiment/UserConfigurationDataModel.java  |     2 +-
 .../org/apache/airavata/model/job/JobModel.java |     2 +-
 .../event/ExperimentStatusChangeEvent.java      |     2 +-
 .../model/messaging/event/JobIdentifier.java    |     2 +-
 .../messaging/event/JobStatusChangeEvent.java   |     2 +-
 .../event/JobStatusChangeRequestEvent.java      |     2 +-
 .../airavata/model/messaging/event/Message.java |     2 +-
 .../messaging/event/ProcessIdentifier.java      |     2 +-
 .../event/ProcessStatusChangeEvent.java         |     2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |     2 +-
 .../messaging/event/ProcessSubmitEvent.java     |     2 +-
 .../messaging/event/ProcessTerminateEvent.java  |     2 +-
 .../model/messaging/event/TaskIdentifier.java   |     2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |     2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |     2 +-
 .../event/TaskStatusChangeRequestEvent.java     |     2 +-
 .../airavata/model/process/ProcessModel.java    |     2 +-
 .../ComputationalResourceSchedulingModel.java   |   328 +-
 .../airavata/model/security/AuthzToken.java     |     2 +-
 .../airavata/model/status/ExperimentStatus.java |     2 +-
 .../apache/airavata/model/status/JobStatus.java |     2 +-
 .../airavata/model/status/ProcessStatus.java    |     2 +-
 .../airavata/model/status/TaskStatus.java       |     2 +-
 .../model/task/DataStagingTaskModel.java        |     2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |     2 +-
 .../model/task/JobSubmissionTaskModel.java      |     2 +-
 .../airavata/model/task/MonitorTaskModel.java   |     2 +-
 .../apache/airavata/model/task/TaskModel.java   |     2 +-
 .../airavata/model/workspace/Gateway.java       |     2 +-
 .../apache/airavata/model/workspace/Group.java  |     2 +-
 .../airavata/model/workspace/Notification.java  |   920 +
 .../airavata/model/workspace/Project.java       |     2 +-
 .../apache/airavata/model/workspace/User.java   |     2 +-
 modules/cloud/cloud-provisioning/README         |     7 +
 modules/cloud/cloud-provisioning/pom.xml        |    60 +
 .../airavata/cloud/intf/CloudInterface.java     |    78 +
 .../cloud/intf/impl/OpenstackIntfImpl.java      |   276 +
 .../cloud/openstack/OS4JClientProvider.java     |   117 +
 .../apache/airavata/cloud/util/CloudRef.java    |    40 +
 .../apache/airavata/cloud/util/Constants.java   |    36 +
 .../org/apache/airavata/cloud/util/IPType.java  |    39 +
 .../main/resources/jetstream_openrc.properties  |    33 +
 .../airavata/cloud/test/CloudIntfTest.java      |   131 +
 .../src/test/resources/test_data.properties     |    26 +
 modules/cloud/pom.xml                           |     6 +-
 .../main/resources/airavata-server.properties   |     6 +-
 .../test/resources/airavata-server.properties   |   274 -
 .../gfac/core/context/ProcessContext.java       |     8 +-
 .../org/apache/airavata/gfac/impl/Factory.java  |    43 +-
 .../airavata/gfac/impl/GFacEngineImpl.java      |     9 +-
 .../airavata/gfac/impl/HPCRemoteCluster.java    |    91 +-
 .../org/apache/airavata/gfac/impl/SSHUtils.java |     6 +-
 .../impl/task/DefaultJobSubmissionTask.java     |    14 +-
 .../core/utils/OrchestratorUtils.java           |    34 +
 .../cpi/impl/SimpleOrchestratorImpl.java        |    14 +-
 .../core/experiment/catalog/ResourceType.java   |     1 +
 .../catalog/impl/ExperimentCatalogImpl.java     |    17 +
 .../catalog/impl/NotificationRegistry.java      |    87 +
 .../core/experiment/catalog/impl/UserReg.java   |    41 -
 .../experiment/catalog/impl/UserRegistry.java   |    41 +
 .../experiment/catalog/model/Notification.java  |    98 +
 .../catalog/model/ProcessResourceSchedule.java  |    30 +
 .../catalog/model/UserConfigurationData.java    |    30 +
 .../resources/AbstractExpCatResource.java       |     7 +
 .../catalog/resources/NotificationResource.java |   267 +
 .../ProcessResourceScheduleResource.java        |    30 +
 .../UserConfigurationDataResource.java          |    60 +-
 .../experiment/catalog/resources/Utils.java     |    27 +
 .../utils/ThriftDataModelConversion.java        |    26 +
 .../src/main/resources/META-INF/persistence.xml |     1 +
 .../src/main/resources/expcatalog-derby.sql     |    14 +
 .../src/main/resources/expcatalog-mysql.sql     |    14 +
 .../registry/cpi/ExpCatParentDataType.java      |     3 +-
 .../cpi/ExperimentCatalogModelType.java         |     1 +
 pom.xml                                         |     2 +-
 .../airavata-apis/airavata_api.thrift           |    33 +
 .../scheduling_model.thrift                     |     5 +-
 .../workspace_model.thrift                      |     9 +
 145 files changed, 24849 insertions(+), 7304 deletions(-)
----------------------------------------------------------------------



[06/35] airavata git commit: Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/airavata into develop

Posted by sh...@apache.org.
Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/airavata into develop


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

Branch: refs/heads/master
Commit: cfee70c32593407e330c44a8bb633cfa1dde4703
Parents: 7c30f78 9b52485
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 1 11:58:00 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 1 11:58:00 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |   2 +-
 .../lib/airavata/scheduling_model_types.cpp     |  66 ++++
 .../lib/airavata/scheduling_model_types.h       |  28 +-
 .../lib/Airavata/Model/Scheduling/Types.php     |  69 ++++
 .../apache/airavata/model/scheduling/ttypes.py  |  41 ++-
 .../apache/airavata/model/ComponentStatus.java  |   2 +-
 .../org/apache/airavata/model/EdgeModel.java    |   2 +-
 .../org/apache/airavata/model/NodeModel.java    |   2 +-
 .../org/apache/airavata/model/PortModel.java    |   2 +-
 .../apache/airavata/model/WorkflowModel.java    |   2 +-
 .../apache/airavata/model/WorkflowStatus.java   |   2 +-
 .../ApplicationDeploymentDescription.java       |   2 +-
 .../appdeployment/ApplicationModule.java        |   2 +-
 .../appcatalog/appdeployment/CommandObject.java |   2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |   2 +-
 .../ApplicationInterfaceDescription.java        |   2 +-
 .../appcatalog/computeresource/BatchQueue.java  |   2 +-
 .../computeresource/CloudJobSubmission.java     |   2 +-
 .../ComputeResourceDescription.java             |   2 +-
 .../computeresource/GlobusJobSubmission.java    |   2 +-
 .../computeresource/JobSubmissionInterface.java |   2 +-
 .../computeresource/LOCALSubmission.java        |   2 +-
 .../computeresource/ResourceJobManager.java     |   2 +-
 .../computeresource/SSHJobSubmission.java       |   2 +-
 .../computeresource/UnicoreJobSubmission.java   |   2 +-
 .../ComputeResourcePreference.java              |   2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |   2 +-
 .../gatewayprofile/StoragePreference.java       |   2 +-
 .../StorageResourceDescription.java             |   2 +-
 .../application/io/InputDataObjectType.java     |   2 +-
 .../application/io/OutputDataObjectType.java    |   2 +-
 .../airavata/model/commons/ErrorModel.java      |   2 +-
 .../model/commons/ValidationResults.java        |   2 +-
 .../airavata/model/commons/ValidatorResult.java |   2 +-
 .../data/movement/DataMovementInterface.java    |   2 +-
 .../data/movement/GridFTPDataMovement.java      |   2 +-
 .../model/data/movement/LOCALDataMovement.java  |   2 +-
 .../model/data/movement/SCPDataMovement.java    |   2 +-
 .../data/movement/UnicoreDataMovement.java      |   2 +-
 .../model/data/replica/DataProductModel.java    |   2 +-
 .../data/replica/DataReplicaLocationModel.java  |   2 +-
 .../model/error/AiravataClientException.java    |   2 +-
 .../model/error/AiravataSystemException.java    |   2 +-
 .../model/error/AuthenticationException.java    |   2 +-
 .../model/error/AuthorizationException.java     |   2 +-
 .../error/ExperimentNotFoundException.java      |   2 +-
 .../model/error/InvalidRequestException.java    |   2 +-
 .../model/error/LaunchValidationException.java  |   2 +-
 .../model/error/ProjectNotFoundException.java   |   2 +-
 .../airavata/model/error/TimedOutException.java |   2 +-
 .../airavata/model/error/ValidationResults.java |   2 +-
 .../airavata/model/error/ValidatorResult.java   |   2 +-
 .../model/experiment/ExperimentModel.java       |   2 +-
 .../model/experiment/ExperimentStatistics.java  |   2 +-
 .../experiment/ExperimentSummaryModel.java      |   2 +-
 .../experiment/UserConfigurationDataModel.java  |   2 +-
 .../org/apache/airavata/model/job/JobModel.java |   2 +-
 .../event/ExperimentStatusChangeEvent.java      |   2 +-
 .../model/messaging/event/JobIdentifier.java    |   2 +-
 .../messaging/event/JobStatusChangeEvent.java   |   2 +-
 .../event/JobStatusChangeRequestEvent.java      |   2 +-
 .../airavata/model/messaging/event/Message.java |   2 +-
 .../messaging/event/ProcessIdentifier.java      |   2 +-
 .../event/ProcessStatusChangeEvent.java         |   2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |   2 +-
 .../messaging/event/ProcessSubmitEvent.java     |   2 +-
 .../messaging/event/ProcessTerminateEvent.java  |   2 +-
 .../model/messaging/event/TaskIdentifier.java   |   2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |   2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |   2 +-
 .../event/TaskStatusChangeRequestEvent.java     |   2 +-
 .../airavata/model/process/ProcessModel.java    |   2 +-
 .../ComputationalResourceSchedulingModel.java   | 328 ++++++++++++++++++-
 .../airavata/model/security/AuthzToken.java     |   2 +-
 .../airavata/model/status/ExperimentStatus.java |   2 +-
 .../apache/airavata/model/status/JobStatus.java |   2 +-
 .../airavata/model/status/ProcessStatus.java    |   2 +-
 .../airavata/model/status/TaskStatus.java       |   2 +-
 .../model/task/DataStagingTaskModel.java        |   2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |   2 +-
 .../model/task/JobSubmissionTaskModel.java      |   2 +-
 .../airavata/model/task/MonitorTaskModel.java   |   2 +-
 .../apache/airavata/model/task/TaskModel.java   |   2 +-
 .../airavata/model/workspace/Gateway.java       |   2 +-
 .../apache/airavata/model/workspace/Group.java  |   2 +-
 .../airavata/model/workspace/Project.java       |   2 +-
 .../apache/airavata/model/workspace/User.java   |   2 +-
 .../gfac/core/context/ProcessContext.java       |   8 +-
 .../org/apache/airavata/gfac/impl/Factory.java  |  41 ++-
 .../airavata/gfac/impl/GFacEngineImpl.java      |   6 +-
 .../core/utils/OrchestratorUtils.java           |  34 ++
 .../cpi/impl/SimpleOrchestratorImpl.java        |  14 +-
 .../catalog/model/ProcessResourceSchedule.java  |  30 ++
 .../catalog/model/UserConfigurationData.java    |  30 ++
 .../ProcessResourceScheduleResource.java        |  30 ++
 .../UserConfigurationDataResource.java          |  60 +++-
 .../experiment/catalog/resources/Utils.java     |   6 +
 .../utils/ThriftDataModelConversion.java        |   9 +
 .../src/main/resources/expcatalog-derby.sql     |   3 +
 .../src/main/resources/expcatalog-mysql.sql     |   3 +
 .../scheduling_model.thrift                     |   5 +-
 101 files changed, 856 insertions(+), 119 deletions(-)
----------------------------------------------------------------------



[11/35] airavata git commit: removing duplicate airavata-server.properties file. changing data catalog to replica catalog

Posted by sh...@apache.org.
removing duplicate airavata-server.properties file. changing data catalog to replica catalog


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

Branch: refs/heads/master
Commit: fa2c064e5b603d4d9dad9d5757f70f384c2c9433
Parents: 662728b
Author: scnakandala <su...@gmail.com>
Authored: Mon Apr 11 14:50:11 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Mon Apr 11 14:50:11 2016 -0400

----------------------------------------------------------------------
 .../main/resources/airavata-server.properties   |   6 +-
 .../test/resources/airavata-server.properties   | 274 -------------------
 2 files changed, 3 insertions(+), 277 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/fa2c064e/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/airavata-server.properties b/modules/configuration/server/src/main/resources/airavata-server.properties
index 22769dc..83e13e2 100644
--- a/modules/configuration/server/src/main/resources/airavata-server.properties
+++ b/modules/configuration/server/src/main/resources/airavata-server.properties
@@ -64,14 +64,14 @@ appcatalog.jdbc.password=airavata
 appcatalog.validationQuery=SELECT 1 from CONFIGURATION
 
 ##########################################################################
-#  Data Catalog DB Configuration
+#  Replica Catalog DB Configuration
 ###########################################################################
 #for derby [AiravataJPARegistry]
 replicacatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
-replicacatalog.jdbc.url=jdbc:derby://localhost:1527/data_catalog;create=true;user=airavata;password=airavata
+replicacatalog.jdbc.url=jdbc:derby://localhost:1527/replica_catalog;create=true;user=airavata;password=airavata
 # MySql database configuration
 #replicacatalog.jdbc.driver=com.mysql.jdbc.Driver
-#replicacatalog.jdbc.url=jdbc:mysql://localhost:3306/data_catalog
+#replicacatalog.jdbc.url=jdbc:mysql://localhost:3306/replica_catalog
 replicacatalog.jdbc.user=airavata
 replicacatalog.jdbc.password=airavata
 replicacatalog.validationQuery=SELECT 1 from CONFIGURATION

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa2c064e/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties b/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
deleted file mode 100644
index b9a4ea4..0000000
--- a/modules/credential-store/credential-store-service/src/test/resources/airavata-server.properties
+++ /dev/null
@@ -1,274 +0,0 @@
-#
-#
-# 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.
-#
-
-###########################################################################
-#
-#  This properties file provides configuration for all Airavata Services:
-#  API Server, Registry, Workflow Interpreter, GFac, Orchestrator
-#
-###########################################################################
-
-###########################################################################
-#  API Server Registry Configuration
-###########################################################################
-
-#for derby [AiravataJPARegistry]
-registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
-registry.jdbc.url=jdbc:derby://localhost:1527/experiment_catalog;create=true;user=airavata;password=airavata
-# MySql database configuration
-#registry.jdbc.driver=com.mysql.jdbc.Driver
-#registry.jdbc.url=jdbc:mysql://localhost:3306/experiment_catalog
-registry.jdbc.user=airavata
-registry.jdbc.password=airavata
-start.derby.server.mode=true
-validationQuery=SELECT 1 from CONFIGURATION
-jpa.cache.size=5000
-#jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true
-
-# Properties for default user mode
-default.registry.user=admin
-default.registry.password=admin
-default.registry.password.hash.method=SHA
-default.registry.gateway=php_reference_gateway
-# this is the path used to store intermediate data, this will be removed with third party file transfer implementation.
-local.data.dir=/home/airavata/experimentData/
-
-#ip=127.0.0.1
-
-###########################################################################
-#  Application Catalog DB Configuration
-###########################################################################
-#for derby [AiravataJPARegistry]
-appcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
-appcatalog.jdbc.url=jdbc:derby://localhost:1527/app_catalog;create=true;user=airavata;password=airavata
-# MySql database configuration
-#appcatalog.jdbc.driver=com.mysql.jdbc.Driver
-#appcatalog.jdbc.url=jdbc:mysql://localhost:3306/app_catalog
-appcatalog.jdbc.user=airavata
-appcatalog.jdbc.password=airavata
-appcatalog.validationQuery=SELECT 1 from CONFIGURATION
-
-##########################################################################
-#  Replica Catalog DB Configuration
-###########################################################################
-#for derby [AiravataJPARegistry]
-replicacatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
-replicacatalog.jdbc.url=jdbc:derby://localhost:1527/replica_catalog;create=true;user=airavata;password=airavata
-# MySql database configuration
-#replicacatalog.jdbc.driver=com.mysql.jdbc.Driver
-#replicacatalog.jdbc.url=jdbc:mysql://localhost:3306/data_catalog
-replicacatalog.jdbc.user=airavata
-replicacatalog.jdbc.password=airavata
-replicacatalog.validationQuery=SELECT 1 from CONFIGURATION
-
-###########################################################################
-#  Server module Configuration
-###########################################################################
-
-servers=apiserver,orchestrator,gfac,credentialstore
-#shutdown.trategy=NONE
-shutdown.trategy=SELF_TERMINATE
-
-
-apiserver.server.host=localhost
-apiserver.server.port=8930
-apiserver.server.min.threads=50
-orchestrator.server.host=localhost
-orchestrator.server.port=8940
-gfac.server.host=localhost
-gfac.server.port=8950
-orchestrator.server.min.threads=50
-
-###########################################################################
-#  Job Scheduler can send informative email messages to you about the status of your job.  
-# Specify a string which consists of either the single character "n" (no mail), or one or more
-#  of the characters "a" (send mail when job is aborted), "b" (send mail when job begins), 
-# and "e" (send mail when job terminates).  The default is "a" if not specified.
-###########################################################################
-
-job.notification.enable=true
-#Provide comma separated email ids as a string if more than one
-job.notification.emailids=
-job.notification.flags=abe
-
-###########################################################################
-# Credential Store module Configuration
-###########################################################################
-start.credential.store=false
-credential.store.keystore.url=/Users/chathuri/dev/airavata/credential-store/oa4mp/airavata_sym.jks
-credential.store.keystore.alias=airavata
-credential.store.keystore.password=airavata
-credential.store.jdbc.url=jdbc:derby://localhost:1527/experiment_catalog;create=true;user=airavata;password=airavata
-credential.store.jdbc.user=airavata
-credential.store.jdbc.password=airavata
-credential.store.jdbc.driver=org.apache.derby.jdbc.ClientDriver
-credential.store.server.host=localhost
-credential.store.server.port=8960
-credentialstore=org.apache.airavata.credential.store.server.CredentialStoreServer
-credential.store.thrift.server.keystore=/Users/chathuri/dev/airavata/credential-store/oa4mp/airavata.jks
-credential.store.thrift.server.keystore.password=airavata
-
-notifier.enabled=false
-#period in milliseconds
-notifier.duration=5000
-
-email.server=smtp.googlemail.com
-email.server.port=465
-email.user=airavata
-email.password=xxx
-email.ssl=true
-email.from=airavata@apache.org
-
-###########################################################################
-# Airavata GFac MyProxy GSI credentials to access Grid Resources.
-###########################################################################
-#
-# Security Configuration used by Airavata Generic Factory Service
-#  to interact with Computational Resources.
-#
-gfac.thread.pool.size=50
-airavata.server.thread.pool.size=50
-gfac=org.apache.airavata.gfac.server.GfacServer
-myproxy.server=myproxy.teragrid.org
-myproxy.username=ogce
-myproxy.password=
-myproxy.life=3600
-# XSEDE Trusted certificates can be downloaded from https://software.xsede.org/security/xsede-certs.tar.gz
-trusted.cert.location=/Users/lahirugunathilake/Downloads/certificates
-gfac.passive=false
-# SSH PKI key pair or ssh password can be used SSH based sshKeyAuthentication is used.
-# if user specify both password sshKeyAuthentication gets the higher preference
-
-################# ---------- For ssh key pair sshKeyAuthentication ------------------- ################
-#public.ssh.key=/path to public key for ssh
-#private.ssh.key=/path to private key file for ssh
-#ssh.keypass=passphrase for the private key
-#ssh.username=username for ssh connection
-### Incase of password sshKeyAuthentication.
-#ssh.password=Password for ssh connection
-
-
-
-###########################################################################
-# Airavata Workflow Interpreter Configurations
-###########################################################################
-
-#runInThread=true
-#provenance=true
-#provenanceWriterThreadPoolSize=20
-#gfac.embedded=true
-#workflowserver=org.apache.airavata.api.server.WorkflowServer
-
-
-###########################################################################
-# API Server module Configuration
-###########################################################################
-apiserver=org.apache.airavata.api.server.AiravataAPIServer
-
-###########################################################################
-# Workflow Server module Configuration
-###########################################################################
-
-workflowserver=org.apache.airavata.api.server.WorkflowServer
-
-###########################################################################
-# Advance configuration to change service implementations
-###########################################################################
-# If false, disables two phase commit when submitting jobs
-TwoPhase=true
-#
-# Class which implemented HostScheduler interface. It will determine the which host to submit the request
-#
-host.scheduler=org.apache.airavata.gfac.core.scheduler.impl.SimpleHostScheduler
-
-###########################################################################
-# Monitoring module Configuration
-###########################################################################
-
-#This will be the primary monitoring tool which runs in airavata, in future there will be multiple monitoring
-#mechanisms and one would be able to start a monitor
-monitors=org.apache.airavata.gfac.monitor.impl.pull.qstat.QstatMonitor,org.apache.airavata.gfac.monitor.impl.LocalJobMonitor
-
-
-###########################################################################
-# AMQP Notification Configuration
-###########################################################################
-
-
-amqp.notification.enable=1
-
-amqp.broker.host=localhost
-amqp.broker.port=5672
-amqp.broker.username=guest
-amqp.broker.password=guest
-
-amqp.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPSenderImpl
-amqp.topic.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPTopicSenderImpl
-amqp.broadcast.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPBroadcastSenderImpl
-
-#,org.apache.airavata.gfac.monitor.impl.push.amqp.AMQPMonitor
-#This is the amqp related configuration and this lists down the Rabbitmq host, this is an xsede specific configuration
-amqp.hosts=info1.dyn.teragrid.org,info2.dyn.teragrid.org
-proxy.file.path=/Users/lahirugunathilake/Downloads/x509up_u503876
-connection.name=xsede
-#publisher
-activity.listeners=org.apache.airavata.gfac.core.monitor.AiravataJobStatusUpdator,org.apache.airavata.gfac.core.monitor.AiravataTaskStatusUpdator,org.apache.airavata.gfac.core.monitor.AiravataWorkflowNodeStatusUpdator,org.apache.airavata.api.server.listener.AiravataExperimentStatusUpdator,org.apache.airavata.gfac.core.monitor.GfacInternalStatusUpdator,org.apache.airavata.workflow.engine.util.ProxyMonitorPublisher
-
-rabbitmq.broker.url=amqp://localhost:5672
-
-status.publisher=org.apache.airavata.messaging.core.impl.RabbitMQStatusPublisher
-task.launch.publisher=org.apache.airavata.messaging.core.impl.RabbitMQTaskLaunchPublisher
-rabbitmq.status.exchange.name=airavata_rabbitmq_exchange
-rabbitmq.task.launch.exchange.name=airavata_task_launch_rabbitmq_exchange
-durable.queue=false
-launch.queue.name=launch.queue
-cancel.queue.name=cancel.queue
-activity.publisher=org.apache.airavata.messaging.core.impl.RabbitMQPublisher
-rabbitmq.exchange.name=airavata_rabbitmq_exchange
-
-###########################################################################
-# Orchestrator module Configuration
-###########################################################################
-
-#job.submitter=org.apache.airavata.orchestrator.core.impl.GFACEmbeddedJobSubmitter
-#job.submitter=org.apache.airavata.orchestrator.core.impl.GFACPassiveJobSubmitter
-job.submitter=org.apache.airavata.orchestrator.core.impl.GFACRPCJobSubmitter
-job.validators=org.apache.airavata.orchestrator.core.validator.impl.BatchQueueValidator,org.apache.airavata.orchestrator.core.validator.impl.ExperimentStatusValidator
-submitter.interval=10000
-threadpool.size=10
-start.submitter=true
-embedded.mode=true
-enable.validation=true
-orchestrator=org.apache.airavata.orchestrator.server.OrchestratorServer
-
-###########################################################################
-# Zookeeper Server Configuration
-###########################################################################
-
-embedded.zk=false
-zookeeper.server.host=localhost
-zookeeper.server.port=2181
-airavata-server=/api-server
-orchestrator-server=/orchestrator-server
-gfac-server=/gfac-server
-gfac-experiments=/gfac-experiments
-gfac-server-name=gfac-node0
-orchestrator-server-name=orch-node0
-airavata-server-name=api-node0
\ No newline at end of file


[10/35] airavata git commit: Fixed NPE with scratch location

Posted by sh...@apache.org.
Fixed NPE with scratch location


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

Branch: refs/heads/master
Commit: 662728b4a3e74b24bd0a6437d7759c4235754dff
Parents: 2536b33
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Tue Apr 5 16:29:00 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Tue Apr 5 16:29:00 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/airavata/gfac/core/context/ProcessContext.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/662728b4/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
index 3951216..45e7b94 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
@@ -169,7 +169,7 @@ public class ProcessContext {
             }else {
                 String scratchLocation = null;
 				String overrideScratchLocation = processModel.getResourceSchedule().getOverrideScratchLocation();
-                if (overrideScratchLocation != null || !overrideScratchLocation.equals("")) {
+                if (overrideScratchLocation != null && !overrideScratchLocation.equals("")) {
 					scratchLocation = overrideScratchLocation;
 				} else {
 					scratchLocation = computeResourcePreference.getScratchLocation();


[05/35] airavata git commit: Add both stdout and stderr as failures reason for job

Posted by sh...@apache.org.
Add both stdout and stderr as failures reason for job


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

Branch: refs/heads/master
Commit: 7c30f789c59eaeb8b8a60615419f7964b722b695
Parents: 6c301e6
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 1 11:57:42 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 1 11:57:42 2016 -0400

----------------------------------------------------------------------
 .../apache/airavata/gfac/impl/HPCRemoteCluster.java    |  8 +++++++-
 .../gfac/impl/task/DefaultJobSubmissionTask.java       | 13 ++++++++-----
 2 files changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/7c30f789/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
index 2e5c3a7..677ba9b 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
@@ -94,10 +94,16 @@ public class HPCRemoteCluster extends AbstractRemoteCluster{
 		if (jsoutput.getJobId() == null) {
 			if (outputParser.isJobSubmissionFailed(reader.getStdOutputString())) {
 				jsoutput.setJobSubmissionFailed(true);
-				jsoutput.setFailureReason(reader.getStdOutputString());
+				jsoutput.setFailureReason("stdout : " + reader.getStdOutputString() +
+						"\n stderr : " + reader.getStdErrorString());
 			}
 		}
 		jsoutput.setExitCode(reader.getExitCode());
+		if (jsoutput.getExitCode() != 0) {
+			jsoutput.setJobSubmissionFailed(true);
+			jsoutput.setFailureReason("stdout : " + reader.getStdOutputString() +
+					"\n stderr : " + reader.getStdErrorString());
+		}
 		jsoutput.setStdOut(reader.getStdOutputString());
 		jsoutput.setStdErr(reader.getStdErrorString());
 		return jsoutput;

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c30f789/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
index 975602f..a4be386 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
@@ -103,27 +103,30 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
 						GFacUtils.saveProcessError(processContext, errorModel);
 						GFacUtils.saveTaskError(taskContext, errorModel);
 						taskStatus.setState(TaskState.FAILED);
-						taskStatus.setReason("Job submission command exit with non zero exit code");
+						taskStatus.setReason("Job submission command didn't return a jobId");
 						taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
 						taskContext.setTaskStatus(taskStatus);
 					} else {
 						String msg;
 						GFacUtils.saveJobModel(processContext, jobModel);
+						ErrorModel errorModel = new ErrorModel();
 						if (exitCode != Integer.MIN_VALUE) {
 							msg = "expId:" + processContext.getProcessModel().getExperimentId() + ", processId:" +
 									processContext.getProcessId() + ", taskId: " + taskContext.getTaskId() +
 									" return non zero exit code:" + exitCode + "  for JobName:" + jobModel.getJobName() +
-									", with failure reason :  " + jobSubmissionOutput.getStdOut() +  " Hence changing job state to Failed." ;
+									", with failure reason : " + jobSubmissionOutput.getFailureReason()
+									+ " Hence changing job state to Failed." ;
+							errorModel.setActualErrorMessage(jobSubmissionOutput.getFailureReason());
 						} else {
 							msg = "expId:" + processContext.getProcessModel().getExperimentId() + ", processId:" +
 									processContext.getProcessId() + ", taskId: " + taskContext.getTaskId() +
 									" doesn't  return valid job submission exit code for JobName:" + jobModel.getJobName() +
-                                    ", with failure reason :  " + jobSubmissionOutput.getStdOut() +  " Hence changing job state to Failed." ;
+									", with failure reason : stdout ->" + jobSubmissionOutput.getStdOut() +
+									" stderr -> " + jobSubmissionOutput.getStdErr() + " Hence changing job state to Failed." ;
+							errorModel.setActualErrorMessage(msg);
 						}
 						log.error(msg);
-						ErrorModel errorModel = new ErrorModel();
 						errorModel.setUserFriendlyMessage(msg);
-						errorModel.setActualErrorMessage(msg);
 						GFacUtils.saveExperimentError(processContext, errorModel);
 						GFacUtils.saveProcessError(processContext, errorModel);
 						GFacUtils.saveTaskError(taskContext, errorModel);


[07/35] airavata git commit: Save job model on error

Posted by sh...@apache.org.
Save job model on error


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

Branch: refs/heads/master
Commit: 6b4960809334c745b76d6af16787c035e9e3f096
Parents: cfee70c
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 1 16:20:03 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 1 16:20:03 2016 -0400

----------------------------------------------------------------------
 .../apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java    | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/6b496080/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
index a4be386..b7f150f 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
@@ -94,6 +94,7 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask {
 					if (jobSubmissionOutput.isJobSubmissionFailed()) {
 						jobModel.setJobStatus(new JobStatus(JobState.FAILED));
 						jobModel.getJobStatus().setReason(jobSubmissionOutput.getFailureReason());
+						GFacUtils.saveJobModel(processContext, jobModel);
 						log.error("expId: {}, processid: {}, taskId: {} :- Job submission failed for job name {}",
                                 experimentId, taskContext.getProcessId(), taskContext.getTaskId(), jobModel.getJobName());
 						ErrorModel errorModel = new ErrorModel();


[21/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
index 3d78f51..e1e9d8a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmitEvent, ProcessSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessSubmitEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessSubmitEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
index 55c6ecb..b5e5042 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ProcessTerminateEvent implements org.apache.thrift.TBase<ProcessTerminateEvent, ProcessTerminateEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessTerminateEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessTerminateEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
index 5144e46..b36c42f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class TaskIdentifier implements org.apache.thrift.TBase<TaskIdentifier, TaskIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TaskIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
index ce6cec8..ee992c8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class TaskOutputChangeEvent implements org.apache.thrift.TBase<TaskOutputChangeEvent, TaskOutputChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskOutputChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskOutputChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
index 2c04194..e177ed1 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class TaskStatusChangeEvent implements org.apache.thrift.TBase<TaskStatusChangeEvent, TaskStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
index 733c148..61d48f2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class TaskStatusChangeRequestEvent implements org.apache.thrift.TBase<TaskStatusChangeRequestEvent, TaskStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index d7c95ba..8e307d4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, ProcessModel._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
index debaa55..228c78d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ComputationalResourceSchedulingModel implements org.apache.thrift.TBase<ComputationalResourceSchedulingModel, ComputationalResourceSchedulingModel._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceSchedulingModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceSchedulingModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
index b3d6b9c..cedff25 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class AuthzToken implements org.apache.thrift.TBase<AuthzToken, AuthzToken._Fields>, java.io.Serializable, Cloneable, Comparable<AuthzToken> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthzToken");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
index 89e9668..ebf6f98 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   User friendly reason on how the state is inferred.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ExperimentStatus implements org.apache.thrift.TBase<ExperimentStatus, ExperimentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
index 44e7306..b2beab4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class JobStatus implements org.apache.thrift.TBase<JobStatus, JobStatus._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
index 0dd999f..70f2708 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ProcessStatus implements org.apache.thrift.TBase<ProcessStatus, ProcessStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
index 03bdf15..13a384e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class TaskStatus implements org.apache.thrift.TBase<TaskStatus, TaskStatus._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
index 617d209..8f25df2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class DataStagingTaskModel implements org.apache.thrift.TBase<DataStagingTaskModel, DataStagingTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataStagingTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStagingTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
index af2b209..689f851 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
  * EnvironmentSetupTaskModel: A structure holding the environment creation task details
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class EnvironmentSetupTaskModel implements org.apache.thrift.TBase<EnvironmentSetupTaskModel, EnvironmentSetupTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<EnvironmentSetupTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EnvironmentSetupTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
index cbf8a02..b5a35a6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
index af46f7e..3ad2397 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index 1859145..6051a2f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * subTaskModel:
  *   A generic byte object for the Task developer to store internal serialized data into registry catalogs.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<TaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
index 4058956..afd7680 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class Gateway implements org.apache.thrift.TBase<Gateway, Gateway._Fields>, java.io.Serializable, Cloneable, Comparable<Gateway> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
index 1f1c6c5..9de120a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class Group implements org.apache.thrift.TBase<Group, Group._Fields>, java.io.Serializable, Cloneable, Comparable<Group> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Group");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
index 836dbf6..2a9548e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class Project implements org.apache.thrift.TBase<Project, Project._Fields>, java.io.Serializable, Cloneable, Comparable<Project> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Project");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
index 9c2d6a7..b0fcf3b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
index 3c5bd5a..1d7aeba 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ResourceType.java
@@ -23,6 +23,7 @@ public enum ResourceType {
     GATEWAY,
     PROJECT,
     USER,
+    NOTIFICATION,
     PROJECT_USER,
     GATEWAY_WORKER,
     EXPERIMENT,

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index 48d31b0..9060f52 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -38,6 +38,7 @@ import org.apache.airavata.model.status.ProcessStatus;
 import org.apache.airavata.model.status.TaskStatus;
 import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.model.workspace.Gateway;
+import org.apache.airavata.model.workspace.Notification;
 import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
 import org.apache.airavata.registry.core.experiment.catalog.resources.GatewayResource;
@@ -57,6 +58,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
     private ExperimentRegistry experimentRegistry = null;
     private ProjectRegistry projectRegistry = null;
     private GatewayRegistry gatewayRegistry = null;
+    private NotificationRegistry notificationRegistry = null;
 
     public ExperimentCatalogImpl() throws RegistryException{
         try {
@@ -77,6 +79,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
             experimentRegistry = new ExperimentRegistry(gatewayResource, user);
             projectRegistry = new ProjectRegistry(gatewayResource, user);
             gatewayRegistry = new GatewayRegistry();
+            notificationRegistry = new NotificationRegistry();
         } catch (ApplicationSettingsException e) {
             logger.error("Unable to read airavata server properties..", e);
             throw new RegistryException("Unable to read airavata server properties..", e);
@@ -100,6 +103,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
         experimentRegistry = new ExperimentRegistry(gatewayResource, user);
         projectRegistry = new ProjectRegistry(gatewayResource, user);
         gatewayRegistry = new GatewayRegistry();
+        notificationRegistry = new NotificationRegistry();
     }
 
     /**
@@ -122,6 +126,8 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                     return experimentRegistry.addExperiment((ExperimentModel) newObjectToAdd);
                 case GATEWAY:
                     return gatewayRegistry.addGateway((Gateway)newObjectToAdd);
+                case NOTIFICATION:
+                    return notificationRegistry.createNotification((Notification)newObjectToAdd);
                 default:
                     logger.error("Unsupported top level type..", new UnsupportedOperationException());
                     throw new UnsupportedOperationException();
@@ -212,6 +218,8 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                 case GATEWAY:
                     gatewayRegistry.updateGateway((String)identifier, (Gateway)newObjectToUpdate);
                     break;
+                case NOTIFICATION:
+                    notificationRegistry.updateNotification((Notification)newObjectToUpdate);
                 case EXPERIMENT:
                     experimentRegistry.updateExperiment((ExperimentModel) newObjectToUpdate, (String) identifier);
                     break;
@@ -319,6 +327,8 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                     return projectRegistry.getProject((String)identifier);
                 case GATEWAY:
                     return gatewayRegistry.getGateway((String)identifier);
+                case NOTIFICATION:
+                    return notificationRegistry.getNotification((String) identifier);
                 case EXPERIMENT:
                     return experimentRegistry.getExperiment((String) identifier, null);
                 case USER_CONFIGURATION_DATA:
@@ -390,6 +400,11 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                         result.add(gateway);
                     }
                     return result;
+                case NOTIFICATION:
+                    List<Notification> notifications = notificationRegistry.getAllGatewayNotifications((String) value);
+                    for(Notification n : notifications)
+                        result.add(n);
+                    return result;
                 case EXPERIMENT:
                     List<ExperimentModel> experimentList = experimentRegistry.getExperimentList(fieldName, value);
                     for (ExperimentModel experiment : experimentList) {
@@ -615,6 +630,8 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                 case GATEWAY:
                     gatewayRegistry.removeGateway((String)identifier);
                     break;
+                case NOTIFICATION:
+                    notificationRegistry.deleteNotification((String)identifier);
                 case EXPERIMENT:
                     experimentRegistry.removeExperiment((String) identifier);
                     break;

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/NotificationRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/NotificationRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/NotificationRegistry.java
new file mode 100644
index 0000000..d30274e
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/NotificationRegistry.java
@@ -0,0 +1,87 @@
+/*
+ *
+ * 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.registry.core.experiment.catalog.impl;
+
+import org.apache.airavata.model.workspace.Notification;
+import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
+import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
+import org.apache.airavata.registry.core.experiment.catalog.resources.NotificationResource;
+import org.apache.airavata.registry.core.experiment.catalog.utils.ThriftDataModelConversion;
+import org.apache.airavata.registry.cpi.RegistryException;
+
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+public class NotificationRegistry {
+
+    public String createNotification(Notification notification) throws RegistryException {
+        notification.setNotificationId(getNotificationId());
+        updateNotification(notification);
+        return notification.getNotificationId();
+    }
+
+    public void updateNotification(Notification notification) throws RegistryException {
+        NotificationResource notificationResource = new NotificationResource();
+        notificationResource.setNotificationId(notification.getNotificationId());
+        notificationResource.setGatewayId(notification.getGatewayId());
+        notificationResource.setTitle(notification.getTitle());
+        notificationResource.setNotificationMessage(notification.getNotifcationMessage());
+        if(notification.getPublishedtime() != 0)
+            notificationResource.setPublishedTime(new Timestamp(notification.getPublishedtime()));
+        if(notification.getExpirationTime() != 0)
+            notificationResource.setExpirationTime(new Timestamp(notification.getExpirationTime()));
+        notificationResource.save();
+    }
+
+    public Notification getNotification(String notificationId) throws RegistryException{
+        NotificationResource notificationResource = new NotificationResource();
+        NotificationResource resource = (NotificationResource)notificationResource.get(ResourceType.NOTIFICATION, notificationId);
+        if(resource != null){
+            return ThriftDataModelConversion.getNotification(resource);
+        }
+        return null;
+    }
+
+    public void deleteNotification(String notificationId) throws RegistryException {
+        NotificationResource notificationResource = new NotificationResource();
+        notificationResource.remove(ResourceType.NOTIFICATION, notificationId);
+    }
+
+    public List<Notification> getAllGatewayNotifications(String gatewayId) throws RegistryException {
+        List<Notification> notifications = new ArrayList<>();
+        NotificationResource notificationResource = new NotificationResource();
+        List<ExperimentCatResource> resources = notificationResource.getAllNotifications(gatewayId);
+        if(resources != null && !resources.isEmpty()){
+            for(ExperimentCatResource e : resources){
+                notifications.add(ThriftDataModelConversion.getNotification((NotificationResource) e));
+            }
+        }
+        return notifications;
+    }
+
+    private String getNotificationId (){
+        return UUID.randomUUID().toString();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java
deleted file mode 100644
index 6dd6130..0000000
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserReg.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- * 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.registry.core.experiment.catalog.impl;
-
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
-import org.apache.airavata.registry.core.experiment.catalog.resources.WorkerResource;
-import org.apache.airavata.registry.cpi.RegistryException;
-
-public class UserReg {
-    public WorkerResource getSystemUser() throws ApplicationSettingsException, RegistryException {
-        return (WorkerResource) ExpCatResourceUtils.getWorker(ServerSettings.getDefaultUserGateway(), ServerSettings.getDefaultUser());
-    }
-
-    public WorkerResource getExistingUser (String gatewayName, String userName) throws RegistryException {
-        return (WorkerResource) ExpCatResourceUtils.getWorker(gatewayName, userName);
-    }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserRegistry.java
new file mode 100644
index 0000000..eeee3c2
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/UserRegistry.java
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.registry.core.experiment.catalog.impl;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
+import org.apache.airavata.registry.core.experiment.catalog.resources.WorkerResource;
+import org.apache.airavata.registry.cpi.RegistryException;
+
+public class UserRegistry {
+    public WorkerResource getSystemUser() throws ApplicationSettingsException, RegistryException {
+        return (WorkerResource) ExpCatResourceUtils.getWorker(ServerSettings.getDefaultUserGateway(), ServerSettings.getDefaultUser());
+    }
+
+    public WorkerResource getExistingUser (String gatewayName, String userName) throws RegistryException {
+        return (WorkerResource) ExpCatResourceUtils.getWorker(gatewayName, userName);
+    }
+
+
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Notification.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Notification.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Notification.java
new file mode 100644
index 0000000..14d43f9
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Notification.java
@@ -0,0 +1,98 @@
+/*
+ *
+ * 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.registry.core.experiment.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "NOTIFICATION")
+public class Notification {
+    private final static Logger logger = LoggerFactory.getLogger(Notification.class);
+    private String notificationId;
+    private String gatewayId;
+    private String title;
+    private String notificationMessage;
+    private Timestamp publishedDate;
+    private Timestamp expirationDate;
+
+    @Id
+    @Column(name = "NOTIFICATION_ID")
+    public String getNotificationId() {
+        return notificationId;
+    }
+
+    public void setNotificationId(String notificationId) {
+        this.notificationId = notificationId;
+    }
+
+    @Column(name = "GATEWAY_ID")
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    @Column(name = "TITLE")
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    @Column(name = "NOTIFICATION_MESSAGE")
+    public String setNotificationMessage() {
+        return notificationMessage;
+    }
+
+    public void setNotificationMessage(String notificationMessage) {
+        this.notificationMessage = notificationMessage;
+    }
+
+    @Column(name = "PUBLISHED_DATE")
+    public Timestamp getPublishedDate() {
+        return publishedDate;
+    }
+
+    public void setPublishedDate (Timestamp publishedDate) {
+        this.publishedDate = publishedDate;
+    }
+
+    @Column(name = "EXPIRATION_DATE")
+    public Timestamp getExpirationDate() {
+        return expirationDate;
+    }
+
+    public void setExpirationDate (Timestamp expirationDate) {
+        this.expirationDate = expirationDate;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
index fb91261..5d04eff 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
@@ -33,6 +33,7 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
 	public static final String USERS = "Users";
 	public static final String GATEWAY_WORKER = "GatewayWorker";
 	public static final String PROJECT = "Project";
+    public static final String NOTIFICATION = "Notification";
 	public static final String PROJECT_USER = "ProjectUser";
 	public static final String EXPERIMENT = "Experiment";
 	public static final String EXPERIMENT_INPUT = "ExperimentInput";
@@ -68,6 +69,12 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
 		public static final String GATEWAY_ID = "gatewayId";
 	}
 
+    // Notifications table
+    public final class NotificationConstants {
+        public static final String NOTIFICATION_ID = "notificationId";
+        public static final String GATEWAY_ID = "gatewayId";
+    }
+
 	// Gateway_Worker table
 	public final class GatewayWorkerConstants {
 		public static final String USERNAME = "userName";

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/NotificationResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/NotificationResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/NotificationResource.java
new file mode 100644
index 0000000..a569578
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/NotificationResource.java
@@ -0,0 +1,267 @@
+/*
+ *
+ * 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.registry.core.experiment.catalog.resources;
+
+import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
+import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
+import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
+import org.apache.airavata.registry.core.experiment.catalog.model.Notification;
+import org.apache.airavata.registry.core.experiment.catalog.utils.QueryGenerator;
+import org.apache.airavata.registry.cpi.RegistryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+
+public class NotificationResource extends AbstractExpCatResource {
+
+    private final static Logger logger = LoggerFactory.getLogger(NotificationResource.class);
+
+    private String notificationId;
+    private String gatewayId;
+    private String title;
+    private String notificationMessage;
+    private Timestamp publishedTime;
+    private Timestamp expirationTime;
+
+    public String getNotificationId() {
+        return notificationId;
+    }
+
+    public void setNotificationId(String notificationId) {
+        this.notificationId = notificationId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getNotificationMessage() {
+        return notificationMessage;
+    }
+
+    public void setNotificationMessage(String notificationMessage) {
+        this.notificationMessage = notificationMessage;
+    }
+
+    public Timestamp getPublishedTime() {
+        return publishedTime;
+    }
+
+    public void setPublishedTime(Timestamp publishedTime) {
+        this.publishedTime = publishedTime;
+    }
+
+    public Timestamp getExpirationTime() {
+        return expirationTime;
+    }
+
+    public void setExpirationTime(Timestamp expirationTime) {
+        this.expirationTime = expirationTime;
+    }
+
+    /**
+     * @param type child resource type
+     * @return child resource
+     */
+    public ExperimentCatResource create(ResourceType type) throws RegistryException {
+        logger.error("Unsupported resource type for user resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * @param type child resource type
+     * @param name child resource name
+     */
+    public void remove(ResourceType type, Object name) throws RegistryException {
+        EntityManager em = null;
+        try {
+            em = ExpCatResourceUtils.getEntityManager();
+            em.getTransaction().begin();
+            QueryGenerator generator = new QueryGenerator(NOTIFICATION);
+            generator.setParameter(NotificationConstants.GATEWAY_ID, gatewayId);
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new RegistryException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    /**
+     * @param type child resource type
+     * @param name child resource name
+     * @return UnsupportedOperationException
+     */
+    public ExperimentCatResource get(ResourceType type, Object notificationId) throws RegistryException {
+        EntityManager em = null;
+        try {
+            if(!type.equals(ResourceType.NOTIFICATION)){
+                logger.error("Unsupported resource type for Notification resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported resource type for Notification resource.");
+            }
+            em = ExpCatResourceUtils.getEntityManager();
+            em.getTransaction().begin();
+            QueryGenerator generator = new QueryGenerator(NOTIFICATION);
+            generator.setParameter(NotificationConstants.NOTIFICATION_ID, notificationId);
+            Query q = generator.selectQuery(em);
+            Notification notification = (Notification)q.getSingleResult();
+            em.getTransaction().commit();
+            em.close();
+            if(notification != null)
+                return Utils.getResource(ResourceType.NOTIFICATION, notification);
+            else
+                return null;
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new RegistryException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    /**
+     * @param type child resource type
+     * @return UnsupportedOperationException
+     */
+    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException {
+        logger.error("Unsupported resource type for user resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * save user to the database
+     */
+    public void save() throws RegistryException {
+        EntityManager em = null;
+        try {
+            em = ExpCatResourceUtils.getEntityManager();
+            Notification existingNotification = em.find(Notification.class, notificationId);
+            em.close();
+            em = ExpCatResourceUtils.getEntityManager();
+            em.getTransaction().begin();
+            if (existingNotification != null) {
+                existingNotification.setNotificationId(notificationId);
+                existingNotification.setGatewayId(gatewayId);
+                existingNotification.setTitle(title);
+                existingNotification.setNotificationMessage(notificationMessage);
+                existingNotification.setPublishedDate(publishedTime);
+                existingNotification.setExpirationDate(expirationTime);
+                em.merge(existingNotification);
+            } else {
+                Notification notification = new Notification();
+                notification.setNotificationId(notificationId);
+                notification.setGatewayId(gatewayId);
+                notification.setTitle(title);
+                notification.setNotificationMessage(notificationMessage);
+                notification.setPublishedDate(publishedTime);
+                notification.setExpirationDate(expirationTime);
+                em.persist(notification);
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new RegistryException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    /**
+     * @param type child resource type
+     * @param name child resource name
+     * @return UnsupportedOperationException
+     */
+    public boolean isExists(ResourceType type, Object name) throws RegistryException {
+        logger.error("Unsupported resource type for user resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    public List<ExperimentCatResource> getAllNotifications(String gatewayId) throws RegistryException{
+        List<ExperimentCatResource> resourceList = new ArrayList<ExperimentCatResource>();
+        EntityManager em = null;
+        try {
+            em = ExpCatResourceUtils.getEntityManager();
+            em.getTransaction().begin();
+            QueryGenerator generator = new QueryGenerator(NOTIFICATION);
+            generator.setParameter(NotificationConstants.GATEWAY_ID, gatewayId);
+            Query q = generator.selectQuery(em);
+            List<?> results = q.getResultList();
+            if (results.size() != 0) {
+                for (Object result : results) {
+                    Notification notification = (Notification) result;
+                    NotificationResource notificationResource = (NotificationResource)
+                            Utils.getResource(ResourceType.NOTIFICATION, notification);
+                    resourceList.add(notificationResource);
+                }
+            }
+            em.getTransaction().commit();
+            em.close();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new RegistryException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return resourceList;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
index 340e020..0f5e2e5 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
@@ -180,6 +180,13 @@ public class Utils {
                     logger.error("Object should be a Project.", new IllegalArgumentException());
                     throw new IllegalArgumentException("Object should be a Project.");
                 }
+            case NOTIFICATION:
+                if (o instanceof Notification){
+                    return createNotification((Notification) o);
+                } else {
+                    logger.error("Object should be a Project.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a Project.");
+                }
             case PROJECT_USER:
                 if (o instanceof ProjectUser){
                     return createProjectUser((ProjectUser) o);
@@ -361,6 +368,20 @@ public class Utils {
         return projectResource;
     }
 
+    private static ExperimentCatResource createNotification(Notification o) {
+        NotificationResource notificationResource = new NotificationResource();
+        if (o != null){
+            notificationResource.setNotificationId(o.getNotificationId());
+            notificationResource.setGatewayId(o.getGatewayId());
+            notificationResource.setTitle(o.getTitle());
+            notificationResource.setNotificationMessage(o.setNotificationMessage());
+            notificationResource.setPublishedTime(o.getPublishedDate());
+            notificationResource.setExpirationTime(o.getExpirationDate());
+        }
+
+        return notificationResource;
+    }
+
     private static ExperimentCatResource createProjectUser(ProjectUser o) {
         ProjectUserResource projectUserResource = new ProjectUserResource();
         if (o != null){

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
index d6f92ff..30523c4 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
@@ -36,6 +36,7 @@ import org.apache.airavata.model.status.*;
 import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.model.task.TaskTypes;
 import org.apache.airavata.model.workspace.Gateway;
+import org.apache.airavata.model.workspace.Notification;
 import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
 import org.apache.airavata.registry.core.experiment.catalog.resources.*;
@@ -562,4 +563,20 @@ public class ThriftDataModelConversion {
         }
         return null;
     }
+
+    public static Notification getNotification(NotificationResource resource){
+        if(resource != null){
+            Notification notification = new Notification();
+            notification.setNotificationId(resource.getNotificationId());
+            notification.setGatewayId(resource.getGatewayId());
+            notification.setTitle(resource.getTitle());
+            notification.setNotifcationMessage(resource.getNotificationMessage());
+            if(resource.getPublishedTime() != null)
+                notification.setPublishedtime(resource.getPublishedTime().getTime());
+            if(resource.getExpirationTime() != null)
+                notification.setExpirationTime(resource.getExpirationTime().getTime());
+            return notification;
+        }
+        return null;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
index f38cdc6..150cf55 100644
--- a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
+++ b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
@@ -91,6 +91,7 @@
         <class>org.apache.airavata.registry.core.experiment.catalog.model.UserConfigurationData</class>
         <class>org.apache.airavata.registry.core.experiment.catalog.model.Job</class>
         <class>org.apache.airavata.registry.core.experiment.catalog.model.JobStatus</class>
+        <class>org.apache.airavata.registry.core.experiment.catalog.model.Notification</class>
         <exclude-unlisted-classes>true</exclude-unlisted-classes>
     </persistence-unit>
     <persistence-unit name="replicacatalog_data">

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
index a00dacf..e437e8f 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -27,6 +27,17 @@ CREATE TABLE GATEWAY
         PRIMARY KEY (GATEWAY_ID)
 );
 
+CREATE TABLE NOTIFICATION
+(
+        NOTIFICATION_ID VARCHAR(255),
+        GATEWAY_ID VARCHAR(255),
+        TITLE VARCHAR(255),
+	      NOTIFICATION_MESSAGE VARCHAR(4096),
+	      PUBLISHED_DATE TIMESTAMP,
+	      EXPIRATION_DATE TIMESTAMP,
+        PRIMARY KEY (NOTIFICATION_ID)
+);
+
 CREATE TABLE USERS
 (
         USER_NAME VARCHAR(255),

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
index 252e940..9bdad05 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -27,6 +27,17 @@ CREATE TABLE GATEWAY
         PRIMARY KEY (GATEWAY_ID)
 );
 
+CREATE TABLE NOTIFICATION
+(
+        NOTIFICATION_ID VARCHAR(255),
+        GATEWAY_ID VARCHAR(255),
+        TITLE VARCHAR(255),
+	      NOTIFICATION_MESSAGE VARCHAR(4096),
+	      PUBLISHED_DATE TIMESTAMP,
+	      EXPIRATION_DATE TIMESTAMP,
+        PRIMARY KEY (NOTIFICATION_ID)
+);
+
 CREATE TABLE USERS
 (
         USER_NAME VARCHAR(255),

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatParentDataType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatParentDataType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatParentDataType.java
index 1482e13..b9eca68 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatParentDataType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExpCatParentDataType.java
@@ -25,7 +25,8 @@ public enum ExpCatParentDataType {
     USER,
     PROJECT,
     EXPERIMENT,
-    GATEWAY
+    GATEWAY,
+    NOTIFICATION
 }
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java
index 44cb2ed..433ce60 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ExperimentCatalogModelType.java
@@ -25,6 +25,7 @@ public enum ExperimentCatalogModelType {
     USER,
     PROJECT,
     GATEWAY,
+    NOTIFICATION,
     EXPERIMENT,
     EXPERIMENT_STATISTICS,
     EXPERIMENT_INPUT,

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index d54a6d9..117feed 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -197,6 +197,39 @@ service Airavata {
                    3: airavata_errors.AiravataSystemException ase,
                    4: airavata_errors.AuthorizationException ae)
 
+  /**
+  * API methods to retrieve notifications
+**/
+   string createNotification(1: required security_model.AuthzToken authzToken, 2: required workspace_model.Notification notification)
+        throws (1: airavata_errors.InvalidRequestException ire,
+                   2: airavata_errors.AiravataClientException ace,
+                   3: airavata_errors.AiravataSystemException ase,
+                   4: airavata_errors.AuthorizationException ae)
+
+   void updateNotification(1: required security_model.AuthzToken authzToken, 2: required workspace_model.Notification notification)
+           throws (1: airavata_errors.InvalidRequestException ire,
+                      2: airavata_errors.AiravataClientException ace,
+                      3: airavata_errors.AiravataSystemException ase,
+                      4: airavata_errors.AuthorizationException ae)
+
+
+  void deleteNotification(1: required security_model.AuthzToken authzToken, 2: required string gatewayId, 3: required string notificationId)
+             throws (1: airavata_errors.InvalidRequestException ire,
+                        2: airavata_errors.AiravataClientException ace,
+                        3: airavata_errors.AiravataSystemException ase,
+                        4: airavata_errors.AuthorizationException ae)
+
+  workspace_model.Notification getNotification(1: required security_model.AuthzToken authzToken, 2: required string gatewayId, 3: required string notificationId)
+             throws (1: airavata_errors.InvalidRequestException ire,
+                        2: airavata_errors.AiravataClientException ace,
+                        3: airavata_errors.AiravataSystemException ase,
+                        4: airavata_errors.AuthorizationException ae)
+
+  list<workspace_model.Notification> getAllNotifications(1: required security_model.AuthzToken authzToken, 2: required string gatewayId)
+             throws (1: airavata_errors.InvalidRequestException ire,
+                        2: airavata_errors.AiravataClientException ace,
+                        3: airavata_errors.AiravataSystemException ase,
+                        4: airavata_errors.AuthorizationException ae)
 
     /**
     * Airavata Adminstrative Funcationality

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/thrift-interface-descriptions/data-models/experiment-catalog-models/workspace_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/experiment-catalog-models/workspace_model.thrift b/thrift-interface-descriptions/data-models/experiment-catalog-models/workspace_model.thrift
index 98622ff..468edc3 100644
--- a/thrift-interface-descriptions/data-models/experiment-catalog-models/workspace_model.thrift
+++ b/thrift-interface-descriptions/data-models/experiment-catalog-models/workspace_model.thrift
@@ -60,4 +60,13 @@ struct Gateway {
     2: optional string gatewayName,
     3: optional string domain,
     4: optional string emailAddress
+}
+
+struct Notification {
+    1: optional string notificationId,
+    2: required string gatewayId,
+    3: required string title,
+    4: required string notifcationMessage,
+    5: optional i64 publishedtime,
+    6: optional i64 expirationTime
 }
\ No newline at end of file


[33/35] airavata git commit: Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/airavata into develop

Posted by sh...@apache.org.
Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/airavata into develop


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

Branch: refs/heads/master
Commit: 2a30f80e613a5ff9fbf9d3e28e1b62f892feeb2c
Parents: 38c6423 22ae026
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 22 15:28:01 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 22 15:28:01 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |    87 +
 .../handler/AiravataServerHandlerTest.java      |    22 +
 .../java/org/apache/airavata/api/Airavata.java  | 15220 ++++++++++++-----
 .../main/resources/lib/airavata/Airavata.cpp    |  5355 ++++--
 .../src/main/resources/lib/airavata/Airavata.h  |  1172 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    32 +
 .../lib/airavata/workspace_model_types.cpp      |   201 +
 .../lib/airavata/workspace_model_types.h        |    81 +
 .../resources/lib/Airavata/API/Airavata.php     |  3062 +++-
 .../lib/Airavata/Model/Workspace/Types.php      |   190 +
 .../lib/apache/airavata/api/Airavata-remote     |    35 +
 .../lib/apache/airavata/api/Airavata.py         |  2754 ++-
 .../apache/airavata/model/workspace/ttypes.py   |   136 +
 .../apache/airavata/model/ComponentStatus.java  |     2 +-
 .../org/apache/airavata/model/EdgeModel.java    |     2 +-
 .../org/apache/airavata/model/NodeModel.java    |     2 +-
 .../org/apache/airavata/model/PortModel.java    |     2 +-
 .../apache/airavata/model/WorkflowModel.java    |     2 +-
 .../apache/airavata/model/WorkflowStatus.java   |     2 +-
 .../ApplicationDeploymentDescription.java       |     2 +-
 .../appdeployment/ApplicationModule.java        |     2 +-
 .../appcatalog/appdeployment/CommandObject.java |     2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |     2 +-
 .../ApplicationInterfaceDescription.java        |     2 +-
 .../appcatalog/computeresource/BatchQueue.java  |     2 +-
 .../computeresource/CloudJobSubmission.java     |     2 +-
 .../ComputeResourceDescription.java             |     2 +-
 .../computeresource/GlobusJobSubmission.java    |     2 +-
 .../computeresource/JobSubmissionInterface.java |     2 +-
 .../computeresource/LOCALSubmission.java        |     2 +-
 .../computeresource/ResourceJobManager.java     |     2 +-
 .../computeresource/SSHJobSubmission.java       |     2 +-
 .../computeresource/UnicoreJobSubmission.java   |     2 +-
 .../ComputeResourcePreference.java              |     2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |     2 +-
 .../gatewayprofile/StoragePreference.java       |     2 +-
 .../StorageResourceDescription.java             |     2 +-
 .../application/io/InputDataObjectType.java     |     2 +-
 .../application/io/OutputDataObjectType.java    |     2 +-
 .../airavata/model/commons/ErrorModel.java      |     2 +-
 .../model/commons/ValidationResults.java        |     2 +-
 .../airavata/model/commons/ValidatorResult.java |     2 +-
 .../data/movement/DataMovementInterface.java    |     2 +-
 .../data/movement/GridFTPDataMovement.java      |     2 +-
 .../model/data/movement/LOCALDataMovement.java  |     2 +-
 .../model/data/movement/SCPDataMovement.java    |     2 +-
 .../data/movement/UnicoreDataMovement.java      |     2 +-
 .../model/data/replica/DataProductModel.java    |     2 +-
 .../data/replica/DataReplicaLocationModel.java  |     2 +-
 .../model/error/AiravataClientException.java    |     2 +-
 .../model/error/AiravataSystemException.java    |     2 +-
 .../model/error/AuthenticationException.java    |     2 +-
 .../model/error/AuthorizationException.java     |     2 +-
 .../error/ExperimentNotFoundException.java      |     2 +-
 .../model/error/InvalidRequestException.java    |     2 +-
 .../model/error/LaunchValidationException.java  |     2 +-
 .../model/error/ProjectNotFoundException.java   |     2 +-
 .../airavata/model/error/TimedOutException.java |     2 +-
 .../airavata/model/error/ValidationResults.java |     2 +-
 .../airavata/model/error/ValidatorResult.java   |     2 +-
 .../model/experiment/ExperimentModel.java       |     2 +-
 .../model/experiment/ExperimentStatistics.java  |     2 +-
 .../experiment/ExperimentSummaryModel.java      |     2 +-
 .../experiment/UserConfigurationDataModel.java  |     2 +-
 .../org/apache/airavata/model/job/JobModel.java |     2 +-
 .../event/ExperimentStatusChangeEvent.java      |     2 +-
 .../model/messaging/event/JobIdentifier.java    |     2 +-
 .../messaging/event/JobStatusChangeEvent.java   |     2 +-
 .../event/JobStatusChangeRequestEvent.java      |     2 +-
 .../airavata/model/messaging/event/Message.java |     2 +-
 .../messaging/event/ProcessIdentifier.java      |     2 +-
 .../event/ProcessStatusChangeEvent.java         |     2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |     2 +-
 .../messaging/event/ProcessSubmitEvent.java     |     2 +-
 .../messaging/event/ProcessTerminateEvent.java  |     2 +-
 .../model/messaging/event/TaskIdentifier.java   |     2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |     2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |     2 +-
 .../event/TaskStatusChangeRequestEvent.java     |     2 +-
 .../airavata/model/process/ProcessModel.java    |     2 +-
 .../ComputationalResourceSchedulingModel.java   |     2 +-
 .../airavata/model/security/AuthzToken.java     |     2 +-
 .../airavata/model/status/ExperimentStatus.java |     2 +-
 .../apache/airavata/model/status/JobStatus.java |     2 +-
 .../airavata/model/status/ProcessStatus.java    |     2 +-
 .../airavata/model/status/TaskStatus.java       |     2 +-
 .../model/task/DataStagingTaskModel.java        |     2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |     2 +-
 .../model/task/JobSubmissionTaskModel.java      |     2 +-
 .../airavata/model/task/MonitorTaskModel.java   |     2 +-
 .../apache/airavata/model/task/TaskModel.java   |     2 +-
 .../airavata/model/workspace/Gateway.java       |     2 +-
 .../apache/airavata/model/workspace/Group.java  |     2 +-
 .../airavata/model/workspace/Notification.java  |   920 +
 .../airavata/model/workspace/Project.java       |     2 +-
 .../apache/airavata/model/workspace/User.java   |     2 +-
 .../core/experiment/catalog/ResourceType.java   |     1 +
 .../catalog/impl/ExperimentCatalogImpl.java     |    17 +
 .../catalog/impl/NotificationRegistry.java      |    87 +
 .../core/experiment/catalog/impl/UserReg.java   |    41 -
 .../experiment/catalog/impl/UserRegistry.java   |    41 +
 .../experiment/catalog/model/Notification.java  |    98 +
 .../resources/AbstractExpCatResource.java       |     7 +
 .../catalog/resources/NotificationResource.java |   267 +
 .../experiment/catalog/resources/Utils.java     |    21 +
 .../utils/ThriftDataModelConversion.java        |    17 +
 .../src/main/resources/META-INF/persistence.xml |     1 +
 .../src/main/resources/expcatalog-derby.sql     |    11 +
 .../src/main/resources/expcatalog-mysql.sql     |    11 +
 .../registry/cpi/ExpCatParentDataType.java      |     3 +-
 .../cpi/ExperimentCatalogModelType.java         |     1 +
 .../airavata-apis/airavata_api.thrift           |    33 +
 .../workspace_model.thrift                      |     9 +
 113 files changed, 23138 insertions(+), 6959 deletions(-)
----------------------------------------------------------------------



[19/35] airavata git commit: Fixed concurrent issue with sessions

Posted by sh...@apache.org.
Fixed concurrent issue with sessions


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

Branch: refs/heads/master
Commit: 77a511829a42171658bc095a165f5137bf35ae89
Parents: 4a1e79f
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 22 14:14:44 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 22 14:14:44 2016 -0400

----------------------------------------------------------------------
 .../org/apache/airavata/gfac/impl/Factory.java  |  2 +-
 .../airavata/gfac/impl/GFacEngineImpl.java      |  3 +-
 .../airavata/gfac/impl/HPCRemoteCluster.java    | 50 +++++++++++++++-----
 3 files changed, 42 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/77a51182/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
index 9e1cbe5..fbeb1d8 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
@@ -455,7 +455,7 @@ public abstract class Factory {
 		return new CancelRequestWatcherImpl(experimentId, processId);
 	}
 
-	public static Session getSSHSession(AuthenticationInfo authenticationInfo, ServerInfo serverInfo) throws AiravataException {
+	public static synchronized Session getSSHSession(AuthenticationInfo authenticationInfo, ServerInfo serverInfo) throws AiravataException {
 		SSHKeyAuthentication authentication = null;
 		String key = serverInfo.getUserName() + "_" + serverInfo.getHost() + "_" + serverInfo.getPort();
 		Session session = sessionMap.get(key);

http://git-wip-us.apache.org/repos/asf/airavata/blob/77a51182/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
index fbd8095..c0e2526 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
@@ -559,7 +559,8 @@ public class GFacEngineImpl implements GFacEngine {
             errorModel.setUserFriendlyMessage("Error while executing " + task.getType() + " task" );
             errorModel.setActualErrorMessage(errorMsg);
             GFacUtils.saveTaskError(taskContext, errorModel);
-            throw new GFacException("Error while executing " + task.getType() + " task");
+            throw new GFacException("Error: userFriendly msg :" + errorModel.getUserFriendlyMessage() + ", actual msg :"
+                    + errorModel.getActualErrorMessage());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/77a51182/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
index 677ba9b..468249e 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
@@ -47,6 +47,7 @@ import java.util.UUID;
  */
 public class HPCRemoteCluster extends AbstractRemoteCluster{
     private static final Logger log = LoggerFactory.getLogger(HPCRemoteCluster.class);
+	private static final int MAX_RETRY_COUNT = 3;
 	private final SSHKeyAuthentication authentication;
 	private final JSch jSch;
 	private Session session;
@@ -164,15 +165,28 @@ public class HPCRemoteCluster extends AbstractRemoteCluster{
 
 	@Override
 	public void scpThirdParty(String sourceFile, String destinationFile, Session clientSession, DIRECTION direction, boolean ignoreEmptyFile) throws SSHApiException {
+		int retryCount= 0;
 		try {
-			session = Factory.getSSHSession(authenticationInfo, serverInfo);
-			log.info("Transferring from:" + sourceFile + " To: " + destinationFile);
-            if (direction == DIRECTION.TO) {
-                SSHUtils.scpThirdParty(sourceFile, clientSession, destinationFile, session, ignoreEmptyFile);
-            } else {
-                SSHUtils.scpThirdParty(sourceFile, session, destinationFile, clientSession, ignoreEmptyFile);
-            }
-        } catch (IOException | AiravataException | JSchException e) {
+			while (retryCount < MAX_RETRY_COUNT) {
+				retryCount++;
+				session = Factory.getSSHSession(authenticationInfo, serverInfo);
+				log.info("Transferring from:" + sourceFile + " To: " + destinationFile);
+				try {
+					if (direction == DIRECTION.TO) {
+                        SSHUtils.scpThirdParty(sourceFile, clientSession, destinationFile, session, ignoreEmptyFile);
+                    } else {
+                        SSHUtils.scpThirdParty(sourceFile, session, destinationFile, clientSession, ignoreEmptyFile);
+                    }
+				} catch (JSchException e) {
+					if (retryCount == MAX_RETRY_COUNT) {
+						log.error("Retry count " + MAX_RETRY_COUNT + " exceeded for  transferring from:"
+								+ sourceFile + " To: " + destinationFile, e);
+						throw e;
+					}
+					log.error("Issue with jsch, Retry transferring from:" + sourceFile + " To: " + destinationFile, e);
+				}
+			}
+        } catch (IOException | AiravataException| JSchException e) {
 			throw new SSHApiException("Failed scp file:" + sourceFile + " to remote file "
 					+destinationFile , e);
 		}
@@ -180,10 +194,24 @@ public class HPCRemoteCluster extends AbstractRemoteCluster{
 
 	@Override
 	public void makeDirectory(String directoryPath) throws SSHApiException {
+		int retryCount = 0;
 		try {
-			session = Factory.getSSHSession(authenticationInfo, serverInfo);
-			log.info("Creating directory: " + serverInfo.getHost() + ":" + directoryPath);
-			SSHUtils.makeDirectory(directoryPath, session);
+			while (retryCount < MAX_RETRY_COUNT) {
+				retryCount++;
+				session = Factory.getSSHSession(authenticationInfo, serverInfo);
+				log.info("Creating directory: " + serverInfo.getHost() + ":" + directoryPath);
+				try {
+					SSHUtils.makeDirectory(directoryPath, session);
+				} catch (JSchException e) {
+					if (retryCount == MAX_RETRY_COUNT) {
+						log.error("Retry count " + MAX_RETRY_COUNT + " exceeded for creating directory: "
+								+ serverInfo.getHost() + ":" + directoryPath, e);
+
+						throw e;
+					}
+					log.error("Issue with jsch, Retry creating directory: " + serverInfo.getHost() + ":" + directoryPath);
+				}
+			}
 		} catch (JSchException | AiravataException | IOException e) {
 			throw new SSHApiException("Failed to create directory " + serverInfo.getHost() + ":" + directoryPath, e);
 		}


[08/35] airavata git commit: Trying to fix for the NPE with scratch location

Posted by sh...@apache.org.
Trying to fix for the NPE with scratch location


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

Branch: refs/heads/master
Commit: f5e0f227e50212a1f239f24f28e2616e420e41d5
Parents: 6b49608
Author: Suresh Marru <sm...@apache.org>
Authored: Fri Apr 1 17:27:38 2016 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Fri Apr 1 17:27:38 2016 -0400

----------------------------------------------------------------------
 .../src/main/java/org/apache/airavata/gfac/impl/Factory.java     | 4 ++--
 .../airavata/orchestrator/core/utils/OrchestratorUtils.java      | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/f5e0f227/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
index b446e85..9e1cbe5 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
@@ -319,7 +319,7 @@ public abstract class Factory {
             ProcessModel processModel = processContext.getProcessModel();
             String loginUserName = null;
             String overrideLoginUserName = processModel.getResourceSchedule().getOverrideLoginUserName();
-            if (overrideLoginUserName != null || !overrideLoginUserName.equals("")) {
+            if (overrideLoginUserName != null && !overrideLoginUserName.equals("")) {
                 loginUserName = overrideLoginUserName;
             } else {
                 loginUserName = processContext.getComputeResourcePreference().getLoginUserName();
@@ -336,7 +336,7 @@ public abstract class Factory {
             ProcessModel processModel = processContext.getProcessModel();
             String scratchLocation = null;
             String overrideScratchLocation = processModel.getResourceSchedule().getOverrideScratchLocation();
-            if (overrideScratchLocation != null || !overrideScratchLocation.equals("")) {
+            if (overrideScratchLocation != null && !overrideScratchLocation.equals("")) {
                 scratchLocation = overrideScratchLocation;
             } else {
                 scratchLocation = processContext.getComputeResourcePreference().getScratchLocation();

http://git-wip-us.apache.org/repos/asf/airavata/blob/f5e0f227/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
index be27eb5..95ff86e 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
@@ -125,7 +125,7 @@ public class OrchestratorUtils {
         try {
             String loginUserName = null;
             String overrideLoginUserName = processModel.getResourceSchedule().getOverrideLoginUserName();
-            if (overrideLoginUserName != null || !overrideLoginUserName.equals("")) {
+            if (overrideLoginUserName != null && !overrideLoginUserName.equals("")) {
                 loginUserName = overrideLoginUserName;
             } else {
                 GwyResourceProfile gatewayProfile = context.getRegistry().getAppCatalog().getGatewayProfile();
@@ -142,7 +142,7 @@ public class OrchestratorUtils {
         try {
             String scratchLocation = null;
             String overrideScratchLocation = processModel.getResourceSchedule().getOverrideScratchLocation();
-            if (overrideScratchLocation != null || !overrideScratchLocation.equals("")) {
+            if (overrideScratchLocation != null && !overrideScratchLocation.equals("")) {
                 scratchLocation = overrideScratchLocation;
             } else {
                 GwyResourceProfile gatewayProfile = context.getRegistry().getAppCatalog().getGatewayProfile();


[13/35] airavata git commit: excluding mysql from distribution

Posted by sh...@apache.org.
excluding mysql from distribution


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

Branch: refs/heads/master
Commit: 232d346ac3bafa93672e14601c2f2468802999ab
Parents: fa2c064
Author: Suresh Marru <sm...@apache.org>
Authored: Tue Mar 22 16:10:39 2016 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Fri Apr 15 15:29:57 2016 -0400

----------------------------------------------------------------------
 distribution/src/main/assembly/bin-assembly.xml | 223 ++++++++++---------
 1 file changed, 113 insertions(+), 110 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/232d346a/distribution/src/main/assembly/bin-assembly.xml
----------------------------------------------------------------------
diff --git a/distribution/src/main/assembly/bin-assembly.xml b/distribution/src/main/assembly/bin-assembly.xml
index 8650793..b9146d5 100644
--- a/distribution/src/main/assembly/bin-assembly.xml
+++ b/distribution/src/main/assembly/bin-assembly.xml
@@ -26,89 +26,89 @@
         <!ELEMENT dependencySet (outputDirectory|outputFileNameMapping|includes)*>
         ]>
 <assembly>
-	<id>bin</id>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<baseDirectory>${archieve.name}-${version}</baseDirectory>
-	<formats>
-		<format>tar.gz</format>
-		<format>zip</format>
-	</formats>
+    <id>bin</id>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <baseDirectory>${archieve.name}-${version}</baseDirectory>
+    <formats>
+        <format>tar.gz</format>
+        <format>zip</format>
+    </formats>
 
-	<fileSets>
+    <fileSets>
 
-		<!-- ********************** copy release notes files ********************** -->
-		<fileSet>
-			<directory>../../../</directory>
-			<outputDirectory>.</outputDirectory>
-			<includes>
-				<include>RELEASE_NOTES</include>
-			</includes>
-		</fileSet>
-		<!-- ********************** copy licenses, readme etc. ********************** -->
-		<fileSet>
-			<directory>src/main/resources/</directory>
-			<outputDirectory>.</outputDirectory>
-			<includes>
-				<include>LICENSE</include>
-				<include>NOTICE</include>
-				<include>README</include>
-				<include>INSTALL</include>
-			</includes>
-		</fileSet>
+        <!-- ********************** copy release notes files ********************** -->
+        <fileSet>
+            <directory>../../../</directory>
+            <outputDirectory>.</outputDirectory>
+            <includes>
+                <include>RELEASE_NOTES</include>
+            </includes>
+        </fileSet>
+        <!-- ********************** copy licenses, readme etc. ********************** -->
+        <fileSet>
+            <directory>src/main/resources/</directory>
+            <outputDirectory>.</outputDirectory>
+            <includes>
+                <include>LICENSE</include>
+                <include>NOTICE</include>
+                <include>README</include>
+                <include>INSTALL</include>
+            </includes>
+        </fileSet>
 
-		<!-- ********************** copy database scripts ********************** -->
-		<fileSet>
-			<directory>../modules/registry/registry-core/src/main/resources/
-			</directory>
-			<outputDirectory>bin/database_scripts
-			</outputDirectory>
-			<includes>
-				<include>*sql*</include>
-			</includes>
-		</fileSet>
-		<fileSet>
-			<directory>src/main/resources/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>777</fileMode>
-			<includes>
-				<include>*.sh</include>
-				<include>*.bat</include>
-				<include>logo.txt</include>
-				<include>startNetworkServer</include>
-			</includes>
-		</fileSet>
-		<fileSet>
-			<directory>src/main/resources/samples</directory>
-			<outputDirectory>samples</outputDirectory>
-			<fileMode>777</fileMode>
-			<includes>
-				<include>*.sh</include>
-				<include>**/*.sh</include>
-			</includes>
-		</fileSet>
-		<fileSet>
-			<directory>${project.build.directory}/conf</directory>
-			<outputDirectory>bin</outputDirectory>
-			<includes>
-				<include>airavata-server.properties</include>
-				<include>zoo.cfg</include>
-				<include>registry.properties</include>
-				<include>log4j.properties</include>
-				<include>host.xml</include>
-				<include>persistence.xml</include>
-				<include>provenance.sql</include>
-				<include>gfac-config.yaml</include>
-				<include>PBSTemplate.xslt</include>
-				<include>SLURMTemplate.xslt</include>
-				<include>LSFTemplate.xslt</include>
-				<include>UGETemplate.xslt</include>
-				<include>ForkTemplate.xslt</include>
-				<include>gsissh.properties</include>
-				<include>airavata.jks</include>
-				<include>client_truststore.jks</include>
-				<include>airavata-default-xacml-policy.xml</include>
-			</includes>
-		</fileSet>
+        <!-- ********************** copy database scripts ********************** -->
+        <fileSet>
+            <directory>../modules/registry/registry-core/src/main/resources/
+            </directory>
+            <outputDirectory>bin/database_scripts
+            </outputDirectory>
+            <includes>
+                <include>*sql*</include>
+            </includes>
+        </fileSet>
+        <fileSet>
+            <directory>src/main/resources/bin</directory>
+            <outputDirectory>bin</outputDirectory>
+            <fileMode>777</fileMode>
+            <includes>
+                <include>*.sh</include>
+                <include>*.bat</include>
+                <include>logo.txt</include>
+                <include>startNetworkServer</include>
+            </includes>
+        </fileSet>
+        <fileSet>
+            <directory>src/main/resources/samples</directory>
+            <outputDirectory>samples</outputDirectory>
+            <fileMode>777</fileMode>
+            <includes>
+                <include>*.sh</include>
+                <include>**/*.sh</include>
+            </includes>
+        </fileSet>
+        <fileSet>
+            <directory>${project.build.directory}/conf</directory>
+            <outputDirectory>bin</outputDirectory>
+            <includes>
+                <include>airavata-server.properties</include>
+                <include>zoo.cfg</include>
+                <include>registry.properties</include>
+                <include>log4j.properties</include>
+                <include>host.xml</include>
+                <include>persistence.xml</include>
+                <include>provenance.sql</include>
+                <include>gfac-config.yaml</include>
+                <include>PBSTemplate.xslt</include>
+                <include>SLURMTemplate.xslt</include>
+                <include>LSFTemplate.xslt</include>
+                <include>UGETemplate.xslt</include>
+                <include>ForkTemplate.xslt</include>
+                <include>gsissh.properties</include>
+                <include>airavata.jks</include>
+                <include>client_truststore.jks</include>
+                <include>airavata-default-xacml-policy.xml</include>
+            </includes>
+        </fileSet>
 
         <!-- Create logs directory -->
         <fileSet>
@@ -119,39 +119,42 @@
             </excludes>
         </fileSet>
 
-		<!-- ********************** Copy samples ********************** -->
-		<fileSet>
-			<directory>${project.build.directory}/samples/applications
-			</directory>
-			<outputDirectory>samples</outputDirectory>
-			<includes>
-				<include>*.sh</include>
-				<include>*.bat</include>
-			</includes>
-		</fileSet>
+        <!-- ********************** Copy samples ********************** -->
+        <fileSet>
+            <directory>${project.build.directory}/samples/applications
+            </directory>
+            <outputDirectory>samples</outputDirectory>
+            <includes>
+                <include>*.sh</include>
+                <include>*.bat</include>
+            </includes>
+        </fileSet>
 
-	</fileSets>
+    </fileSets>
 
-	<dependencySets>
-		<dependencySet>
-			<useProjectArtifact>false</useProjectArtifact>
-			<outputDirectory>lib</outputDirectory>
-			<outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
-			<includes>
-				<include>org.apache.derby:derby:jar</include>
-				<include>org.apache.derby:derbytools:jar</include>
-				<include>org.apache.derby:derbynet:jar</include>
-				<include>org.apache.derby:derbyclient:jar</include>
-			</includes>
-		</dependencySet>
-		<dependencySet>
-			<useProjectArtifact>false</useProjectArtifact>
-			<outputDirectory>lib</outputDirectory>
-			<includes>
-				<include>*:*:jar</include>
+    <dependencySets>
+        <dependencySet>
+            <useProjectArtifact>false</useProjectArtifact>
+            <outputDirectory>lib</outputDirectory>
+            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
+            <includes>
+                <include>org.apache.derby:derby:jar</include>
+                <include>org.apache.derby:derbytools:jar</include>
+                <include>org.apache.derby:derbynet:jar</include>
+                <include>org.apache.derby:derbyclient:jar</include>
             </includes>
-		</dependencySet>
+        </dependencySet>
+        <dependencySet>
+            <useProjectArtifact>false</useProjectArtifact>
+            <outputDirectory>lib</outputDirectory>
+            <includes>
+                <include>*:*:jar</include>
+            </includes>
+            <excludes>
+                <exclude>mysql:mysql-connector-java</exclude>
+            </excludes>
+        </dependencySet>
 
-	</dependencySets>
+    </dependencySets>
 
 </assembly>


[17/35] airavata git commit: Merge pull request #1 from apache/develop

Posted by sh...@apache.org.
Merge pull request #1 from apache/develop

Removed cloud module from main build

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

Branch: refs/heads/master
Commit: e1b200575c60de2d53def3838cf3d4c03552521b
Parents: cf575fe d522a27
Author: Mangirish Wagle <va...@gmail.com>
Authored: Sat Apr 16 00:28:56 2016 -0400
Committer: Mangirish Wagle <va...@gmail.com>
Committed: Sat Apr 16 00:28:56 2016 -0400

----------------------------------------------------------------------
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[34/35] airavata git commit: throw jsch instead of ssh exceptin in ssh make directory api

Posted by sh...@apache.org.
throw jsch instead of ssh exceptin in ssh make directory api


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

Branch: refs/heads/master
Commit: 26fd7c328da3a5a2344ac7d251fb2f972c62dbd4
Parents: 2a30f80
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 22 15:39:01 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 22 15:39:01 2016 -0400

----------------------------------------------------------------------
 .../src/main/java/org/apache/airavata/gfac/impl/SSHUtils.java  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/26fd7c32/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/SSHUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/SSHUtils.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/SSHUtils.java
index a8e1017..cd5651e 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/SSHUtils.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/SSHUtils.java
@@ -443,11 +443,11 @@ public class SSHUtils {
 
 			channel.disconnect();
 //            session.disconnect();
-
-			throw new SSHApiException("Unable to retrieve command output. Command - " + command +
+			log.error("Unable to retrieve command output. Command - " + command +
 					" on server - " + session.getHost() + ":" + session.getPort() +
 					" connecting user name - "
-					+ session.getUserName(), e);
+					+ session.getUserName());
+			throw e;
 		}
 		stdOutReader.onOutput(channel);
 		if (stdOutReader.getStdErrorString().contains("mkdir:")) {


[03/35] airavata git commit: Initial implementation for AIRAVATA-1945

Posted by sh...@apache.org.
Initial implementation for AIRAVATA-1945


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

Branch: refs/heads/master
Commit: e5ae01e020897c5f0e044895d624e9f95c4ef987
Parents: 27e93a0
Author: Suresh Marru <sm...@apache.org>
Authored: Thu Mar 31 17:24:05 2016 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Thu Mar 31 17:24:05 2016 -0400

----------------------------------------------------------------------
 .../org/apache/airavata/gfac/impl/Factory.java  | 24 +++++++-
 .../airavata/gfac/impl/GFacEngineImpl.java      |  4 +-
 .../core/utils/OrchestratorUtils.java           | 17 ++++++
 .../cpi/impl/SimpleOrchestratorImpl.java        |  8 ++-
 .../catalog/model/ProcessResourceSchedule.java  | 30 ++++++++++
 .../catalog/model/UserConfigurationData.java    | 30 ++++++++++
 .../ProcessResourceScheduleResource.java        | 30 ++++++++++
 .../UserConfigurationDataResource.java          | 60 +++++++++++++++-----
 .../experiment/catalog/resources/Utils.java     |  6 ++
 .../utils/ThriftDataModelConversion.java        |  9 +++
 .../src/main/resources/expcatalog-derby.sql     |  3 +
 .../src/main/resources/expcatalog-mysql.sql     |  3 +
 12 files changed, 201 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
index ddc744f..723eb37 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
@@ -67,6 +67,7 @@ import org.apache.airavata.model.appcatalog.computeresource.*;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
 import org.apache.airavata.model.data.movement.DataMovementProtocol;
+import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
 import org.apache.airavata.registry.cpi.AppCatalog;
 import org.apache.airavata.registry.cpi.AppCatalogException;
@@ -236,7 +237,7 @@ public abstract class Factory {
             AuthenticationInfo authentication = remoteCluster.getAuthentication();
             if (authentication instanceof SSHKeyAuthentication){
                 SSHKeyAuthentication sshKeyAuthentication = (SSHKeyAuthentication)authentication;
-                if (!sshKeyAuthentication.getUserName().equals(processContext.getComputeResourcePreference().getLoginUserName())){
+                if (!sshKeyAuthentication.getUserName().equals(getLoginUserName(processContext))){
                     JobManagerConfiguration jobManagerConfiguration = getJobManagerConfiguration(processContext.getResourceJobManager());
                     if (jobSubmissionProtocol == JobSubmissionProtocol.SSH ||
                             jobSubmissionProtocol == JobSubmissionProtocol.SSH_FORK) {
@@ -271,7 +272,7 @@ public abstract class Factory {
             AuthenticationInfo authentication = remoteCluster.getAuthentication();
             if (authentication instanceof SSHKeyAuthentication){
                 SSHKeyAuthentication sshKeyAuthentication = (SSHKeyAuthentication)authentication;
-                if (!sshKeyAuthentication.getUserName().equals(processContext.getComputeResourcePreference().getLoginUserName())){
+                if (!sshKeyAuthentication.getUserName().equals(getLoginUserName(processContext))){
                     JobManagerConfiguration jobManagerConfiguration = getJobManagerConfiguration(processContext.getResourceJobManager());
                     dataMovementProtocol = processContext.getDataMovementProtocol();
                     if (dataMovementProtocol == DataMovementProtocol.SCP) {
@@ -288,7 +289,7 @@ public abstract class Factory {
 	public static SSHKeyAuthentication getComputerResourceSSHKeyAuthentication(ProcessContext pc) throws GFacException {
         try {
             ComputeResourcePreference computeResourcePreference = pc.getComputeResourcePreference();
-            String loginUserName = computeResourcePreference.getLoginUserName();
+            String loginUserName = getLoginUserName(pc);
             String credentialStoreToken = computeResourcePreference.getResourceSpecificCredentialStoreToken();
             if (credentialStoreToken == null || credentialStoreToken.isEmpty()) {
                 credentialStoreToken = pc.getGatewayResourceProfile().getCredentialStoreToken();
@@ -313,6 +314,23 @@ public abstract class Factory {
         }
     }
 
+    public static String  getLoginUserName(ProcessContext processContext) throws GFacException {
+        try {
+            ProcessModel processModel = processContext.getProcessModel();
+            String loginUserName = null;
+            String overrideLoginUserName = processModel.getResourceSchedule().getOverrideLoginUserName();
+            if (overrideLoginUserName != null) {
+                loginUserName = overrideLoginUserName;
+            } else {
+                loginUserName = processContext.getComputeResourcePreference().getLoginUserName();
+            }
+
+            return loginUserName;
+        }  catch (Exception e) {
+            throw new GFacException("Couldn't fetch loginUserName", e);
+        }
+    }
+
     private static SSHKeyAuthentication getSshKeyAuthentication(String gatewayId,
                                                                 String loginUserName,
                                                                 String credentialStoreToken)

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
index a4f101e..129103b 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
@@ -150,7 +150,7 @@ public class GFacEngineImpl implements GFacEngine {
             processContext.setApplicationInterfaceDescription(applicationInterface);
             String computeResourceId = processContext.getComputeResourceDescription().getComputeResourceId();
             String hostName = Factory.getDefaultAppCatalog().getComputeResource().getComputeResource(computeResourceId).getHostName();
-            ServerInfo serverInfo = new ServerInfo(processContext.getComputeResourcePreference().getLoginUserName(), hostName);
+            ServerInfo serverInfo = new ServerInfo(Factory.getLoginUserName(processContext), hostName);
             processContext.setServerInfo(serverInfo);
             List<OutputDataObjectType> applicationOutputs = applicationInterface.getApplicationOutputs();
             if (applicationOutputs != null && !applicationOutputs.isEmpty()) {
@@ -355,7 +355,7 @@ public class GFacEngineImpl implements GFacEngine {
                                         submodel.setType(DataStageType.OUPUT);
                                         submodel.setProcessOutput(output);
                                         URI source = new URI(processContext.getDataMovementProtocol().name(),
-                                                processContext.getComputeResourcePreference().getLoginUserName(),
+                                                Factory.getLoginUserName(processContext),
                                                 processContext.getComputeResourceDescription().getHostName(),
                                                 22,
                                                 processContext.getWorkingDir() + output.getValue(), null, null);

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
index 3aa8974..d38a860 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
@@ -121,6 +121,23 @@ public class OrchestratorUtils {
         }
     }
 
+    public static String getLoginUserName(OrchestratorContext context, ProcessModel processModel, String gatewayId) throws RegistryException {
+        try {
+            String loginUserName = null;
+            String overrideLoginUserName = processModel.getResourceSchedule().getOverrideLoginUserName();
+            if (overrideLoginUserName != null) {
+                loginUserName = overrideLoginUserName;
+            } else {
+                GwyResourceProfile gatewayProfile = context.getRegistry().getAppCatalog().getGatewayProfile();
+                loginUserName = gatewayProfile.getComputeResourcePreference(gatewayId, processModel.getComputeResourceId()).getLoginUserName();
+            }
+            return loginUserName;
+        } catch (AppCatalogException e) {
+            logger.error("Error occurred while initializing app catalog", e);
+            throw new RegistryException("Error occurred while initializing app catalog", e);
+        }
+    }
+
     public static JobSubmissionInterface getPreferredJobSubmissionInterface(OrchestratorContext context, ProcessModel processModel, String gatewayId) throws RegistryException {
         try {
             String resourceHostId = processModel.getComputeResourceId();

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
index 15c8556..116b5f8 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
@@ -548,8 +548,9 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         URI destination = null;
         try {
             DataMovementProtocol dataMovementProtocol = OrchestratorUtils.getPreferredDataMovementProtocol(orchestratorContext, processModel, gatewayId);
+            String loginUserName = OrchestratorUtils.getLoginUserName(orchestratorContext, processModel, gatewayId);
             destination = new URI(dataMovementProtocol.name(),
-                    computeResourcePreference.getLoginUserName(),
+                    loginUserName,
                     computeResource.getHostName(),
                     OrchestratorUtils.getDataMovementPort(orchestratorContext, processModel, gatewayId),
                     remoteOutputDir , null, null);
@@ -585,11 +586,12 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
             DataMovementProtocol dataMovementProtocol = OrchestratorUtils.getPreferredDataMovementProtocol(orchestratorContext, processModel, gatewayId);
             URI source = null;
             try {
+                String loginUserName = OrchestratorUtils.getLoginUserName(orchestratorContext, processModel, gatewayId);
                 if (processOutput != null) {
                     submodel.setType(DataStageType.OUPUT);
                     submodel.setProcessOutput(processOutput);
                     source = new URI(dataMovementProtocol.name(),
-                            computeResourcePreference.getLoginUserName(),
+                            loginUserName,
                             computeResource.getHostName(),
                             OrchestratorUtils.getDataMovementPort(orchestratorContext, processModel, gatewayId),
                             remoteOutputDir + processOutput.getValue(), null, null);
@@ -597,7 +599,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
                     // archive
                     submodel.setType(DataStageType.ARCHIVE_OUTPUT);
                     source = new URI(dataMovementProtocol.name(),
-                            computeResourcePreference.getLoginUserName(),
+                            loginUserName,
                             computeResource.getHostName(),
                             OrchestratorUtils.getDataMovementPort(orchestratorContext, processModel, gatewayId),
                             remoteOutputDir, null, null);

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessResourceSchedule.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessResourceSchedule.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessResourceSchedule.java
index b23c8d5..c836feb 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessResourceSchedule.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/ProcessResourceSchedule.java
@@ -40,6 +40,9 @@ public class ProcessResourceSchedule {
     private Integer totalPhysicalMemory;
     private Process process;
     private String staticWorkingDir;
+    private String overrideLoginUserName;
+    private String overrideScratchLocation;
+    private String overrideAllocationProjectNumber;
 
     @Id
     @Column(name = "PROCESS_ID")
@@ -123,6 +126,33 @@ public class ProcessResourceSchedule {
         this.staticWorkingDir = staticWorkingDir;
     }
 
+    @Column(name = "OVERRIDE_LOGIN_USER_NAME")
+    public String getOverrideLoginUserName() {
+        return overrideLoginUserName;
+    }
+
+    public void setOverrideLoginUserName(String overrideLoginUserName) {
+        this.overrideLoginUserName = overrideLoginUserName;
+    }
+
+    @Column(name = "OVERRIDE_SCRATCH_LOCATION")
+    public String getOverrideScratchLocation() {
+        return overrideScratchLocation;
+    }
+
+    public void setOverrideScratchLocation(String overrideScratchLocation) {
+        this.overrideScratchLocation = overrideScratchLocation;
+    }
+
+    @Column(name = "OVERRIDE_ALLOCATION_PROJECT_NUMBER")
+    public String getOverrideAllocationProjectNumber() {
+        return overrideAllocationProjectNumber;
+    }
+
+    public void setOverrideAllocationProjectNumber(String overrideAllocationProjectNumber) {
+        this.overrideAllocationProjectNumber = overrideAllocationProjectNumber;
+    }
+
     //    @Override
 //    public boolean equals(Object o) {
 //        if (this == o) return true;

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java
index 638dee9..efad5ce 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java
@@ -45,6 +45,9 @@ public class UserConfigurationData {
     private Integer totalPhysicalMemory;
     private Experiment experiment;
     private String staticWorkingDir;
+    private String overrideLoginUserName;
+    private String overrideScratchLocation;
+    private String overrideAllocationProjectNumber;
     private String storageId;
     private String experimentDataDir;
 
@@ -184,6 +187,33 @@ public class UserConfigurationData {
         this.staticWorkingDir = staticWorkingDir;
     }
 
+    @Column(name = "OVERRIDE_LOGIN_USER_NAME")
+    public String getOverrideLoginUserName() {
+        return overrideLoginUserName;
+    }
+
+    public void setOverrideLoginUserName(String overrideLoginUserName) {
+        this.overrideLoginUserName = overrideLoginUserName;
+    }
+
+    @Column(name = "OVERRIDE_SCRATCH_LOCATION")
+    public String getOverrideScratchLocation() {
+        return overrideScratchLocation;
+    }
+
+    public void setOverrideScratchLocation(String overrideScratchLocation) {
+        this.overrideScratchLocation = overrideScratchLocation;
+    }
+
+    @Column(name = "OVERRIDE_ALLOCATION_PROJECT_NUMBER")
+    public String getOverrideAllocationProjectNumber() {
+        return overrideAllocationProjectNumber;
+    }
+
+    public void setOverrideAllocationProjectNumber(String overrideAllocationProjectNumber) {
+        this.overrideAllocationProjectNumber = overrideAllocationProjectNumber;
+    }
+
     @Column(name = "STORAGE_RESOURCE_ID")
     public String getStorageId() {
         return storageId;

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResourceScheduleResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResourceScheduleResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResourceScheduleResource.java
index 1fe0e23..cb40ac4 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResourceScheduleResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResourceScheduleResource.java
@@ -43,6 +43,9 @@ public class ProcessResourceScheduleResource extends AbstractExpCatResource {
     private Integer wallTimeLimit;
     private Integer totalPhysicalMemory;
     private String staticWorkingDir;
+    private String overrideLoginUserName;
+    private String overrideScratchLocation;
+    private String overrideAllocationProjectNumber;
 
     public String getProcessId() {
         return processId;
@@ -116,6 +119,30 @@ public class ProcessResourceScheduleResource extends AbstractExpCatResource {
         this.staticWorkingDir = staticWorkingDir;
     }
 
+    public String getOverrideLoginUserName() {
+        return overrideLoginUserName;
+    }
+
+    public void setOverrideLoginUserName(String overrideLoginUserName) {
+        this.overrideLoginUserName = overrideLoginUserName;
+    }
+
+    public String getOverrideScratchLocation() {
+        return overrideScratchLocation;
+    }
+
+    public void setOverrideScratchLocation(String overrideScratchLocation) {
+        this.overrideScratchLocation = overrideScratchLocation;
+    }
+
+    public String getOverrideAllocationProjectNumber() {
+        return overrideAllocationProjectNumber;
+    }
+
+    public void setOverrideAllocationProjectNumber(String overrideAllocationProjectNumber) {
+        this.overrideAllocationProjectNumber = overrideAllocationProjectNumber;
+    }
+
     public ExperimentCatResource create(ResourceType type) throws RegistryException {
         logger.error("Unsupported resource type for process resource scheduling data resource.", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
@@ -172,6 +199,9 @@ public class ProcessResourceScheduleResource extends AbstractExpCatResource {
             processResourceSchedule.setWallTimeLimit(wallTimeLimit);
             processResourceSchedule.setTotalPhysicalMemory(totalPhysicalMemory);
             processResourceSchedule.setStaticWorkingDir(staticWorkingDir);
+            processResourceSchedule.setOverrideLoginUserName(overrideLoginUserName);
+            processResourceSchedule.setOverrideScratchLocation(overrideScratchLocation);
+            processResourceSchedule.setOverrideAllocationProjectNumber(overrideAllocationProjectNumber);
             if (existingSchedule == null){
                 em.persist(processResourceSchedule);
             }else {

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java
index ebf29bd..c6516c4 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java
@@ -49,6 +49,9 @@ public class UserConfigurationDataResource extends AbstractExpCatResource {
     private Integer wallTimeLimit;
     private Integer totalPhysicalMemory;
     private String staticWorkingDir;
+    private String overrideLoginUserName;
+    private String overrideScratchLocation;
+    private String overrideAllocationProjectNumber;
     private String storageId;
     private String experimentDataDir;
 
@@ -180,6 +183,30 @@ public class UserConfigurationDataResource extends AbstractExpCatResource {
         this.staticWorkingDir = staticWorkingDir;
     }
 
+    public String getOverrideLoginUserName() {
+        return overrideLoginUserName;
+    }
+
+    public void setOverrideLoginUserName(String overrideLoginUserName) {
+        this.overrideLoginUserName = overrideLoginUserName;
+    }
+
+    public String getOverrideScratchLocation() {
+        return overrideScratchLocation;
+    }
+
+    public void setOverrideScratchLocation(String overrideScratchLocation) {
+        this.overrideScratchLocation = overrideScratchLocation;
+    }
+
+    public String getOverrideAllocationProjectNumber() {
+        return overrideAllocationProjectNumber;
+    }
+
+    public void setOverrideAllocationProjectNumber(String overrideAllocationProjectNumber) {
+        this.overrideAllocationProjectNumber = overrideAllocationProjectNumber;
+    }
+
     public String getExperimentDataDir() {
         return experimentDataDir;
     }
@@ -193,36 +220,36 @@ public class UserConfigurationDataResource extends AbstractExpCatResource {
         throw new UnsupportedOperationException();
     }
 
-    
+
     public void remove(ResourceType type, Object name) throws RegistryException {
         logger.error("Unsupported resource type for process resource scheduling data resource.", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
-    
-    public ExperimentCatResource get(ResourceType type, Object name) throws RegistryException{
+
+    public ExperimentCatResource get(ResourceType type, Object name) throws RegistryException {
         logger.error("Unsupported resource type for process resource scheduling data resource.", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
-    
-    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException{
+
+    public List<ExperimentCatResource> get(ResourceType type) throws RegistryException {
         logger.error("Unsupported resource type for process resource scheduling data resource.", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
-    
-    public void save() throws RegistryException{
+
+    public void save() throws RegistryException {
         EntityManager em = null;
         try {
             em = ExpCatResourceUtils.getEntityManager();
             UserConfigurationData userConfigurationData;
-            if(experimentId == null){
+            if (experimentId == null) {
                 throw new RegistryException("Does not have the experiment id");
             }
             UserConfigurationData existingConf = em.find(UserConfigurationData.class, experimentId);
             if (em.isOpen()) {
-                if (em.getTransaction().isActive()){
+                if (em.getTransaction().isActive()) {
                     em.getTransaction().rollback();
                 }
                 em.close();
@@ -230,9 +257,9 @@ public class UserConfigurationDataResource extends AbstractExpCatResource {
 
             em = ExpCatResourceUtils.getEntityManager();
             em.getTransaction().begin();
-            if(existingConf == null){
+            if (existingConf == null) {
                 userConfigurationData = new UserConfigurationData();
-            }else {
+            } else {
                 userConfigurationData = existingConf;
             }
             userConfigurationData.setExperimentId(experimentId);
@@ -249,17 +276,20 @@ public class UserConfigurationDataResource extends AbstractExpCatResource {
             userConfigurationData.setQueueName(queueName);
             userConfigurationData.setWallTimeLimit(wallTimeLimit);
             userConfigurationData.setStaticWorkingDir(staticWorkingDir);
+            userConfigurationData.setOverrideLoginUserName(overrideLoginUserName);
+            userConfigurationData.setOverrideScratchLocation(overrideScratchLocation);
+            userConfigurationData.setOverrideAllocationProjectNumber(overrideAllocationProjectNumber);
             userConfigurationData.setTotalPhysicalMemory(totalPhysicalMemory);
             userConfigurationData.setStorageId(storageId);
             userConfigurationData.setExperimentDataDir(experimentDataDir);
-            if (existingConf == null){
+            if (existingConf == null) {
                 em.persist(userConfigurationData);
-            }else {
+            } else {
                 em.merge(userConfigurationData);
             }
             em.getTransaction().commit();
             if (em.isOpen()) {
-                if (em.getTransaction().isActive()){
+                if (em.getTransaction().isActive()) {
                     em.getTransaction().rollback();
                 }
                 em.close();
@@ -269,7 +299,7 @@ public class UserConfigurationDataResource extends AbstractExpCatResource {
             throw new RegistryException(e);
         } finally {
             if (em != null && em.isOpen()) {
-                if (em.getTransaction().isActive()){
+                if (em.getTransaction().isActive()) {
                     em.getTransaction().rollback();
                 }
                 em.close();

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
index 9dc2a07..340e020 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
@@ -513,6 +513,9 @@ public class Utils {
             configurationDataResource.setWallTimeLimit(o.getWallTimeLimit());
             configurationDataResource.setTotalPhysicalMemory(o.getTotalPhysicalMemory());
             configurationDataResource.setStaticWorkingDir(o.getStaticWorkingDir());
+            configurationDataResource.setOverrideLoginUserName(o.getOverrideLoginUserName());
+            configurationDataResource.setOverrideScratchLocation(o.getOverrideScratchLocation());
+            configurationDataResource.setOverrideAllocationProjectNumber(o.getOverrideAllocationProjectNumber());
             configurationDataResource.setStorageId(o.getStorageId());
             configurationDataResource.setExperimentDataDir(o.getExperimentDataDir());
         }
@@ -658,6 +661,9 @@ public class Utils {
             resourceScheduleResource.setWallTimeLimit(o.getWallTimeLimit());
             resourceScheduleResource.setTotalPhysicalMemory(o.getTotalPhysicalMemory());
             resourceScheduleResource.setStaticWorkingDir(o.getStaticWorkingDir());
+            resourceScheduleResource.setOverrideLoginUserName(o.getOverrideLoginUserName());
+            resourceScheduleResource.setOverrideScratchLocation(o.getOverrideScratchLocation());
+            resourceScheduleResource.setOverrideAllocationProjectNumber(o.getOverrideAllocationProjectNumber());
         }
         return resourceScheduleResource;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
index e39adc2..d6f92ff 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
@@ -515,6 +515,9 @@ public class ThriftDataModelConversion {
             resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit());
             resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory());
             resourceSchedulingModel.setStaticWorkingDir(resource.getStaticWorkingDir());
+            resourceSchedulingModel.setOverrideLoginUserName(resource.getOverrideLoginUserName());
+            resourceSchedulingModel.setOverrideScratchLocation(resource.getOverrideScratchLocation());
+            resourceSchedulingModel.setOverrideAllocationProjectNumber(resource.getOverrideAllocationProjectNumber());
             data.setComputationalResourceScheduling(resourceSchedulingModel);
 
             return data;
@@ -533,6 +536,9 @@ public class ThriftDataModelConversion {
             resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit());
             resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory());
             resourceSchedulingModel.setStaticWorkingDir(resource.getStaticWorkingDir());
+            resourceSchedulingModel.setOverrideLoginUserName(resource.getOverrideLoginUserName());
+            resourceSchedulingModel.setOverrideScratchLocation(resource.getOverrideScratchLocation());
+            resourceSchedulingModel.setOverrideAllocationProjectNumber(resource.getOverrideAllocationProjectNumber());
             return resourceSchedulingModel;
         }
         return null;
@@ -549,6 +555,9 @@ public class ThriftDataModelConversion {
             resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit());
             resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory());
             resourceSchedulingModel.setStaticWorkingDir(resource.getStaticWorkingDir());
+            resourceSchedulingModel.setOverrideLoginUserName(resource.getOverrideLoginUserName());
+            resourceSchedulingModel.setOverrideScratchLocation(resource.getOverrideScratchLocation());
+            resourceSchedulingModel.setOverrideAllocationProjectNumber(resource.getOverrideAllocationProjectNumber());
             return resourceSchedulingModel;
         }
         return null;

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
index ded83b0..a00dacf 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -160,6 +160,9 @@ CREATE TABLE USER_CONFIGURATION_DATA (
   WALL_TIME_LIMIT INT,
   TOTAL_PHYSICAL_MEMORY INT,
   STATIC_WORKING_DIR varchar(255),
+  OVERRIDE_LOGIN_USER_NAME varchar(255),
+  OVERRIDE_SCRATCH_LOCATION varchar(255),
+  OVERRIDE_ALLOCATION_PROJECT_NUMBER varchar(255),
   STORAGE_RESOURCE_ID varchar(255),
   EXPERIMENT_DATA_DIR VARCHAR (512),
   PRIMARY KEY (EXPERIMENT_ID),

http://git-wip-us.apache.org/repos/asf/airavata/blob/e5ae01e0/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
index 04c7cee..252e940 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -161,6 +161,9 @@ CREATE TABLE USER_CONFIGURATION_DATA (
   WALL_TIME_LIMIT int(11),
   TOTAL_PHYSICAL_MEMORY int(11),
   STATIC_WORKING_DIR varchar(255),
+  OVERRIDE_LOGIN_USER_NAME varchar(255),
+  OVERRIDE_SCRATCH_LOCATION varchar(255),
+  OVERRIDE_ALLOCATION_PROJECT_NUMBER varchar(255),
   STORAGE_RESOURCE_ID varchar(255),
   EXPERIMENT_DATA_DIR VARCHAR (512),
   PRIMARY KEY (EXPERIMENT_ID),


[25/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index c7065a4..2029203 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -168,6 +168,59 @@ interface AiravataIf {
    */
   public function isGatewayExist(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
   /**
+   *   * API methods to retrieve notifications
+   * *
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param \Airavata\Model\Workspace\Notification $notification
+   * @return string
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function createNotification(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Workspace\Notification $notification);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param \Airavata\Model\Workspace\Notification $notification
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function updateNotification(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Workspace\Notification $notification);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $gatewayId
+   * @param string $notificationId
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function deleteNotification(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $notificationId);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $gatewayId
+   * @param string $notificationId
+   * @return \Airavata\Model\Workspace\Notification
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getNotification(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $notificationId);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $gatewayId
+   * @return \Airavata\Model\Workspace\Notification[]
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getAllNotifications(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
+  /**
    * Generate and Register SSH Key Pair with Airavata Credential Store.
    * 
    * @param gatewayId
@@ -3996,6 +4049,322 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("isGatewayExist failed: unknown result");
   }
 
+  public function createNotification(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Workspace\Notification $notification)
+  {
+    $this->send_createNotification($authzToken, $notification);
+    return $this->recv_createNotification();
+  }
+
+  public function send_createNotification(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Workspace\Notification $notification)
+  {
+    $args = new \Airavata\API\Airavata_createNotification_args();
+    $args->authzToken = $authzToken;
+    $args->notification = $notification;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'createNotification', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('createNotification', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_createNotification()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_createNotification_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_createNotification_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    throw new \Exception("createNotification failed: unknown result");
+  }
+
+  public function updateNotification(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Workspace\Notification $notification)
+  {
+    $this->send_updateNotification($authzToken, $notification);
+    $this->recv_updateNotification();
+  }
+
+  public function send_updateNotification(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Workspace\Notification $notification)
+  {
+    $args = new \Airavata\API\Airavata_updateNotification_args();
+    $args->authzToken = $authzToken;
+    $args->notification = $notification;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'updateNotification', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('updateNotification', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_updateNotification()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateNotification_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_updateNotification_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    return;
+  }
+
+  public function deleteNotification(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $notificationId)
+  {
+    $this->send_deleteNotification($authzToken, $gatewayId, $notificationId);
+    $this->recv_deleteNotification();
+  }
+
+  public function send_deleteNotification(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $notificationId)
+  {
+    $args = new \Airavata\API\Airavata_deleteNotification_args();
+    $args->authzToken = $authzToken;
+    $args->gatewayId = $gatewayId;
+    $args->notificationId = $notificationId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'deleteNotification', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('deleteNotification', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_deleteNotification()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteNotification_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_deleteNotification_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    return;
+  }
+
+  public function getNotification(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $notificationId)
+  {
+    $this->send_getNotification($authzToken, $gatewayId, $notificationId);
+    return $this->recv_getNotification();
+  }
+
+  public function send_getNotification(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $notificationId)
+  {
+    $args = new \Airavata\API\Airavata_getNotification_args();
+    $args->authzToken = $authzToken;
+    $args->gatewayId = $gatewayId;
+    $args->notificationId = $notificationId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getNotification', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getNotification', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getNotification()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getNotification_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_getNotification_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    throw new \Exception("getNotification failed: unknown result");
+  }
+
+  public function getAllNotifications(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
+  {
+    $this->send_getAllNotifications($authzToken, $gatewayId);
+    return $this->recv_getAllNotifications();
+  }
+
+  public function send_getAllNotifications(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
+  {
+    $args = new \Airavata\API\Airavata_getAllNotifications_args();
+    $args->authzToken = $authzToken;
+    $args->gatewayId = $gatewayId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getAllNotifications', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getAllNotifications', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getAllNotifications()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllNotifications_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_getAllNotifications_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    throw new \Exception("getAllNotifications failed: unknown result");
+  }
+
   public function generateAndRegisterSSHKeys(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $userName)
   {
     $this->send_generateAndRegisterSSHKeys($authzToken, $gatewayId, $userName);
@@ -12744,21 +13113,1441 @@ class Airavata_getAPIVersion_result {
 
 }
 
-class Airavata_isUserExists_args {
+class Airavata_isUserExists_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $userName = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'userName',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['userName'])) {
+        $this->userName = $vals['userName'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_isUserExists_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->userName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_isUserExists_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->userName !== null) {
+      $xfer += $output->writeFieldBegin('userName', TType::STRING, 3);
+      $xfer += $output->writeString($this->userName);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_isUserExists_result {
+  static $_TSPEC;
+
+  /**
+   * @var bool
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_isUserExists_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_isUserExists_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_addGateway_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var \Airavata\Model\Workspace\Gateway
+   */
+  public $gateway = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gateway',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Workspace\Gateway',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gateway'])) {
+        $this->gateway = $vals['gateway'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_addGateway_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->gateway = new \Airavata\Model\Workspace\Gateway();
+            $xfer += $this->gateway->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_addGateway_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gateway !== null) {
+      if (!is_object($this->gateway)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('gateway', TType::STRUCT, 2);
+      $xfer += $this->gateway->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_addGateway_result {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRING,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_addGateway_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_addGateway_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
+      $xfer += $output->writeString($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_updateGateway_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var \Airavata\Model\Workspace\Gateway
+   */
+  public $updatedGateway = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'updatedGateway',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Workspace\Gateway',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['updatedGateway'])) {
+        $this->updatedGateway = $vals['updatedGateway'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_updateGateway_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->updatedGateway = new \Airavata\Model\Workspace\Gateway();
+            $xfer += $this->updatedGateway->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_updateGateway_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedGateway !== null) {
+      if (!is_object($this->updatedGateway)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('updatedGateway', TType::STRUCT, 3);
+      $xfer += $this->updatedGateway->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_updateGateway_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_updateGateway_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_updateGateway_result');
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getGateway_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getGateway_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getGateway_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getGateway_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Workspace\Gateway
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Workspace\Gateway',
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getGateway_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \Airavata\Model\Workspace\Gateway();
+            $xfer += $this->success->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getGateway_result');
+    if ($this->success !== null) {
+      if (!is_object($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_deleteGateway_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_deleteGateway_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_deleteGateway_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_deleteGateway_result {
+  static $_TSPEC;
+
+  /**
+   * @var bool
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_deleteGateway_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_deleteGateway_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllGateways_args {
   static $_TSPEC;
 
   /**
    * @var \Airavata\Model\Security\AuthzToken
    */
   public $authzToken = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $userName = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -12768,31 +14557,17 @@ class Airavata_isUserExists_args {
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'userName',
-          'type' => TType::STRING,
-          ),
         );
     }
     if (is_array($vals)) {
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['userName'])) {
-        $this->userName = $vals['userName'];
-      }
     }
   }
 
   public function getName() {
-    return 'Airavata_isUserExists_args';
+    return 'Airavata_getAllGateways_args';
   }
 
   public function read($input)
@@ -12818,20 +14593,6 @@ class Airavata_isUserExists_args {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->userName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -12844,7 +14605,7 @@ class Airavata_isUserExists_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_isUserExists_args');
+    $xfer += $output->writeStructBegin('Airavata_getAllGateways_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -12853,16 +14614,6 @@ class Airavata_isUserExists_args {
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->userName !== null) {
-      $xfer += $output->writeFieldBegin('userName', TType::STRING, 3);
-      $xfer += $output->writeString($this->userName);
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -12870,11 +14621,11 @@ class Airavata_isUserExists_args {
 
 }
 
-class Airavata_isUserExists_result {
+class Airavata_getAllGateways_result {
   static $_TSPEC;
 
   /**
-   * @var bool
+   * @var \Airavata\Model\Workspace\Gateway[]
    */
   public $success = null;
   /**
@@ -12899,7 +14650,12 @@ class Airavata_isUserExists_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::BOOL,
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workspace\Gateway',
+            ),
           ),
         1 => array(
           'var' => 'ire',
@@ -12943,7 +14699,7 @@ class Airavata_isUserExists_result {
   }
 
   public function getName() {
-    return 'Airavata_isUserExists_result';
+    return 'Airavata_getAllGateways_result';
   }
 
   public function read($input)
@@ -12962,8 +14718,19 @@ class Airavata_isUserExists_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->success);
+          if ($ftype == TType::LST) {
+            $this->success = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \Airavata\Model\Workspace\Gateway();
+              $xfer += $elem5->read($input);
+              $this->success []= $elem5;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13012,10 +14779,22 @@ class Airavata_isUserExists_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_isUserExists_result');
+    $xfer += $output->writeStructBegin('Airavata_getAllGateways_result');
     if ($this->success !== null) {
-      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
-      $xfer += $output->writeBool($this->success);
+      if (!is_array($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->success));
+        {
+          foreach ($this->success as $iter6)
+          {
+            $xfer += $iter6->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -13045,7 +14824,7 @@ class Airavata_isUserExists_result {
 
 }
 
-class Airavata_addGateway_args {
+class Airavata_isGatewayExist_args {
   static $_TSPEC;
 
   /**
@@ -13053,9 +14832,9 @@ class Airavata_addGateway_args {
    */
   public $authzToken = null;
   /**
-   * @var \Airavata\Model\Workspace\Gateway
+   * @var string
    */
-  public $gateway = null;
+  public $gatewayId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -13066,9 +14845,8 @@ class Airavata_addGateway_args {
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
         2 => array(
-          'var' => 'gateway',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Workspace\Gateway',
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
           ),
         );
     }
@@ -13076,14 +14854,14 @@ class Airavata_addGateway_args {
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['gateway'])) {
-        $this->gateway = $vals['gateway'];
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
       }
     }
   }
 
   public function getName() {
-    return 'Airavata_addGateway_args';
+    return 'Airavata_isGatewayExist_args';
   }
 
   public function read($input)
@@ -13110,9 +14888,8 @@ class Airavata_addGateway_args {
           }
           break;
         case 2:
-          if ($ftype == TType::STRUCT) {
-            $this->gateway = new \Airavata\Model\Workspace\Gateway();
-            $xfer += $this->gateway->read($input);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13129,7 +14906,7 @@ class Airavata_addGateway_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_addGateway_args');
+    $xfer += $output->writeStructBegin('Airavata_isGatewayExist_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -13138,12 +14915,9 @@ class Airavata_addGateway_args {
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gateway !== null) {
-      if (!is_object($this->gateway)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('gateway', TType::STRUCT, 2);
-      $xfer += $this->gateway->write($output);
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -13153,11 +14927,11 @@ class Airavata_addGateway_args {
 
 }
 
-class Airavata_addGateway_result {
+class Airavata_isGatewayExist_result {
   static $_TSPEC;
 
   /**
-   * @var string
+   * @var bool
    */
   public $success = null;
   /**
@@ -13182,7 +14956,7 @@ class Airavata_addGateway_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::STRING,
+          'type' => TType::BOOL,
           ),
         1 => array(
           'var' => 'ire',
@@ -13226,7 +15000,7 @@ class Airavata_addGateway_result {
   }
 
   public function getName() {
-    return 'Airavata_addGateway_result';
+    return 'Airavata_isGatewayExist_result';
   }
 
   public function read($input)
@@ -13245,8 +15019,8 @@ class Airavata_addGateway_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->success);
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13295,10 +15069,10 @@ class Airavata_addGateway_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_addGateway_result');
+    $xfer += $output->writeStructBegin('Airavata_isGatewayExist_result');
     if ($this->success !== null) {
-      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
-      $xfer += $output->writeString($this->success);
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -13328,7 +15102,7 @@ class Airavata_addGateway_result {
 
 }
 
-class Airavata_updateGateway_args {
+class Airavata_createNotification_args {
   static $_TSPEC;
 
   /**
@@ -13336,13 +15110,9 @@ class Airavata_updateGateway_args {
    */
   public $authzToken = null;
   /**
-   * @var string
-   */
-  public $gatewayId = null;
-  /**
-   * @var \Airavata\Model\Workspace\Gateway
+   * @var \Airavata\Model\Workspace\Notification
    */
-  public $updatedGateway = null;
+  public $notification = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -13353,13 +15123,9 @@ class Airavata_updateGateway_args {
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
         2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'updatedGateway',
+          'var' => 'notification',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Workspace\Gateway',
+          'class' => '\Airavata\Model\Workspace\Notification',
           ),
         );
     }
@@ -13367,17 +15133,14 @@ class Airavata_updateGateway_args {
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['updatedGateway'])) {
-        $this->updatedGateway = $vals['updatedGateway'];
+      if (isset($vals['notification'])) {
+        $this->notification = $vals['notification'];
       }
     }
   }
 
   public function getName() {
-    return 'Airavata_updateGateway_args';
+    return 'Airavata_createNotification_args';
   }
 
   public function read($input)
@@ -13404,16 +15167,9 @@ class Airavata_updateGateway_args {
           }
           break;
         case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
           if ($ftype == TType::STRUCT) {
-            $this->updatedGateway = new \Airavata\Model\Workspace\Gateway();
-            $xfer += $this->updatedGateway->read($input);
+            $this->notification = new \Airavata\Model\Workspace\Notification();
+            $xfer += $this->notification->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13430,7 +15186,7 @@ class Airavata_updateGateway_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_updateGateway_args');
+    $xfer += $output->writeStructBegin('Airavata_createNotification_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -13439,17 +15195,12 @@ class Airavata_updateGateway_args {
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->updatedGateway !== null) {
-      if (!is_object($this->updatedGateway)) {
+    if ($this->notification !== null) {
+      if (!is_object($this->notification)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('updatedGateway', TType::STRUCT, 3);
-      $xfer += $this->updatedGateway->write($output);
+      $xfer += $output->writeFieldBegin('notification', TType::STRUCT, 2);
+      $xfer += $this->notification->write($output);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -13459,10 +15210,14 @@ class Airavata_updateGateway_args {
 
 }
 
-class Airavata_updateGateway_result {
+class Airavata_createNotification_result {
   static $_TSPEC;
 
   /**
+   * @var string
+   */
+  public $success = null;
+  /**
    * @var \Airavata\API\Error\InvalidRequestException
    */
   public $ire = null;
@@ -13482,6 +15237,10 @@ class Airavata_updateGateway_result {
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRING,
+          ),
         1 => array(
           'var' => 'ire',
           'type' => TType::STRUCT,
@@ -13505,6 +15264,9 @@ class Airavata_updateGateway_result {
         );
     }
     if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
       if (isset($vals['ire'])) {
         $this->ire = $vals['ire'];
       }
@@ -13521,7 +15283,7 @@ class Airavata_updateGateway_result {
   }
 
   public function getName() {
-    return 'Airavata_updateGateway_result';
+    return 'Airavata_createNotification_result';
   }
 
   public function read($input)
@@ -13539,6 +15301,13 @@ class Airavata_updateGateway_result {
       }
       switch ($fid)
       {
+        case 0:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         case 1:
           if ($ftype == TType::STRUCT) {
             $this->ire = new \Airavata\API\Error\InvalidRequestException();
@@ -13583,7 +15352,12 @@ class Airavata_updateGateway_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_updateGateway_result');
+    $xfer += $output->writeStructBegin('Airavata_createNotification_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
+      $xfer += $output->writeString($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->ire !== null) {
       $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
       $xfer += $this->ire->write($output);
@@ -13611,7 +15385,7 @@ class Airavata_updateGateway_result {
 
 }
 
-class Airavata_getGateway_args {
+class Airavata_updateNotification_args {
   static $_TSPEC;
 
   /**
@@ -13619,9 +15393,9 @@ class Airavata_getGateway_args {
    */
   public $authzToken = null;
   /**
-   * @var string
+   * @var \Airavata\Model\Workspace\Notification
    */
-  public $gatewayId = null;
+  public $notification = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -13632,8 +15406,9 @@ class Airavata_getGateway_args {
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
         2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
+          'var' => 'notification',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Workspace\Notification',
           ),
         );
     }
@@ -13641,14 +15416,14 @@ class Airavata_getGateway_args {
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
+      if (isset($vals['notification'])) {
+        $this->notification = $vals['notification'];
       }
     }
   }
 
   public function getName() {
-    return 'Airavata_getGateway_args';
+    return 'Airavata_updateNotification_args';
   }
 
   public function read($input)
@@ -13675,8 +15450,9 @@ class Airavata_getGateway_args {
           }
           break;
         case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
+          if ($ftype == TType::STRUCT) {
+            $this->notification = new \Airavata\Model\Workspace\Notification();
+            $xfer += $this->notification->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13693,7 +15469,7 @@ class Airavata_getGateway_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getGateway_args');
+    $xfer += $output->writeStructBegin('Airavata_updateNotification_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -13702,9 +15478,12 @@ class Airavata_getGateway_args {
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
+    if ($this->notification !== null) {
+      if (!is_object($this->notification)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('notification', TType::STRUCT, 2);
+      $xfer += $this->notification->write($output);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -13714,14 +15493,10 @@ class Airavata_getGateway_args {
 
 }
 
-class Airavata_getGateway_result {
+class Airavata_updateNotification_result {
   static $_TSPEC;
 
   /**
-   * @var \Airavata\Model\Workspace\Gateway
-   */
-  public $success = null;
-  /**
    * @var \Airavata\API\Error\InvalidRequestException
    */
   public $ire = null;
@@ -13741,11 +15516,6 @@ class Airavata_getGateway_result {
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
-        0 => array(
-          'var' => 'success',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Workspace\Gateway',
-          ),
         1 => array(
           'var' => 'ire',
           'type' => TType::STRUCT,
@@ -13769,9 +15539,6 @@ class Airavata_getGateway_result {
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['success'])) {
-        $this->success = $vals['success'];
-      }
       if (isset($vals['ire'])) {
         $this->ire = $vals['ire'];
       }
@@ -13788,7 +15555,7 @@ class Airavata_getGateway_result {
   }
 
   public function getName() {
-    return 'Airavata_getGateway_result';
+    return 'Airavata_updateNotification_result';
   }
 
   public function read($input)
@@ -13806,14 +15573,6 @@ class Airavata_getGateway_result {
       }
       switch ($fid)
       {
-        case 0:
-          if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\Workspace\Gateway();
-            $xfer += $this->success->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 1:
           if ($ftype == TType::STRUCT) {
             $this->ire = new \Airavata\API\Error\InvalidRequestException();
@@ -13858,15 +15617,7 @@ class Airavata_getGateway_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getGateway_result');
-    if ($this->success !== null) {
-      if (!is_object($this->success)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
-      $xfer += $this->success->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
+    $xfer += $output->writeStructBegin('Airavata_updateNotification_result');
     if ($this->ire !== null) {
       $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
       $xfer += $this->ire->write($output);
@@ -13894,7 +15645,7 @@ class Airavata_getGateway_result {
 
 }
 
-class Airavata_deleteGateway_args {
+class Airavata_deleteNotification_args {
   static $_TSPEC;
 
   /**
@@ -13905,6 +15656,10 @@ class Airavata_deleteGateway_args {
    * @var string
    */
   public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $notificationId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -13918,6 +15673,10 @@ class Airavata_deleteGateway_args {
           'var' => 'gatewayId',
           'type' => TType::STRING,
           ),
+        3 => array(
+          'var' => 'notificationId',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -13927,11 +15686,14 @@ class Airavata_deleteGateway_args {
       if (isset($vals['gatewayId'])) {
         $this->gatewayId = $vals['gatewayId'];
       }
+      if (isset($vals['notificationId'])) {
+        $this->notificationId = $vals['notificationId'];
+      }
     }
   }
 
   public function getName() {
-    return 'Airavata_deleteGateway_args';
+    return 'Airavata_deleteNotification_args';
   }
 
   public function read($input)
@@ -13964,6 +15726,13 @@ class Airavata_deleteGateway_args {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->notificationId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -13976,7 +15745,7 @@ class Airavata_deleteGateway_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_deleteGateway_args');
+    $xfer += $output->writeStructBegin('Airavata_deleteNotification_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -13990,6 +15759,11 @@ class Airavata_deleteGateway_args {
       $xfer += $output->writeString($this->gatewayId);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->notificationId !== null) {
+      $xfer += $output->writeFieldBegin('notificationId', TType::STRING, 3);
+      $xfer += $output->writeString($this->notificationId);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -13997,14 +15771,10 @@ class Airavata_deleteGateway_args {
 
 }
 
-class Airavata_deleteGateway_result {
+class Airavata_deleteNotification_result {
   static $_TSPEC;
 
   /**
-   * @var bool
-   */
-  public $success = null;
-  /**
    * @var \Airavata\API\Error\InvalidRequestException
    */
   public $ire = null;
@@ -14024,10 +15794,6 @@ class Airavata_deleteGateway_result {
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
-        0 => array(
-          'var' => 'success',
-          'type' => TType::BOOL,
-          ),
         1 => array(
           'var' => 'ire',
           'type' => TType::STRUCT,
@@ -14051,9 +15817,6 @@ class Airavata_deleteGateway_result {
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['success'])) {
-        $this->success = $vals['success'];
-      }
       if (isset($vals['ire'])) {
         $this->ire = $vals['ire'];
       }
@@ -14070,7 +15833,7 @@ class Airavata_deleteGateway_result {
   }
 
   public function getName() {
-    return 'Airavata_deleteGateway_result';
+    return 'Airavata_deleteNotification_result';
   }
 
   public function read($input)
@@ -14088,13 +15851,6 @@ class Airavata_deleteGateway_result {
       }
       switch ($fid)
       {
-        case 0:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->success);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 1:
           if ($ftype == TType::STRUCT) {
             $this->ire = new \Airavata\API\Error\InvalidRequestException();
@@ -14139,12 +15895,7 @@ class Airavata_deleteGateway_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_deleteGateway_result');
-    if ($this->success !== null) {
-      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
-      $xfer += $output->writeBool($this->success);
-      $xfer += $output->writeFieldEnd();
-    }
+    $xfer += $output->writeStructBegin('Airavata_deleteNotification_result');
     if ($this->ire !== null) {
       $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
       $xfer += $this->ire->write($output);
@@ -14172,13 +15923,21 @@ class Airavata_deleteGateway_result {
 
 }
 
-class Airavata_getAllGateways_args {
+class Airavata_getNotification_args {
   static $_TSPEC;
 
   /**
    * @var \Airavata\Model\Security\AuthzToken
    */
   public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $notificationId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -14188,17 +15947,31 @@ class Airavata_getAllGateways_args {
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'notificationId',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['notificationId'])) {
+        $this->notificationId = $vals['notificationId'];
+      }
     }
   }
 
   public function getName() {
-    return 'Airavata_getAllGateways_args';
+    return 'Airavata_getNotification_args';
   }
 
   public function read($input)
@@ -14224,6 +15997,20 @@ class Airavata_getAllGateways_args {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->notificationId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -14236,7 +16023,7 @@ class Airavata_getAllGateways_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGateways_args');
+    $xfer += $output->writeStructBegin('Airavata_getNotification_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -14245,6 +16032,16 @@ class Airavata_getAllGateways_args {
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->notificationId !== null) {
+      $xfer += $output->writeFieldBegin('notificationId', TType::STRING, 3);
+      $xfer += $output->writeString($this->notificationId);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -14252,11 +16049,11 @@ class Airavata_getAllGateways_args {
 
 }
 
-class Airavata_getAllGateways_result {
+class Airavata_getNotification_result {
   static $_TSPEC;
 
   /**
-   * @var \Airavata\Model\Workspace\Gateway[]
+   * @var \Airavata\Model\Workspace\Notification
    */
   public $success = null;
   /**
@@ -14281,12 +16078,8 @@ class Airavata_getAllGateways_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Gateway',
-            ),
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Workspace\Notification',
           ),
         1 => array(
           'var' => 'ire',
@@ -14330,7 +16123,7 @@ class Airavata_getAllGateways_result {
   }
 
   public function getName() {
-    return 'Airavata_getAllGateways_result';
+    return 'Airavata_getNotification_result';
   }
 
   public function read($input)
@@ -14349,19 +16142,9 @@ class Airavata_getAllGateways_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::LST) {
-            $this->success = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
-            {
-              $elem5 = null;
-              $elem5 = new \Airavata\Model\Workspace\Gateway();
-              $xfer += $elem5->read($input);
-              $this->success []= $elem5;
-            }
-            $xfer += $input->readListEnd();
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \Airavata\Model\Workspace\Notification();
+            $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -14410,22 +16193,13 @@ class Airavata_getAllGateways_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGateways_result');
+    $xfer += $output->writeStructBegin('Airavata_getNotification_result');
     if ($this->success !== null) {
-      if (!is_array($this->success)) {
+      if (!is_object($this->success)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->success));
-        {
-          foreach ($this->success as $iter6)
-          {
-            $xfer += $iter6->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -14455,7 +16229,7 @@ class Airavata_getAllGateways_result {
 
 }
 
-class Airavata_isGatewayExist_args {
+class Airavata_getAllNotifications_args {
   static $_TSPEC;
 
   /**
@@ -14492,7 +16266,7 @@ class Airavata_isGatewayExist_args {
   }
 
   public function getName() {
-    return 'Airavata_isGatewayExist_args';
+    return 'Airavata_getAllNotifications_args';
   }
 
 

<TRUNCATED>

[15/35] airavata git commit: Removed cloud module from main build

Posted by sh...@apache.org.
Removed cloud module from main build


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

Branch: refs/heads/master
Commit: d522a27aca499976b7789645515964388f67089f
Parents: cf575fe
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 15 16:33:50 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 15 16:33:50 2016 -0400

----------------------------------------------------------------------
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/d522a27a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b6883c8..a038bfa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -556,7 +556,7 @@
 				<module>modules/credential-store</module>
 				<module>modules/orchestrator</module>
 				<module>modules/monitoring</module>
-				<module>modules/cloud</module>
+				<!--<module>modules/cloud</module>-->
 				<module>modules/server</module>
 				<module>modules/workflow</module>
 				<module>modules/test-suite</module>


[12/35] airavata git commit: Adding the cloud-provisioning project

Posted by sh...@apache.org.
Adding the cloud-provisioning project


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

Branch: refs/heads/master
Commit: 975edba02f87e52fa036cf6f6d21231888e44ced
Parents: 232d346
Author: Mangirish Wagle <va...@gmail.com>
Authored: Tue Apr 12 00:40:12 2016 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Fri Apr 15 15:29:57 2016 -0400

----------------------------------------------------------------------
 modules/cloud/cloud-provisioning/README         |   7 +
 modules/cloud/cloud-provisioning/pom.xml        |  52 ++++++
 .../airavata/cloud/intf/CloudInterface.java     |  72 ++++++++
 .../cloud/intf/impl/OpenstackIntfImpl.java      | 172 +++++++++++++++++++
 .../cloud/openstack/OS4JClientProvider.java     | 117 +++++++++++++
 .../apache/airavata/cloud/util/CloudRef.java    |  40 +++++
 .../apache/airavata/cloud/util/Constants.java   |  34 ++++
 .../main/resources/jetstream_openrc.properties  |  29 ++++
 .../airavata/cloud/test/CloudIntfTest.java      | 118 +++++++++++++
 .../src/test/resources/test_data.properties     |  27 +++
 10 files changed, 668 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/README
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/README b/modules/cloud/cloud-provisioning/README
new file mode 100644
index 0000000..1b161a0
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/README
@@ -0,0 +1,7 @@
+This is the initial project created as an interface to various clouds.
+Currently supporting, Openstack on Jetstream using Openstack4j.
+
+To Test Run:-
+1) Replace the credentials in src/main/resources/jetstream_openrc.properties with the Jetstream credentials.
+2) Update the publicKeyFile, jetstream_imageId, jetstream_flavorId and jetstream_networkId to the local path in src/test/resources/test_data.properties. This are the parameters used by the unit tests.
+3) Run JUnit Test org.apache.airavata.cloud.test.CloudIntfTest.

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/pom.xml b/modules/cloud/cloud-provisioning/pom.xml
new file mode 100644
index 0000000..0554f0c
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/pom.xml
@@ -0,0 +1,52 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.apache.airavata.cloud</groupId>
+	<artifactId>cloud-provisioning</artifactId>
+	<version>0.0.1</version>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.pacesys</groupId>
+			<artifactId>openstack4j</artifactId>
+			<version>2.0.9</version>
+			<classifier>withdeps</classifier>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>1.7.21</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-simple</artifactId>
+			<version>1.7.21</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<directory>target</directory>
+		<outputDirectory>target/classes</outputDirectory>
+		<finalName>${project.artifactId}-${project.version}</finalName>
+		<testOutputDirectory>target/test-classes</testOutputDirectory>
+		<sourceDirectory>src/main/java</sourceDirectory>
+		<testSourceDirectory>src/test/java</testSourceDirectory>
+		<resources>
+			<resource>
+				<directory>src/main/resources</directory>
+			</resource>
+		</resources>
+		<testResources>
+			<testResource>
+				<directory>src/test/resources</directory>
+			</testResource>
+		</testResources>
+		<plugins>
+		</plugins>
+	</build>
+</project>

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java
new file mode 100644
index 0000000..f9d9520
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/CloudInterface.java
@@ -0,0 +1,72 @@
+/*
+ *
+ * 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.cloud.intf;
+
+import org.openstack4j.model.compute.Keypair;
+import org.openstack4j.model.compute.Server;
+
+public interface CloudInterface {
+
+	/**
+	 * Method to create Server.
+	 * @param serverName
+	 * @param imageId
+	 * @param flavorId
+	 * @param networkId
+	 * @param keyPairName
+	 * @return Server object.
+	 */
+	public Server createServer(String serverName, String imageId, String flavorId, String networkId, String keyPairName);
+
+	/**
+	 * Returns the Server object pertaining to the serverId.
+	 * @param serverId
+	 * @return
+	 */
+	public Server getServer(String serverId);
+
+	/**
+	 * Method to delete Server.
+	 * @param serverId
+	 * @return
+	 */
+	public void deleteServer(String serverId);
+
+	/**
+	 * Creates a public key pair on the cloud
+	 * @param publicKey
+	 */
+	public Keypair createKeyPair(String keyPairName, String publicKey);
+
+	/**
+	 * Returns the keypair object associated to the keyPairName.
+	 * @param keyPairName
+	 * @return
+	 */
+	public Keypair getKeyPair(String keyPairName);
+
+	/**
+	 * Deletes a public key pair on the cloud
+	 * @param publicKey
+	 */
+	public void deleteKeyPair(String keyPairName);
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java
new file mode 100644
index 0000000..cb202c4
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/intf/impl/OpenstackIntfImpl.java
@@ -0,0 +1,172 @@
+/*
+ *
+ * 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.cloud.intf.impl;
+
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.airavata.cloud.intf.CloudInterface;
+import org.apache.airavata.cloud.openstack.OS4JClientProvider;
+import org.openstack4j.api.Builders;
+import org.openstack4j.api.OSClient;
+import org.openstack4j.model.compute.Keypair;
+import org.openstack4j.model.compute.Server;
+import org.openstack4j.model.compute.ServerCreate;
+
+public class OpenstackIntfImpl implements CloudInterface {
+
+	/** The properties. */
+	private String propertiesFile;
+	private Properties properties;
+
+	OSClient os = null;
+
+	/**
+	 * Default Constructor
+	 * Initializing the properties.
+	 */
+	public OpenstackIntfImpl(String propFile) {
+		try {
+
+			this.propertiesFile = propFile;
+			InputStream inputStream = getClass().getClassLoader()
+					.getResourceAsStream(propertiesFile);
+
+			if(inputStream != null) {
+				properties = new Properties();
+				properties.load(inputStream);
+			}
+			else {
+				throw new FileNotFoundException("property file: " + propertiesFile + " not found!");
+			}
+
+			// Initialize the OSClient.
+			os = OS4JClientProvider.getOSClient(properties);
+		}
+		catch(Exception ex) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+		}
+	}
+
+	@Override
+	public Server createServer(String serverName, String imageId, String flavorId, String networkId, String keyPairName) {
+		try {
+
+
+			List<String> srvNet = new LinkedList<String>();
+			srvNet.add(networkId);
+
+			ServerCreate sc = Builders.server()
+					.name(serverName)
+					.flavor(flavorId)
+					.image(imageId)
+					.networks(srvNet)
+					.keypairName(keyPairName)
+					.addPersonality("/etc/motd", "Welcome to the new VM! Restricted access only")
+					.build();
+
+			//Boot the Server
+			Server newServer = os.compute().servers().boot(sc);
+
+			return newServer;
+		}
+		catch( Exception ex ) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+			return null;
+		}
+	}
+
+	@Override
+	public Server getServer(String serverId) {
+		try {
+
+			Server server = os.compute().servers().get(serverId);
+
+			return server;
+		}
+		catch( Exception ex ) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+			return null;
+		}
+	}
+
+	@Override
+	public void deleteServer(String serverId) {
+		try {
+
+			os.compute().servers().delete(serverId);
+		}
+		catch( Exception ex ) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+		}
+	}
+
+	@Override
+	public Keypair createKeyPair(String keyPairName, String publicKey) {
+		try {
+
+			Keypair keyp = os.compute().keypairs().create(keyPairName, publicKey);
+
+			return keyp;
+		}
+		catch( Exception ex ) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+			return null;
+		}
+	}
+
+	@Override
+	public Keypair getKeyPair(String keyPairName) {
+		try {
+
+			Keypair keyp = os.compute().keypairs().get(keyPairName);
+
+			return keyp;
+		}
+		catch( Exception ex ) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+			return null;
+		}
+	}
+
+	@Override
+	public void deleteKeyPair(String keyPairName) {
+		try {
+
+			os.compute().keypairs().delete(keyPairName);
+		}
+		catch( Exception ex ) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+		}
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/openstack/OS4JClientProvider.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/openstack/OS4JClientProvider.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/openstack/OS4JClientProvider.java
new file mode 100644
index 0000000..394d1bf
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/openstack/OS4JClientProvider.java
@@ -0,0 +1,117 @@
+/*
+ *
+ * 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.cloud.openstack;
+
+import java.util.Properties;
+
+import org.apache.airavata.cloud.util.Constants;
+import org.openstack4j.api.OSClient;
+import org.openstack4j.model.common.Identifier;
+import org.openstack4j.openstack.OSFactory;
+
+public class OS4JClientProvider {
+
+	private static OSClient os = null;
+	private static Integer apiVersion = null;
+
+
+	public static OSClient getOSClient(Properties properties) {
+
+		try {
+			String endPoint = properties.getProperty(Constants.OS_AUTH_URL);
+			String userName = properties.getProperty(Constants.OS_USERNAME);
+			String password = properties.getProperty(Constants.OS_PASSWORD);
+			String domain = properties.getProperty(Constants.OS_USER_DOMAIN_NAME);
+			String apiVersion = properties.getProperty(Constants.OS_IDENTITY_API_VERSION);
+
+			// Initialize client for api version 3.
+			if( apiVersion.equals("3") ) {
+				String project = properties.getProperty(Constants.OS_PROJECT_DOMAIN_NAME);
+				getOSClientV3(endPoint, userName, password, domain, project);
+			}
+			// Initialize client for api version 2.
+			else if( apiVersion.equals("2") ) {
+				getOSClientV2(endPoint, userName, password, domain);
+			}
+			else {
+				throw new Exception("Non- supported Openstack API version " + properties.getProperty("OS_IDENTITY_API_VERSION"));
+			}
+		}
+		catch(Exception ex) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+		}
+		return os;
+	}
+
+	/**
+	 * Function that authenticates to openstack using v3 APIs.
+	 * @param endPoint
+	 * @param userName
+	 * @param password
+	 * @param domain
+	 * @param project
+	 * @return OSClient object that can be used for other OpenStack operations.
+	 */
+	public static void getOSClientV3(String endPoint, String userName, String password,
+			String domain, String project) {
+
+		if(os == null || apiVersion == null ||apiVersion != 3 || ! os.getEndpoint().equals(endPoint)) {
+
+			Identifier domainIdentifier = Identifier.byName(domain);
+			Identifier projectIdentifier = Identifier.byName(project);
+			os = OSFactory.builderV3()
+					.scopeToProject(projectIdentifier, domainIdentifier)
+					.endpoint(endPoint)
+					.credentials(userName, password, domainIdentifier)
+					.authenticate();
+
+			apiVersion = 3;
+		}
+	}
+
+	/**
+	 * Function that authenticates to openstack using v2 APIs.
+	 * @param endPoint
+	 * @param userName
+	 * @param password
+	 * @param domain
+	 * @param project
+	 * @return OSClient object that can be used for other Openstack operations.
+	 */
+	public static void getOSClientV2(String endPoint, String userName, String password,
+			String domain) {
+
+		if(os == null || apiVersion == null ||apiVersion != 2 || ! os.getEndpoint().equals(endPoint)) {
+
+			Identifier domainIdentifier = Identifier.byName(domain);
+			//Identifier projectIdentifier = Identifier.byName(project);
+			os = OSFactory.builderV3()
+					//.scopeToProject(projectIdentifier, domainIdentifier)
+					.endpoint(endPoint)
+					.credentials(userName, password, domainIdentifier)
+					.authenticate();
+
+			apiVersion = 2;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/CloudRef.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/CloudRef.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/CloudRef.java
new file mode 100644
index 0000000..e2a7c36
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/CloudRef.java
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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.cloud.util;
+
+public enum CloudRef {
+
+	JETSTREAM("jetstream"),
+	AMAZON("amazon"),
+	COMET("comet");
+
+	String cloudType;
+
+	private CloudRef(String type) {
+		this.cloudType = type;
+	}
+
+	@Override
+	public String toString() {
+		return this.cloudType;
+	}
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java
new file mode 100644
index 0000000..275a0e7
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/main/java/org/apache/airavata/cloud/util/Constants.java
@@ -0,0 +1,34 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with tproperties.getProperty("OS_PROJECT_DOMAIN_NAME")his 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.cloud.util;
+
+public class Constants {
+
+	// OpenStack openrc string constants.
+	public static final String OS_AUTH_URL = "OS_AUTH_URL";
+	public static final String OS_IDENTITY_API_VERSION = "OS_IDENTITY_API_VERSION";
+	public static final String OS_USERNAME = "OS_USERNAME";
+	public static final String OS_PASSWORD = "OS_PASSWORD";
+	public static final String OS_USER_DOMAIN_NAME = "OS_USER_DOMAIN_NAME";
+	public static final String OS_PROJECT_DOMAIN_NAME = "OS_PROJECT_DOMAIN_NAME";
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties b/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties
new file mode 100644
index 0000000..9487bc1
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/main/resources/jetstream_openrc.properties
@@ -0,0 +1,29 @@
+#
+#
+# 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.
+#
+
+# Authentication properties
+OS_PROJECT_DOMAIN_NAME=scigap
+OS_USER_DOMAIN_NAME=tacc
+OS_PROJECT_NAME=scigap
+OS_TENANT_NAME=scigap
+OS_USERNAME=scigap
+OS_PASSWORD=xxxxxxxx
+OS_AUTH_URL=https://jblb.jetstream-cloud.org:35357/v3
+OS_IDENTITY_API_VERSION=3

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java b/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java
new file mode 100644
index 0000000..71a8a53
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/test/java/org/apache/airavata/cloud/test/CloudIntfTest.java
@@ -0,0 +1,118 @@
+/*
+ *
+ * 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.cloud.test;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.util.Properties;
+import java.util.Scanner;
+
+import org.apache.airavata.cloud.intf.CloudInterface;
+import org.apache.airavata.cloud.intf.impl.OpenstackIntfImpl;
+import org.junit.Test;
+import org.openstack4j.model.compute.Keypair;
+import org.openstack4j.model.compute.Server;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CloudIntfTest {
+
+	/** The properties. */
+	private String propertiesFile = "test_data.properties";
+	private Properties properties;
+
+	// Initializing Logger
+	private Logger logger = LoggerFactory.getLogger(CloudIntfTest.class);
+
+	public CloudIntfTest() {
+		try {
+
+			InputStream inputStream = getClass().getClassLoader()
+					.getResourceAsStream(propertiesFile);
+
+			if(inputStream != null) {
+				properties = new Properties();
+				properties.load(inputStream);
+			}
+			else {
+				throw new FileNotFoundException("property file: " + propertiesFile + " not found!");
+			}
+
+		}
+		catch(Exception ex) {
+			ex.printStackTrace();
+			// TODO: Check with the team on how to handle exceptions.
+		}
+	}
+
+	/**
+	 * Test that will create keypair, create server with keypair, delete server, delete keypair.
+	 */
+	@Test
+	public void jetstreamCreateDeleteServerTest() {
+		try {
+			CloudInterface cloudIntf = new OpenstackIntfImpl("jetstream_openrc.properties");
+			// Sample data. This can be determined by the inputs from Airavata.
+			String imageId = properties.getProperty("jetstream_imageId");
+			String flavorId = properties.getProperty("jetstream_flavorId");
+			String networkId = properties.getProperty("jetstream_networkId");
+
+			/* Create Keypair */
+			String publicKeyFile = properties.getProperty("publicKeyFile");
+			String keyPairName = "testKey";
+
+			Scanner fileScan = new Scanner(new FileInputStream(publicKeyFile));
+			String publicKey = fileScan.nextLine();
+
+			Keypair kp = cloudIntf.getKeyPair(keyPairName);
+			if(kp == null) {
+				kp = cloudIntf.createKeyPair(keyPairName, publicKey);
+			}
+
+			logger.info("Keypair created/ retrieved: " + kp.getFingerprint());
+
+			/* Create Server */
+			Server newServer = cloudIntf.createServer("AiravataTest", imageId, flavorId, networkId, kp.getName());
+			logger.info("Server Created: " + newServer.getId());
+
+			/* Delete Server */
+			cloudIntf.deleteServer(newServer.getId());
+			logger.info("Server deleted: " + newServer.getId());
+
+			Server deleted = cloudIntf.getServer(newServer.getId());
+
+			/* Delete Keypair */
+			cloudIntf.deleteKeyPair(kp.getName());
+			logger.info("Keypair deleted: " + kp.getName());
+
+			assertTrue(newServer != null && deleted == null);
+		}
+		catch( Exception ex ) {
+			ex.printStackTrace();
+			fail();
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/975edba0/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties
----------------------------------------------------------------------
diff --git a/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties b/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties
new file mode 100644
index 0000000..2ebf7c7
--- /dev/null
+++ b/modules/cloud/cloud-provisioning/src/test/resources/test_data.properties
@@ -0,0 +1,27 @@
+#
+#
+# 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.
+#
+
+# Common properties
+publicKeyFile=/path/id_rsa.pub
+
+# Jetstream properties
+jetstream_imageId=7048bb41-bbbbb-4caa-9370-xxxxxxxxxxx
+jetstream_flavorId=3
+jetstream_networkId=4367cd20-cccc-4dc2-97e8-kkkkkkkkkkk


[20/35] airavata git commit: Exit from while loop if sucess

Posted by sh...@apache.org.
Exit from while loop if sucess


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

Branch: refs/heads/master
Commit: 7781ff8fe15868d1e1ecc86703aaff03f09c60f2
Parents: 77a5118
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Apr 22 14:56:37 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Apr 22 14:56:37 2016 -0400

----------------------------------------------------------------------
 .../main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java  | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/7781ff8f/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
index 468249e..cdd0500 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java
@@ -177,6 +177,7 @@ public class HPCRemoteCluster extends AbstractRemoteCluster{
                     } else {
                         SSHUtils.scpThirdParty(sourceFile, session, destinationFile, clientSession, ignoreEmptyFile);
                     }
+					break; // exit while loop
 				} catch (JSchException e) {
 					if (retryCount == MAX_RETRY_COUNT) {
 						log.error("Retry count " + MAX_RETRY_COUNT + " exceeded for  transferring from:"
@@ -202,6 +203,7 @@ public class HPCRemoteCluster extends AbstractRemoteCluster{
 				log.info("Creating directory: " + serverInfo.getHost() + ":" + directoryPath);
 				try {
 					SSHUtils.makeDirectory(directoryPath, session);
+					break;  // Exit while loop
 				} catch (JSchException e) {
 					if (retryCount == MAX_RETRY_COUNT) {
 						log.error("Retry count " + MAX_RETRY_COUNT + " exceeded for creating directory: "


[22/35] airavata git commit: adding backend functionality for notifications

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py
index a7bffb8..ce23bea 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/workspace/ttypes.py
@@ -458,3 +458,139 @@ class Gateway:
 
   def __ne__(self, other):
     return not (self == other)
+
+class Notification:
+  """
+  Attributes:
+   - notificationId
+   - gatewayId
+   - title
+   - notifcationMessage
+   - publishedtime
+   - expirationTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'notificationId', None, None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRING, 'title', None, None, ), # 3
+    (4, TType.STRING, 'notifcationMessage', None, None, ), # 4
+    (5, TType.I64, 'publishedtime', None, None, ), # 5
+    (6, TType.I64, 'expirationTime', None, None, ), # 6
+  )
+
+  def __init__(self, notificationId=None, gatewayId=None, title=None, notifcationMessage=None, publishedtime=None, expirationTime=None,):
+    self.notificationId = notificationId
+    self.gatewayId = gatewayId
+    self.title = title
+    self.notifcationMessage = notifcationMessage
+    self.publishedtime = publishedtime
+    self.expirationTime = expirationTime
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.notificationId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.title = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.notifcationMessage = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.I64:
+          self.publishedtime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.I64:
+          self.expirationTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('Notification')
+    if self.notificationId is not None:
+      oprot.writeFieldBegin('notificationId', TType.STRING, 1)
+      oprot.writeString(self.notificationId)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.title is not None:
+      oprot.writeFieldBegin('title', TType.STRING, 3)
+      oprot.writeString(self.title)
+      oprot.writeFieldEnd()
+    if self.notifcationMessage is not None:
+      oprot.writeFieldBegin('notifcationMessage', TType.STRING, 4)
+      oprot.writeString(self.notifcationMessage)
+      oprot.writeFieldEnd()
+    if self.publishedtime is not None:
+      oprot.writeFieldBegin('publishedtime', TType.I64, 5)
+      oprot.writeI64(self.publishedtime)
+      oprot.writeFieldEnd()
+    if self.expirationTime is not None:
+      oprot.writeFieldBegin('expirationTime', TType.I64, 6)
+      oprot.writeI64(self.expirationTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    if self.title is None:
+      raise TProtocol.TProtocolException(message='Required field title is unset!')
+    if self.notifcationMessage is None:
+      raise TProtocol.TProtocolException(message='Required field notifcationMessage is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.notificationId)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.title)
+    value = (value * 31) ^ hash(self.notifcationMessage)
+    value = (value * 31) ^ hash(self.publishedtime)
+    value = (value * 31) ^ hash(self.expirationTime)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
index 9478451..00dbe75 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ComponentStatus implements org.apache.thrift.TBase<ComponentStatus, ComponentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ComponentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComponentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
index 045de67..52922fa 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class EdgeModel implements org.apache.thrift.TBase<EdgeModel, EdgeModel._Fields>, java.io.Serializable, Cloneable, Comparable<EdgeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EdgeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
index be05c22..0a4aa4f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class NodeModel implements org.apache.thrift.TBase<NodeModel, NodeModel._Fields>, java.io.Serializable, Cloneable, Comparable<NodeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NodeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
index cb4ba65..e218de7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class PortModel implements org.apache.thrift.TBase<PortModel, PortModel._Fields>, java.io.Serializable, Cloneable, Comparable<PortModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PortModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
index 58b279e..80acc5c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class WorkflowModel implements org.apache.thrift.TBase<WorkflowModel, WorkflowModel._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
index 8832b1e..149f366 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class WorkflowStatus implements org.apache.thrift.TBase<WorkflowStatus, WorkflowStatus._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index 421bec0..931dd34 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *  assigns to the environment variable "NAME" the value
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index ba64fdc..8c202d6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  *    Descriprion of the Module
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
index 7829673..e9332f4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * commandOrder:
  *   Order of the command in the multiple command situation
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class CommandObject implements org.apache.thrift.TBase<CommandObject, CommandObject._Fields>, java.io.Serializable, Cloneable, Comparable<CommandObject> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommandObject");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index 12da26f..e024dd9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -63,7 +63,7 @@ import org.slf4j.LoggerFactory;
  * envPathOrder:
  *   The order of the setting of the env variables when there are multiple env variables
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index 63b40ed..1b11bea 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   Outputs generated from the application
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index fc02ddd..6437e84 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * maxRunTime:
  *  Maximum allowed run time in hours.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index d5c0223..455c1c7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index 14e1eda..7d14bab 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -80,7 +80,7 @@ import org.slf4j.LoggerFactory;
  *  Map of file systems type and the path.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index c327a13..8fe9630 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index c42e3f8..3d23d5b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index fa9efed..f3934b5 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index 6ae8a78..b84a869 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  *  An enumeration of commonly used manager commands.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index 832ae0b..1461064 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  *    the same. Example: *@*.example.com or *@example.com
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
index 85f19c9..adf2a42 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -59,7 +59,7 @@ import org.slf4j.LoggerFactory;
  * authenticationMode
  *  The authenticationMode defines the way certificate is fetched.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index 707d67b..5cbd8fd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -85,7 +85,7 @@ import org.slf4j.LoggerFactory;
  *   default credential store.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ComputeResourcePreference implements org.apache.thrift.TBase<ComputeResourcePreference, ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourcePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourcePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index 52e8bcd..7204527 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *  List of resource preferences for each of the registered compute resources.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayResourceProfile, GatewayResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayResourceProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
index 0f40677..d8332e6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class StoragePreference implements org.apache.thrift.TBase<StoragePreference, StoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<StoragePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StoragePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
index 1c6bb51..3afa4e6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class StorageResourceDescription implements org.apache.thrift.TBase<StorageResourceDescription, StorageResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<StorageResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StorageResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index ceb5101..f115ca9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index abd2017..2440676 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataObjectType, OutputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<OutputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OutputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
index a6399b2..0d78880 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ErrorModel implements org.apache.thrift.TBase<ErrorModel, ErrorModel._Fields>, java.io.Serializable, Cloneable, Comparable<ErrorModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ErrorModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
index 5537399..7f18838 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
index 7e8cf53..1c9adeb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * during the experiment launch operation
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
index 196fc0b..7d5df52 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class DataMovementInterface implements org.apache.thrift.TBase<DataMovementInterface, DataMovementInterface._Fields>, java.io.Serializable, Cloneable, Comparable<DataMovementInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataMovementInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
index eb87de9..44c0443 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
index 7ec5ae2..14c085e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-defualt port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class LOCALDataMovement implements org.apache.thrift.TBase<LOCALDataMovement, LOCALDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
index 32d671d..3ccef4a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
index e5138b3..b5c71bb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * unicoreEndPointURL:
  *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
index 4e5ccbe..7f27013 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class DataProductModel implements org.apache.thrift.TBase<DataProductModel, DataProductModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataProductModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataProductModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
index 29f51aa..8fec272 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataReplicaLocationModel, DataReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataReplicaLocationModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataReplicaLocationModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
index 50cc83e..3b1ab1f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  * parameter:  If the error applied to a particular input parameter, this will
  *   indicate which parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class AiravataClientException extends TException implements org.apache.thrift.TBase<AiravataClientException, AiravataClientException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataClientException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataClientException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
index b167aec..c5763fe 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  * message:  This may contain additional information about the error
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class AiravataSystemException extends TException implements org.apache.thrift.TBase<AiravataSystemException, AiravataSystemException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataSystemException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataSystemException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
index 659d1ec..89e8d83 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the cause of the authorization failure.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class AuthenticationException extends TException implements org.apache.thrift.TBase<AuthenticationException, AuthenticationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthenticationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthenticationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
index b372bc3..e81559b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the authorization failure message
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class AuthorizationException extends TException implements org.apache.thrift.TBase<AuthorizationException, AuthorizationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthorizationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthorizationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
index 87148b7..b3d6527 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * 
  * key:  The value passed from the client in the identifier, which was not found.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ExperimentNotFoundException extends TException implements org.apache.thrift.TBase<ExperimentNotFoundException, ExperimentNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
index 19268c0..835596c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the associated error message.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class InvalidRequestException extends TException implements org.apache.thrift.TBase<InvalidRequestException, InvalidRequestException._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidRequestException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidRequestException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
index db3688f..9cc4688 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class LaunchValidationException extends TException implements org.apache.thrift.TBase<LaunchValidationException, LaunchValidationException._Fields>, java.io.Serializable, Cloneable, Comparable<LaunchValidationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LaunchValidationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
index 9a04347..2d20440 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 2:  optional  string key
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ProjectNotFoundException extends TException implements org.apache.thrift.TBase<ProjectNotFoundException, ProjectNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
index c8a9b10..9700405 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
@@ -54,7 +54,7 @@ import org.slf4j.LoggerFactory;
 /**
  * This exception is thrown when RPC timeout gets exceeded.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class TimedOutException extends TException implements org.apache.thrift.TBase<TimedOutException, TimedOutException._Fields>, java.io.Serializable, Cloneable, Comparable<TimedOutException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TimedOutException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
index 25d993d..afd1b9e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
index 7968c96..db94db3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
index dc7d950..544da5d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  * experimentDescription:
  *    The verbose description of the experiment. This is an optional parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel, ExperimentModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
index 25b1b60..b9c0cd2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentStatistics, ExperimentStatistics._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatistics> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatistics");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
index 5feb2bf..b2e6748 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ExperimentSummaryModel implements org.apache.thrift.TBase<ExperimentSummaryModel, ExperimentSummaryModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSummaryModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSummaryModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
index d9aacee..9425c75 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class UserConfigurationDataModel implements org.apache.thrift.TBase<UserConfigurationDataModel, UserConfigurationDataModel._Fields>, java.io.Serializable, Cloneable, Comparable<UserConfigurationDataModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserConfigurationDataModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index 6f6b343..37dcb1d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
index 44c1a1e..f16b689 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ExperimentStatusChangeEvent implements org.apache.thrift.TBase<ExperimentStatusChangeEvent, ExperimentStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
index 5cbdbf1..9a7249c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class JobIdentifier implements org.apache.thrift.TBase<JobIdentifier, JobIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<JobIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
index 56c4643..93ebc8e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class JobStatusChangeEvent implements org.apache.thrift.TBase<JobStatusChangeEvent, JobStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
index d04cb20..4a6a7d8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class JobStatusChangeRequestEvent implements org.apache.thrift.TBase<JobStatusChangeRequestEvent, JobStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
index e852c7e..d7b04b8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class Message implements org.apache.thrift.TBase<Message, Message._Fields>, java.io.Serializable, Cloneable, Comparable<Message> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Message");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
index 73f424b..f4b7f2a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ProcessIdentifier implements org.apache.thrift.TBase<ProcessIdentifier, ProcessIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
index 4d66e75..9fcd652 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ProcessStatusChangeEvent implements org.apache.thrift.TBase<ProcessStatusChangeEvent, ProcessStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/47290ad1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
index f6f9bc2..4547711 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-30")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
 public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<ProcessStatusChangeRequestEvent, ProcessStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeRequestEvent");
 


[31/35] airavata git commit: adding missing thrift class

Posted by sh...@apache.org.
adding missing thrift class


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

Branch: refs/heads/master
Commit: 22ae026168cf2fa5a0530e625a6aaf80eb63d692
Parents: d905749
Author: scnakandala <su...@gmail.com>
Authored: Fri Apr 22 15:22:20 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Fri Apr 22 15:22:20 2016 -0400

----------------------------------------------------------------------
 .../airavata/model/workspace/Notification.java  | 920 +++++++++++++++++++
 1 file changed, 920 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/22ae0261/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
new file mode 100644
index 0000000..1e496fa
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
@@ -0,0 +1,920 @@
+/**
+ * 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.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-04-22")
+public class Notification implements org.apache.thrift.TBase<Notification, Notification._Fields>, java.io.Serializable, Cloneable, Comparable<Notification> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Notification");
+
+  private static final org.apache.thrift.protocol.TField NOTIFICATION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("notificationId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField TITLE_FIELD_DESC = new org.apache.thrift.protocol.TField("title", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField NOTIFCATION_MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("notifcationMessage", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField PUBLISHEDTIME_FIELD_DESC = new org.apache.thrift.protocol.TField("publishedtime", org.apache.thrift.protocol.TType.I64, (short)5);
+  private static final org.apache.thrift.protocol.TField EXPIRATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("expirationTime", org.apache.thrift.protocol.TType.I64, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new NotificationStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new NotificationTupleSchemeFactory());
+  }
+
+  private String notificationId; // optional
+  private String gatewayId; // required
+  private String title; // required
+  private String notifcationMessage; // required
+  private long publishedtime; // optional
+  private long expirationTime; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    NOTIFICATION_ID((short)1, "notificationId"),
+    GATEWAY_ID((short)2, "gatewayId"),
+    TITLE((short)3, "title"),
+    NOTIFCATION_MESSAGE((short)4, "notifcationMessage"),
+    PUBLISHEDTIME((short)5, "publishedtime"),
+    EXPIRATION_TIME((short)6, "expirationTime");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // NOTIFICATION_ID
+          return NOTIFICATION_ID;
+        case 2: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // TITLE
+          return TITLE;
+        case 4: // NOTIFCATION_MESSAGE
+          return NOTIFCATION_MESSAGE;
+        case 5: // PUBLISHEDTIME
+          return PUBLISHEDTIME;
+        case 6: // EXPIRATION_TIME
+          return EXPIRATION_TIME;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __PUBLISHEDTIME_ISSET_ID = 0;
+  private static final int __EXPIRATIONTIME_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.NOTIFICATION_ID,_Fields.PUBLISHEDTIME,_Fields.EXPIRATION_TIME};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.NOTIFICATION_ID, new org.apache.thrift.meta_data.FieldMetaData("notificationId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TITLE, new org.apache.thrift.meta_data.FieldMetaData("title", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.NOTIFCATION_MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("notifcationMessage", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PUBLISHEDTIME, new org.apache.thrift.meta_data.FieldMetaData("publishedtime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.EXPIRATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("expirationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Notification.class, metaDataMap);
+  }
+
+  public Notification() {
+  }
+
+  public Notification(
+    String gatewayId,
+    String title,
+    String notifcationMessage)
+  {
+    this();
+    this.gatewayId = gatewayId;
+    this.title = title;
+    this.notifcationMessage = notifcationMessage;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Notification(Notification other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetNotificationId()) {
+      this.notificationId = other.notificationId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetTitle()) {
+      this.title = other.title;
+    }
+    if (other.isSetNotifcationMessage()) {
+      this.notifcationMessage = other.notifcationMessage;
+    }
+    this.publishedtime = other.publishedtime;
+    this.expirationTime = other.expirationTime;
+  }
+
+  public Notification deepCopy() {
+    return new Notification(this);
+  }
+
+  @Override
+  public void clear() {
+    this.notificationId = null;
+    this.gatewayId = null;
+    this.title = null;
+    this.notifcationMessage = null;
+    setPublishedtimeIsSet(false);
+    this.publishedtime = 0;
+    setExpirationTimeIsSet(false);
+    this.expirationTime = 0;
+  }
+
+  public String getNotificationId() {
+    return this.notificationId;
+  }
+
+  public void setNotificationId(String notificationId) {
+    this.notificationId = notificationId;
+  }
+
+  public void unsetNotificationId() {
+    this.notificationId = null;
+  }
+
+  /** Returns true if field notificationId is set (has been assigned a value) and false otherwise */
+  public boolean isSetNotificationId() {
+    return this.notificationId != null;
+  }
+
+  public void setNotificationIdIsSet(boolean value) {
+    if (!value) {
+      this.notificationId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getTitle() {
+    return this.title;
+  }
+
+  public void setTitle(String title) {
+    this.title = title;
+  }
+
+  public void unsetTitle() {
+    this.title = null;
+  }
+
+  /** Returns true if field title is set (has been assigned a value) and false otherwise */
+  public boolean isSetTitle() {
+    return this.title != null;
+  }
+
+  public void setTitleIsSet(boolean value) {
+    if (!value) {
+      this.title = null;
+    }
+  }
+
+  public String getNotifcationMessage() {
+    return this.notifcationMessage;
+  }
+
+  public void setNotifcationMessage(String notifcationMessage) {
+    this.notifcationMessage = notifcationMessage;
+  }
+
+  public void unsetNotifcationMessage() {
+    this.notifcationMessage = null;
+  }
+
+  /** Returns true if field notifcationMessage is set (has been assigned a value) and false otherwise */
+  public boolean isSetNotifcationMessage() {
+    return this.notifcationMessage != null;
+  }
+
+  public void setNotifcationMessageIsSet(boolean value) {
+    if (!value) {
+      this.notifcationMessage = null;
+    }
+  }
+
+  public long getPublishedtime() {
+    return this.publishedtime;
+  }
+
+  public void setPublishedtime(long publishedtime) {
+    this.publishedtime = publishedtime;
+    setPublishedtimeIsSet(true);
+  }
+
+  public void unsetPublishedtime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PUBLISHEDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field publishedtime is set (has been assigned a value) and false otherwise */
+  public boolean isSetPublishedtime() {
+    return EncodingUtils.testBit(__isset_bitfield, __PUBLISHEDTIME_ISSET_ID);
+  }
+
+  public void setPublishedtimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PUBLISHEDTIME_ISSET_ID, value);
+  }
+
+  public long getExpirationTime() {
+    return this.expirationTime;
+  }
+
+  public void setExpirationTime(long expirationTime) {
+    this.expirationTime = expirationTime;
+    setExpirationTimeIsSet(true);
+  }
+
+  public void unsetExpirationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __EXPIRATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field expirationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetExpirationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __EXPIRATIONTIME_ISSET_ID);
+  }
+
+  public void setExpirationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __EXPIRATIONTIME_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case NOTIFICATION_ID:
+      if (value == null) {
+        unsetNotificationId();
+      } else {
+        setNotificationId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case TITLE:
+      if (value == null) {
+        unsetTitle();
+      } else {
+        setTitle((String)value);
+      }
+      break;
+
+    case NOTIFCATION_MESSAGE:
+      if (value == null) {
+        unsetNotifcationMessage();
+      } else {
+        setNotifcationMessage((String)value);
+      }
+      break;
+
+    case PUBLISHEDTIME:
+      if (value == null) {
+        unsetPublishedtime();
+      } else {
+        setPublishedtime((Long)value);
+      }
+      break;
+
+    case EXPIRATION_TIME:
+      if (value == null) {
+        unsetExpirationTime();
+      } else {
+        setExpirationTime((Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case NOTIFICATION_ID:
+      return getNotificationId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case TITLE:
+      return getTitle();
+
+    case NOTIFCATION_MESSAGE:
+      return getNotifcationMessage();
+
+    case PUBLISHEDTIME:
+      return getPublishedtime();
+
+    case EXPIRATION_TIME:
+      return getExpirationTime();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case NOTIFICATION_ID:
+      return isSetNotificationId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case TITLE:
+      return isSetTitle();
+    case NOTIFCATION_MESSAGE:
+      return isSetNotifcationMessage();
+    case PUBLISHEDTIME:
+      return isSetPublishedtime();
+    case EXPIRATION_TIME:
+      return isSetExpirationTime();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Notification)
+      return this.equals((Notification)that);
+    return false;
+  }
+
+  public boolean equals(Notification that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_notificationId = true && this.isSetNotificationId();
+    boolean that_present_notificationId = true && that.isSetNotificationId();
+    if (this_present_notificationId || that_present_notificationId) {
+      if (!(this_present_notificationId && that_present_notificationId))
+        return false;
+      if (!this.notificationId.equals(that.notificationId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_title = true && this.isSetTitle();
+    boolean that_present_title = true && that.isSetTitle();
+    if (this_present_title || that_present_title) {
+      if (!(this_present_title && that_present_title))
+        return false;
+      if (!this.title.equals(that.title))
+        return false;
+    }
+
+    boolean this_present_notifcationMessage = true && this.isSetNotifcationMessage();
+    boolean that_present_notifcationMessage = true && that.isSetNotifcationMessage();
+    if (this_present_notifcationMessage || that_present_notifcationMessage) {
+      if (!(this_present_notifcationMessage && that_present_notifcationMessage))
+        return false;
+      if (!this.notifcationMessage.equals(that.notifcationMessage))
+        return false;
+    }
+
+    boolean this_present_publishedtime = true && this.isSetPublishedtime();
+    boolean that_present_publishedtime = true && that.isSetPublishedtime();
+    if (this_present_publishedtime || that_present_publishedtime) {
+      if (!(this_present_publishedtime && that_present_publishedtime))
+        return false;
+      if (this.publishedtime != that.publishedtime)
+        return false;
+    }
+
+    boolean this_present_expirationTime = true && this.isSetExpirationTime();
+    boolean that_present_expirationTime = true && that.isSetExpirationTime();
+    if (this_present_expirationTime || that_present_expirationTime) {
+      if (!(this_present_expirationTime && that_present_expirationTime))
+        return false;
+      if (this.expirationTime != that.expirationTime)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_notificationId = true && (isSetNotificationId());
+    list.add(present_notificationId);
+    if (present_notificationId)
+      list.add(notificationId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_title = true && (isSetTitle());
+    list.add(present_title);
+    if (present_title)
+      list.add(title);
+
+    boolean present_notifcationMessage = true && (isSetNotifcationMessage());
+    list.add(present_notifcationMessage);
+    if (present_notifcationMessage)
+      list.add(notifcationMessage);
+
+    boolean present_publishedtime = true && (isSetPublishedtime());
+    list.add(present_publishedtime);
+    if (present_publishedtime)
+      list.add(publishedtime);
+
+    boolean present_expirationTime = true && (isSetExpirationTime());
+    list.add(present_expirationTime);
+    if (present_expirationTime)
+      list.add(expirationTime);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(Notification other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetNotificationId()).compareTo(other.isSetNotificationId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNotificationId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.notificationId, other.notificationId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTitle()).compareTo(other.isSetTitle());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTitle()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.title, other.title);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNotifcationMessage()).compareTo(other.isSetNotifcationMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNotifcationMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.notifcationMessage, other.notifcationMessage);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPublishedtime()).compareTo(other.isSetPublishedtime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPublishedtime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.publishedtime, other.publishedtime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExpirationTime()).compareTo(other.isSetExpirationTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExpirationTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.expirationTime, other.expirationTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("Notification(");
+    boolean first = true;
+
+    if (isSetNotificationId()) {
+      sb.append("notificationId:");
+      if (this.notificationId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.notificationId);
+      }
+      first = false;
+    }
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("title:");
+    if (this.title == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.title);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("notifcationMessage:");
+    if (this.notifcationMessage == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.notifcationMessage);
+    }
+    first = false;
+    if (isSetPublishedtime()) {
+      if (!first) sb.append(", ");
+      sb.append("publishedtime:");
+      sb.append(this.publishedtime);
+      first = false;
+    }
+    if (isSetExpirationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("expirationTime:");
+      sb.append(this.expirationTime);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetGatewayId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetTitle()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'title' is unset! Struct:" + toString());
+    }
+
+    if (!isSetNotifcationMessage()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'notifcationMessage' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class NotificationStandardSchemeFactory implements SchemeFactory {
+    public NotificationStandardScheme getScheme() {
+      return new NotificationStandardScheme();
+    }
+  }
+
+  private static class NotificationStandardScheme extends StandardScheme<Notification> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Notification struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // NOTIFICATION_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.notificationId = iprot.readString();
+              struct.setNotificationIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // TITLE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.title = iprot.readString();
+              struct.setTitleIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // NOTIFCATION_MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.notifcationMessage = iprot.readString();
+              struct.setNotifcationMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PUBLISHEDTIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.publishedtime = iprot.readI64();
+              struct.setPublishedtimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // EXPIRATION_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.expirationTime = iprot.readI64();
+              struct.setExpirationTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Notification struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.notificationId != null) {
+        if (struct.isSetNotificationId()) {
+          oprot.writeFieldBegin(NOTIFICATION_ID_FIELD_DESC);
+          oprot.writeString(struct.notificationId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.title != null) {
+        oprot.writeFieldBegin(TITLE_FIELD_DESC);
+        oprot.writeString(struct.title);
+        oprot.writeFieldEnd();
+      }
+      if (struct.notifcationMessage != null) {
+        oprot.writeFieldBegin(NOTIFCATION_MESSAGE_FIELD_DESC);
+        oprot.writeString(struct.notifcationMessage);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetPublishedtime()) {
+        oprot.writeFieldBegin(PUBLISHEDTIME_FIELD_DESC);
+        oprot.writeI64(struct.publishedtime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetExpirationTime()) {
+        oprot.writeFieldBegin(EXPIRATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.expirationTime);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class NotificationTupleSchemeFactory implements SchemeFactory {
+    public NotificationTupleScheme getScheme() {
+      return new NotificationTupleScheme();
+    }
+  }
+
+  private static class NotificationTupleScheme extends TupleScheme<Notification> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Notification struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.gatewayId);
+      oprot.writeString(struct.title);
+      oprot.writeString(struct.notifcationMessage);
+      BitSet optionals = new BitSet();
+      if (struct.isSetNotificationId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetPublishedtime()) {
+        optionals.set(1);
+      }
+      if (struct.isSetExpirationTime()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetNotificationId()) {
+        oprot.writeString(struct.notificationId);
+      }
+      if (struct.isSetPublishedtime()) {
+        oprot.writeI64(struct.publishedtime);
+      }
+      if (struct.isSetExpirationTime()) {
+        oprot.writeI64(struct.expirationTime);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Notification struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+      struct.title = iprot.readString();
+      struct.setTitleIsSet(true);
+      struct.notifcationMessage = iprot.readString();
+      struct.setNotifcationMessageIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.notificationId = iprot.readString();
+        struct.setNotificationIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.publishedtime = iprot.readI64();
+        struct.setPublishedtimeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.expirationTime = iprot.readI64();
+        struct.setExpirationTimeIsSet(true);
+      }
+    }
+  }
+
+}
+


[30/35] airavata git commit: Merge remote-tracking branch 'origin/develop' into develop

Posted by sh...@apache.org.
Merge remote-tracking branch 'origin/develop' into develop


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

Branch: refs/heads/master
Commit: d905749f8780178e4711e7894a62d5488236c24e
Parents: 47290ad 7781ff8
Author: scnakandala <su...@gmail.com>
Authored: Fri Apr 22 15:14:21 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Fri Apr 22 15:14:21 2016 -0400

----------------------------------------------------------------------
 .../org/apache/airavata/gfac/impl/Factory.java  |  2 +-
 .../airavata/gfac/impl/GFacEngineImpl.java      |  3 +-
 .../airavata/gfac/impl/HPCRemoteCluster.java    | 52 +++++++++++++++-----
 3 files changed, 44 insertions(+), 13 deletions(-)
----------------------------------------------------------------------