You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/08/25 19:28:39 UTC

[1/2] airavata git commit: making experiment status a list in ExperimentModel

Repository: airavata
Updated Branches:
  refs/heads/develop 35367512b -> 415e9b701


http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/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 4c97ae5..7b01741 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
@@ -87,7 +87,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
   private static final org.apache.thrift.protocol.TField USER_CONFIGURATION_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("userConfigurationData", org.apache.thrift.protocol.TType.STRUCT, (short)14);
   private static final org.apache.thrift.protocol.TField EXPERIMENT_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentInputs", org.apache.thrift.protocol.TType.LIST, (short)15);
   private static final org.apache.thrift.protocol.TField EXPERIMENT_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentOutputs", org.apache.thrift.protocol.TType.LIST, (short)16);
-  private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.STRUCT, (short)17);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.LIST, (short)17);
   private static final org.apache.thrift.protocol.TField ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("errors", org.apache.thrift.protocol.TType.LIST, (short)18);
   private static final org.apache.thrift.protocol.TField PROCESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("processes", org.apache.thrift.protocol.TType.LIST, (short)19);
 
@@ -113,7 +113,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
   private UserConfigurationDataModel userConfigurationData; // optional
   private List<org.apache.airavata.model.application.io.InputDataObjectType> experimentInputs; // optional
   private List<org.apache.airavata.model.application.io.OutputDataObjectType> experimentOutputs; // optional
-  private org.apache.airavata.model.status.ExperimentStatus experimentStatus; // optional
+  private List<org.apache.airavata.model.status.ExperimentStatus> experimentStatus; // optional
   private List<org.apache.airavata.model.commons.ErrorModel> errors; // optional
   private List<org.apache.airavata.model.process.ProcessModel> processes; // optional
 
@@ -277,7 +277,8 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.OutputDataObjectType.class))));
     tmpMap.put(_Fields.EXPERIMENT_STATUS, new org.apache.thrift.meta_data.FieldMetaData("experimentStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ExperimentStatus.class)));
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ExperimentStatus.class))));
     tmpMap.put(_Fields.ERRORS, new org.apache.thrift.meta_data.FieldMetaData("errors", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class))));
@@ -371,7 +372,11 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       this.experimentOutputs = __this__experimentOutputs;
     }
     if (other.isSetExperimentStatus()) {
-      this.experimentStatus = new org.apache.airavata.model.status.ExperimentStatus(other.experimentStatus);
+      List<org.apache.airavata.model.status.ExperimentStatus> __this__experimentStatus = new ArrayList<org.apache.airavata.model.status.ExperimentStatus>(other.experimentStatus.size());
+      for (org.apache.airavata.model.status.ExperimentStatus other_element : other.experimentStatus) {
+        __this__experimentStatus.add(new org.apache.airavata.model.status.ExperimentStatus(other_element));
+      }
+      this.experimentStatus = __this__experimentStatus;
     }
     if (other.isSetErrors()) {
       List<org.apache.airavata.model.commons.ErrorModel> __this__errors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.errors.size());
@@ -839,11 +844,26 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
     }
   }
 
-  public org.apache.airavata.model.status.ExperimentStatus getExperimentStatus() {
+  public int getExperimentStatusSize() {
+    return (this.experimentStatus == null) ? 0 : this.experimentStatus.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.status.ExperimentStatus> getExperimentStatusIterator() {
+    return (this.experimentStatus == null) ? null : this.experimentStatus.iterator();
+  }
+
+  public void addToExperimentStatus(org.apache.airavata.model.status.ExperimentStatus elem) {
+    if (this.experimentStatus == null) {
+      this.experimentStatus = new ArrayList<org.apache.airavata.model.status.ExperimentStatus>();
+    }
+    this.experimentStatus.add(elem);
+  }
+
+  public List<org.apache.airavata.model.status.ExperimentStatus> getExperimentStatus() {
     return this.experimentStatus;
   }
 
-  public void setExperimentStatus(org.apache.airavata.model.status.ExperimentStatus experimentStatus) {
+  public void setExperimentStatus(List<org.apache.airavata.model.status.ExperimentStatus> experimentStatus) {
     this.experimentStatus = experimentStatus;
   }
 
@@ -1072,7 +1092,7 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       if (value == null) {
         unsetExperimentStatus();
       } else {
-        setExperimentStatus((org.apache.airavata.model.status.ExperimentStatus)value);
+        setExperimentStatus((List<org.apache.airavata.model.status.ExperimentStatus>)value);
       }
       break;
 
@@ -1917,9 +1937,6 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
     if (userConfigurationData != null) {
       userConfigurationData.validate();
     }
-    if (experimentStatus != null) {
-      experimentStatus.validate();
-    }
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -2120,9 +2137,19 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
             }
             break;
           case 17: // EXPERIMENT_STATUS
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-              struct.experimentStatus = new org.apache.airavata.model.status.ExperimentStatus();
-              struct.experimentStatus.read(iprot);
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list9 = iprot.readListBegin();
+                struct.experimentStatus = new ArrayList<org.apache.airavata.model.status.ExperimentStatus>(_list9.size);
+                org.apache.airavata.model.status.ExperimentStatus _elem10;
+                for (int _i11 = 0; _i11 < _list9.size; ++_i11)
+                {
+                  _elem10 = new org.apache.airavata.model.status.ExperimentStatus();
+                  _elem10.read(iprot);
+                  struct.experimentStatus.add(_elem10);
+                }
+                iprot.readListEnd();
+              }
               struct.setExperimentStatusIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -2131,14 +2158,14 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
           case 18: // ERRORS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list9 = iprot.readListBegin();
-                struct.errors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list9.size);
-                org.apache.airavata.model.commons.ErrorModel _elem10;
-                for (int _i11 = 0; _i11 < _list9.size; ++_i11)
+                org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
+                struct.errors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list12.size);
+                org.apache.airavata.model.commons.ErrorModel _elem13;
+                for (int _i14 = 0; _i14 < _list12.size; ++_i14)
                 {
-                  _elem10 = new org.apache.airavata.model.commons.ErrorModel();
-                  _elem10.read(iprot);
-                  struct.errors.add(_elem10);
+                  _elem13 = new org.apache.airavata.model.commons.ErrorModel();
+                  _elem13.read(iprot);
+                  struct.errors.add(_elem13);
                 }
                 iprot.readListEnd();
               }
@@ -2150,14 +2177,14 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
           case 19: // PROCESSES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
-                struct.processes = new ArrayList<org.apache.airavata.model.process.ProcessModel>(_list12.size);
-                org.apache.airavata.model.process.ProcessModel _elem13;
-                for (int _i14 = 0; _i14 < _list12.size; ++_i14)
+                org.apache.thrift.protocol.TList _list15 = iprot.readListBegin();
+                struct.processes = new ArrayList<org.apache.airavata.model.process.ProcessModel>(_list15.size);
+                org.apache.airavata.model.process.ProcessModel _elem16;
+                for (int _i17 = 0; _i17 < _list15.size; ++_i17)
                 {
-                  _elem13 = new org.apache.airavata.model.process.ProcessModel();
-                  _elem13.read(iprot);
-                  struct.processes.add(_elem13);
+                  _elem16 = new org.apache.airavata.model.process.ProcessModel();
+                  _elem16.read(iprot);
+                  struct.processes.add(_elem16);
                 }
                 iprot.readListEnd();
               }
@@ -2252,9 +2279,9 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
           oprot.writeFieldBegin(EMAIL_ADDRESSES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.emailAddresses.size()));
-            for (String _iter15 : struct.emailAddresses)
+            for (String _iter18 : struct.emailAddresses)
             {
-              oprot.writeString(_iter15);
+              oprot.writeString(_iter18);
             }
             oprot.writeListEnd();
           }
@@ -2273,9 +2300,9 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
           oprot.writeFieldBegin(EXPERIMENT_INPUTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.experimentInputs.size()));
-            for (org.apache.airavata.model.application.io.InputDataObjectType _iter16 : struct.experimentInputs)
+            for (org.apache.airavata.model.application.io.InputDataObjectType _iter19 : struct.experimentInputs)
             {
-              _iter16.write(oprot);
+              _iter19.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -2287,9 +2314,9 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
           oprot.writeFieldBegin(EXPERIMENT_OUTPUTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.experimentOutputs.size()));
-            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter17 : struct.experimentOutputs)
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter20 : struct.experimentOutputs)
             {
-              _iter17.write(oprot);
+              _iter20.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -2299,7 +2326,14 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       if (struct.experimentStatus != null) {
         if (struct.isSetExperimentStatus()) {
           oprot.writeFieldBegin(EXPERIMENT_STATUS_FIELD_DESC);
-          struct.experimentStatus.write(oprot);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.experimentStatus.size()));
+            for (org.apache.airavata.model.status.ExperimentStatus _iter21 : struct.experimentStatus)
+            {
+              _iter21.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
       }
@@ -2308,9 +2342,9 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
           oprot.writeFieldBegin(ERRORS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.errors.size()));
-            for (org.apache.airavata.model.commons.ErrorModel _iter18 : struct.errors)
+            for (org.apache.airavata.model.commons.ErrorModel _iter22 : struct.errors)
             {
-              _iter18.write(oprot);
+              _iter22.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -2322,9 +2356,9 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
           oprot.writeFieldBegin(PROCESSES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processes.size()));
-            for (org.apache.airavata.model.process.ProcessModel _iter19 : struct.processes)
+            for (org.apache.airavata.model.process.ProcessModel _iter23 : struct.processes)
             {
-              _iter19.write(oprot);
+              _iter23.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -2416,9 +2450,9 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       if (struct.isSetEmailAddresses()) {
         {
           oprot.writeI32(struct.emailAddresses.size());
-          for (String _iter20 : struct.emailAddresses)
+          for (String _iter24 : struct.emailAddresses)
           {
-            oprot.writeString(_iter20);
+            oprot.writeString(_iter24);
           }
         }
       }
@@ -2428,39 +2462,45 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       if (struct.isSetExperimentInputs()) {
         {
           oprot.writeI32(struct.experimentInputs.size());
-          for (org.apache.airavata.model.application.io.InputDataObjectType _iter21 : struct.experimentInputs)
+          for (org.apache.airavata.model.application.io.InputDataObjectType _iter25 : struct.experimentInputs)
           {
-            _iter21.write(oprot);
+            _iter25.write(oprot);
           }
         }
       }
       if (struct.isSetExperimentOutputs()) {
         {
           oprot.writeI32(struct.experimentOutputs.size());
-          for (org.apache.airavata.model.application.io.OutputDataObjectType _iter22 : struct.experimentOutputs)
+          for (org.apache.airavata.model.application.io.OutputDataObjectType _iter26 : struct.experimentOutputs)
           {
-            _iter22.write(oprot);
+            _iter26.write(oprot);
           }
         }
       }
       if (struct.isSetExperimentStatus()) {
-        struct.experimentStatus.write(oprot);
+        {
+          oprot.writeI32(struct.experimentStatus.size());
+          for (org.apache.airavata.model.status.ExperimentStatus _iter27 : struct.experimentStatus)
+          {
+            _iter27.write(oprot);
+          }
+        }
       }
       if (struct.isSetErrors()) {
         {
           oprot.writeI32(struct.errors.size());
-          for (org.apache.airavata.model.commons.ErrorModel _iter23 : struct.errors)
+          for (org.apache.airavata.model.commons.ErrorModel _iter28 : struct.errors)
           {
-            _iter23.write(oprot);
+            _iter28.write(oprot);
           }
         }
       }
       if (struct.isSetProcesses()) {
         {
           oprot.writeI32(struct.processes.size());
-          for (org.apache.airavata.model.process.ProcessModel _iter24 : struct.processes)
+          for (org.apache.airavata.model.process.ProcessModel _iter29 : struct.processes)
           {
-            _iter24.write(oprot);
+            _iter29.write(oprot);
           }
         }
       }
@@ -2508,13 +2548,13 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       }
       if (incoming.get(6)) {
         {
-          org.apache.thrift.protocol.TList _list25 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.emailAddresses = new ArrayList<String>(_list25.size);
-          String _elem26;
-          for (int _i27 = 0; _i27 < _list25.size; ++_i27)
+          org.apache.thrift.protocol.TList _list30 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.emailAddresses = new ArrayList<String>(_list30.size);
+          String _elem31;
+          for (int _i32 = 0; _i32 < _list30.size; ++_i32)
           {
-            _elem26 = iprot.readString();
-            struct.emailAddresses.add(_elem26);
+            _elem31 = iprot.readString();
+            struct.emailAddresses.add(_elem31);
           }
         }
         struct.setEmailAddressesIsSet(true);
@@ -2526,61 +2566,70 @@ public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel,
       }
       if (incoming.get(8)) {
         {
-          org.apache.thrift.protocol.TList _list28 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.experimentInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(_list28.size);
-          org.apache.airavata.model.application.io.InputDataObjectType _elem29;
-          for (int _i30 = 0; _i30 < _list28.size; ++_i30)
+          org.apache.thrift.protocol.TList _list33 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.experimentInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(_list33.size);
+          org.apache.airavata.model.application.io.InputDataObjectType _elem34;
+          for (int _i35 = 0; _i35 < _list33.size; ++_i35)
           {
-            _elem29 = new org.apache.airavata.model.application.io.InputDataObjectType();
-            _elem29.read(iprot);
-            struct.experimentInputs.add(_elem29);
+            _elem34 = new org.apache.airavata.model.application.io.InputDataObjectType();
+            _elem34.read(iprot);
+            struct.experimentInputs.add(_elem34);
           }
         }
         struct.setExperimentInputsIsSet(true);
       }
       if (incoming.get(9)) {
         {
-          org.apache.thrift.protocol.TList _list31 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.experimentOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list31.size);
-          org.apache.airavata.model.application.io.OutputDataObjectType _elem32;
-          for (int _i33 = 0; _i33 < _list31.size; ++_i33)
+          org.apache.thrift.protocol.TList _list36 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.experimentOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list36.size);
+          org.apache.airavata.model.application.io.OutputDataObjectType _elem37;
+          for (int _i38 = 0; _i38 < _list36.size; ++_i38)
           {
-            _elem32 = new org.apache.airavata.model.application.io.OutputDataObjectType();
-            _elem32.read(iprot);
-            struct.experimentOutputs.add(_elem32);
+            _elem37 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+            _elem37.read(iprot);
+            struct.experimentOutputs.add(_elem37);
           }
         }
         struct.setExperimentOutputsIsSet(true);
       }
       if (incoming.get(10)) {
-        struct.experimentStatus = new org.apache.airavata.model.status.ExperimentStatus();
-        struct.experimentStatus.read(iprot);
+        {
+          org.apache.thrift.protocol.TList _list39 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.experimentStatus = new ArrayList<org.apache.airavata.model.status.ExperimentStatus>(_list39.size);
+          org.apache.airavata.model.status.ExperimentStatus _elem40;
+          for (int _i41 = 0; _i41 < _list39.size; ++_i41)
+          {
+            _elem40 = new org.apache.airavata.model.status.ExperimentStatus();
+            _elem40.read(iprot);
+            struct.experimentStatus.add(_elem40);
+          }
+        }
         struct.setExperimentStatusIsSet(true);
       }
       if (incoming.get(11)) {
         {
-          org.apache.thrift.protocol.TList _list34 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.errors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list34.size);
-          org.apache.airavata.model.commons.ErrorModel _elem35;
-          for (int _i36 = 0; _i36 < _list34.size; ++_i36)
+          org.apache.thrift.protocol.TList _list42 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.errors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list42.size);
+          org.apache.airavata.model.commons.ErrorModel _elem43;
+          for (int _i44 = 0; _i44 < _list42.size; ++_i44)
           {
-            _elem35 = new org.apache.airavata.model.commons.ErrorModel();
-            _elem35.read(iprot);
-            struct.errors.add(_elem35);
+            _elem43 = new org.apache.airavata.model.commons.ErrorModel();
+            _elem43.read(iprot);
+            struct.errors.add(_elem43);
           }
         }
         struct.setErrorsIsSet(true);
       }
       if (incoming.get(12)) {
         {
-          org.apache.thrift.protocol.TList _list37 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.processes = new ArrayList<org.apache.airavata.model.process.ProcessModel>(_list37.size);
-          org.apache.airavata.model.process.ProcessModel _elem38;
-          for (int _i39 = 0; _i39 < _list37.size; ++_i39)
+          org.apache.thrift.protocol.TList _list45 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.processes = new ArrayList<org.apache.airavata.model.process.ProcessModel>(_list45.size);
+          org.apache.airavata.model.process.ProcessModel _elem46;
+          for (int _i47 = 0; _i47 < _list45.size; ++_i47)
           {
-            _elem38 = new org.apache.airavata.model.process.ProcessModel();
-            _elem38.read(iprot);
-            struct.processes.add(_elem38);
+            _elem46 = new org.apache.airavata.model.process.ProcessModel();
+            _elem46.read(iprot);
+            struct.processes.add(_elem46);
           }
         }
         struct.setProcessesIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/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 8bdaa2e..03aa46a 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
@@ -1410,14 +1410,14 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           case 7: // ALL_EXPERIMENTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list40 = iprot.readListBegin();
-                struct.allExperiments = new ArrayList<ExperimentSummaryModel>(_list40.size);
-                ExperimentSummaryModel _elem41;
-                for (int _i42 = 0; _i42 < _list40.size; ++_i42)
+                org.apache.thrift.protocol.TList _list48 = iprot.readListBegin();
+                struct.allExperiments = new ArrayList<ExperimentSummaryModel>(_list48.size);
+                ExperimentSummaryModel _elem49;
+                for (int _i50 = 0; _i50 < _list48.size; ++_i50)
                 {
-                  _elem41 = new ExperimentSummaryModel();
-                  _elem41.read(iprot);
-                  struct.allExperiments.add(_elem41);
+                  _elem49 = new ExperimentSummaryModel();
+                  _elem49.read(iprot);
+                  struct.allExperiments.add(_elem49);
                 }
                 iprot.readListEnd();
               }
@@ -1429,14 +1429,14 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           case 8: // COMPLETED_EXPERIMENTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list43 = iprot.readListBegin();
-                struct.completedExperiments = new ArrayList<ExperimentSummaryModel>(_list43.size);
-                ExperimentSummaryModel _elem44;
-                for (int _i45 = 0; _i45 < _list43.size; ++_i45)
+                org.apache.thrift.protocol.TList _list51 = iprot.readListBegin();
+                struct.completedExperiments = new ArrayList<ExperimentSummaryModel>(_list51.size);
+                ExperimentSummaryModel _elem52;
+                for (int _i53 = 0; _i53 < _list51.size; ++_i53)
                 {
-                  _elem44 = new ExperimentSummaryModel();
-                  _elem44.read(iprot);
-                  struct.completedExperiments.add(_elem44);
+                  _elem52 = new ExperimentSummaryModel();
+                  _elem52.read(iprot);
+                  struct.completedExperiments.add(_elem52);
                 }
                 iprot.readListEnd();
               }
@@ -1448,14 +1448,14 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           case 9: // FAILED_EXPERIMENTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list46 = iprot.readListBegin();
-                struct.failedExperiments = new ArrayList<ExperimentSummaryModel>(_list46.size);
-                ExperimentSummaryModel _elem47;
-                for (int _i48 = 0; _i48 < _list46.size; ++_i48)
+                org.apache.thrift.protocol.TList _list54 = iprot.readListBegin();
+                struct.failedExperiments = new ArrayList<ExperimentSummaryModel>(_list54.size);
+                ExperimentSummaryModel _elem55;
+                for (int _i56 = 0; _i56 < _list54.size; ++_i56)
                 {
-                  _elem47 = new ExperimentSummaryModel();
-                  _elem47.read(iprot);
-                  struct.failedExperiments.add(_elem47);
+                  _elem55 = new ExperimentSummaryModel();
+                  _elem55.read(iprot);
+                  struct.failedExperiments.add(_elem55);
                 }
                 iprot.readListEnd();
               }
@@ -1467,14 +1467,14 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           case 10: // CANCELLED_EXPERIMENTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list49 = iprot.readListBegin();
-                struct.cancelledExperiments = new ArrayList<ExperimentSummaryModel>(_list49.size);
-                ExperimentSummaryModel _elem50;
-                for (int _i51 = 0; _i51 < _list49.size; ++_i51)
+                org.apache.thrift.protocol.TList _list57 = iprot.readListBegin();
+                struct.cancelledExperiments = new ArrayList<ExperimentSummaryModel>(_list57.size);
+                ExperimentSummaryModel _elem58;
+                for (int _i59 = 0; _i59 < _list57.size; ++_i59)
                 {
-                  _elem50 = new ExperimentSummaryModel();
-                  _elem50.read(iprot);
-                  struct.cancelledExperiments.add(_elem50);
+                  _elem58 = new ExperimentSummaryModel();
+                  _elem58.read(iprot);
+                  struct.cancelledExperiments.add(_elem58);
                 }
                 iprot.readListEnd();
               }
@@ -1486,14 +1486,14 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           case 11: // CREATED_EXPERIMENTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list52 = iprot.readListBegin();
-                struct.createdExperiments = new ArrayList<ExperimentSummaryModel>(_list52.size);
-                ExperimentSummaryModel _elem53;
-                for (int _i54 = 0; _i54 < _list52.size; ++_i54)
+                org.apache.thrift.protocol.TList _list60 = iprot.readListBegin();
+                struct.createdExperiments = new ArrayList<ExperimentSummaryModel>(_list60.size);
+                ExperimentSummaryModel _elem61;
+                for (int _i62 = 0; _i62 < _list60.size; ++_i62)
                 {
-                  _elem53 = new ExperimentSummaryModel();
-                  _elem53.read(iprot);
-                  struct.createdExperiments.add(_elem53);
+                  _elem61 = new ExperimentSummaryModel();
+                  _elem61.read(iprot);
+                  struct.createdExperiments.add(_elem61);
                 }
                 iprot.readListEnd();
               }
@@ -1505,14 +1505,14 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           case 12: // RUNNING_EXPERIMENTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list55 = iprot.readListBegin();
-                struct.runningExperiments = new ArrayList<ExperimentSummaryModel>(_list55.size);
-                ExperimentSummaryModel _elem56;
-                for (int _i57 = 0; _i57 < _list55.size; ++_i57)
+                org.apache.thrift.protocol.TList _list63 = iprot.readListBegin();
+                struct.runningExperiments = new ArrayList<ExperimentSummaryModel>(_list63.size);
+                ExperimentSummaryModel _elem64;
+                for (int _i65 = 0; _i65 < _list63.size; ++_i65)
                 {
-                  _elem56 = new ExperimentSummaryModel();
-                  _elem56.read(iprot);
-                  struct.runningExperiments.add(_elem56);
+                  _elem64 = new ExperimentSummaryModel();
+                  _elem64.read(iprot);
+                  struct.runningExperiments.add(_elem64);
                 }
                 iprot.readListEnd();
               }
@@ -1558,9 +1558,9 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
         oprot.writeFieldBegin(ALL_EXPERIMENTS_FIELD_DESC);
         {
           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.allExperiments.size()));
-          for (ExperimentSummaryModel _iter58 : struct.allExperiments)
+          for (ExperimentSummaryModel _iter66 : struct.allExperiments)
           {
-            _iter58.write(oprot);
+            _iter66.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -1571,9 +1571,9 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           oprot.writeFieldBegin(COMPLETED_EXPERIMENTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.completedExperiments.size()));
-            for (ExperimentSummaryModel _iter59 : struct.completedExperiments)
+            for (ExperimentSummaryModel _iter67 : struct.completedExperiments)
             {
-              _iter59.write(oprot);
+              _iter67.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1585,9 +1585,9 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           oprot.writeFieldBegin(FAILED_EXPERIMENTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.failedExperiments.size()));
-            for (ExperimentSummaryModel _iter60 : struct.failedExperiments)
+            for (ExperimentSummaryModel _iter68 : struct.failedExperiments)
             {
-              _iter60.write(oprot);
+              _iter68.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1599,9 +1599,9 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           oprot.writeFieldBegin(CANCELLED_EXPERIMENTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.cancelledExperiments.size()));
-            for (ExperimentSummaryModel _iter61 : struct.cancelledExperiments)
+            for (ExperimentSummaryModel _iter69 : struct.cancelledExperiments)
             {
-              _iter61.write(oprot);
+              _iter69.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1613,9 +1613,9 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           oprot.writeFieldBegin(CREATED_EXPERIMENTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.createdExperiments.size()));
-            for (ExperimentSummaryModel _iter62 : struct.createdExperiments)
+            for (ExperimentSummaryModel _iter70 : struct.createdExperiments)
             {
-              _iter62.write(oprot);
+              _iter70.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1627,9 +1627,9 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
           oprot.writeFieldBegin(RUNNING_EXPERIMENTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.runningExperiments.size()));
-            for (ExperimentSummaryModel _iter63 : struct.runningExperiments)
+            for (ExperimentSummaryModel _iter71 : struct.runningExperiments)
             {
-              _iter63.write(oprot);
+              _iter71.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1660,9 +1660,9 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
       oprot.writeI32(struct.runningExperimentCount);
       {
         oprot.writeI32(struct.allExperiments.size());
-        for (ExperimentSummaryModel _iter64 : struct.allExperiments)
+        for (ExperimentSummaryModel _iter72 : struct.allExperiments)
         {
-          _iter64.write(oprot);
+          _iter72.write(oprot);
         }
       }
       BitSet optionals = new BitSet();
@@ -1691,45 +1691,45 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
       if (struct.isSetCompletedExperiments()) {
         {
           oprot.writeI32(struct.completedExperiments.size());
-          for (ExperimentSummaryModel _iter65 : struct.completedExperiments)
+          for (ExperimentSummaryModel _iter73 : struct.completedExperiments)
           {
-            _iter65.write(oprot);
+            _iter73.write(oprot);
           }
         }
       }
       if (struct.isSetFailedExperiments()) {
         {
           oprot.writeI32(struct.failedExperiments.size());
-          for (ExperimentSummaryModel _iter66 : struct.failedExperiments)
+          for (ExperimentSummaryModel _iter74 : struct.failedExperiments)
           {
-            _iter66.write(oprot);
+            _iter74.write(oprot);
           }
         }
       }
       if (struct.isSetCancelledExperiments()) {
         {
           oprot.writeI32(struct.cancelledExperiments.size());
-          for (ExperimentSummaryModel _iter67 : struct.cancelledExperiments)
+          for (ExperimentSummaryModel _iter75 : struct.cancelledExperiments)
           {
-            _iter67.write(oprot);
+            _iter75.write(oprot);
           }
         }
       }
       if (struct.isSetCreatedExperiments()) {
         {
           oprot.writeI32(struct.createdExperiments.size());
-          for (ExperimentSummaryModel _iter68 : struct.createdExperiments)
+          for (ExperimentSummaryModel _iter76 : struct.createdExperiments)
           {
-            _iter68.write(oprot);
+            _iter76.write(oprot);
           }
         }
       }
       if (struct.isSetRunningExperiments()) {
         {
           oprot.writeI32(struct.runningExperiments.size());
-          for (ExperimentSummaryModel _iter69 : struct.runningExperiments)
+          for (ExperimentSummaryModel _iter77 : struct.runningExperiments)
           {
-            _iter69.write(oprot);
+            _iter77.write(oprot);
           }
         }
       }
@@ -1749,14 +1749,14 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
       struct.runningExperimentCount = iprot.readI32();
       struct.setRunningExperimentCountIsSet(true);
       {
-        org.apache.thrift.protocol.TList _list70 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-        struct.allExperiments = new ArrayList<ExperimentSummaryModel>(_list70.size);
-        ExperimentSummaryModel _elem71;
-        for (int _i72 = 0; _i72 < _list70.size; ++_i72)
+        org.apache.thrift.protocol.TList _list78 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+        struct.allExperiments = new ArrayList<ExperimentSummaryModel>(_list78.size);
+        ExperimentSummaryModel _elem79;
+        for (int _i80 = 0; _i80 < _list78.size; ++_i80)
         {
-          _elem71 = new ExperimentSummaryModel();
-          _elem71.read(iprot);
-          struct.allExperiments.add(_elem71);
+          _elem79 = new ExperimentSummaryModel();
+          _elem79.read(iprot);
+          struct.allExperiments.add(_elem79);
         }
       }
       struct.setAllExperimentsIsSet(true);
@@ -1767,70 +1767,70 @@ public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentS
       }
       if (incoming.get(1)) {
         {
-          org.apache.thrift.protocol.TList _list73 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.completedExperiments = new ArrayList<ExperimentSummaryModel>(_list73.size);
-          ExperimentSummaryModel _elem74;
-          for (int _i75 = 0; _i75 < _list73.size; ++_i75)
+          org.apache.thrift.protocol.TList _list81 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.completedExperiments = new ArrayList<ExperimentSummaryModel>(_list81.size);
+          ExperimentSummaryModel _elem82;
+          for (int _i83 = 0; _i83 < _list81.size; ++_i83)
           {
-            _elem74 = new ExperimentSummaryModel();
-            _elem74.read(iprot);
-            struct.completedExperiments.add(_elem74);
+            _elem82 = new ExperimentSummaryModel();
+            _elem82.read(iprot);
+            struct.completedExperiments.add(_elem82);
           }
         }
         struct.setCompletedExperimentsIsSet(true);
       }
       if (incoming.get(2)) {
         {
-          org.apache.thrift.protocol.TList _list76 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.failedExperiments = new ArrayList<ExperimentSummaryModel>(_list76.size);
-          ExperimentSummaryModel _elem77;
-          for (int _i78 = 0; _i78 < _list76.size; ++_i78)
+          org.apache.thrift.protocol.TList _list84 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.failedExperiments = new ArrayList<ExperimentSummaryModel>(_list84.size);
+          ExperimentSummaryModel _elem85;
+          for (int _i86 = 0; _i86 < _list84.size; ++_i86)
           {
-            _elem77 = new ExperimentSummaryModel();
-            _elem77.read(iprot);
-            struct.failedExperiments.add(_elem77);
+            _elem85 = new ExperimentSummaryModel();
+            _elem85.read(iprot);
+            struct.failedExperiments.add(_elem85);
           }
         }
         struct.setFailedExperimentsIsSet(true);
       }
       if (incoming.get(3)) {
         {
-          org.apache.thrift.protocol.TList _list79 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.cancelledExperiments = new ArrayList<ExperimentSummaryModel>(_list79.size);
-          ExperimentSummaryModel _elem80;
-          for (int _i81 = 0; _i81 < _list79.size; ++_i81)
+          org.apache.thrift.protocol.TList _list87 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.cancelledExperiments = new ArrayList<ExperimentSummaryModel>(_list87.size);
+          ExperimentSummaryModel _elem88;
+          for (int _i89 = 0; _i89 < _list87.size; ++_i89)
           {
-            _elem80 = new ExperimentSummaryModel();
-            _elem80.read(iprot);
-            struct.cancelledExperiments.add(_elem80);
+            _elem88 = new ExperimentSummaryModel();
+            _elem88.read(iprot);
+            struct.cancelledExperiments.add(_elem88);
           }
         }
         struct.setCancelledExperimentsIsSet(true);
       }
       if (incoming.get(4)) {
         {
-          org.apache.thrift.protocol.TList _list82 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.createdExperiments = new ArrayList<ExperimentSummaryModel>(_list82.size);
-          ExperimentSummaryModel _elem83;
-          for (int _i84 = 0; _i84 < _list82.size; ++_i84)
+          org.apache.thrift.protocol.TList _list90 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.createdExperiments = new ArrayList<ExperimentSummaryModel>(_list90.size);
+          ExperimentSummaryModel _elem91;
+          for (int _i92 = 0; _i92 < _list90.size; ++_i92)
           {
-            _elem83 = new ExperimentSummaryModel();
-            _elem83.read(iprot);
-            struct.createdExperiments.add(_elem83);
+            _elem91 = new ExperimentSummaryModel();
+            _elem91.read(iprot);
+            struct.createdExperiments.add(_elem91);
           }
         }
         struct.setCreatedExperimentsIsSet(true);
       }
       if (incoming.get(5)) {
         {
-          org.apache.thrift.protocol.TList _list85 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.runningExperiments = new ArrayList<ExperimentSummaryModel>(_list85.size);
-          ExperimentSummaryModel _elem86;
-          for (int _i87 = 0; _i87 < _list85.size; ++_i87)
+          org.apache.thrift.protocol.TList _list93 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.runningExperiments = new ArrayList<ExperimentSummaryModel>(_list93.size);
+          ExperimentSummaryModel _elem94;
+          for (int _i95 = 0; _i95 < _list93.size; ++_i95)
           {
-            _elem86 = new ExperimentSummaryModel();
-            _elem86.read(iprot);
-            struct.runningExperiments.add(_elem86);
+            _elem94 = new ExperimentSummaryModel();
+            _elem94.read(iprot);
+            struct.runningExperiments.add(_elem94);
           }
         }
         struct.setRunningExperimentsIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java
index 9d7fa0e..a32023c 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java
@@ -25,7 +25,6 @@ import org.apache.airavata.model.error.ValidatorResult;
 import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.status.ExperimentState;
-import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.orchestrator.core.validator.JobMetadataValidator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,8 +41,8 @@ public class ExperimentStatusValidator implements JobMetadataValidator {
         validationResults.setValidationState(true);
         ValidatorResult validatorResult = new ValidatorResult();
         List<ValidatorResult> validatorResultList = new ArrayList<ValidatorResult>();
-        if (!experiment.getExperimentStatus().getState().equals(ExperimentState.CREATED)) {
-            error += experiment.getExperimentStatus().getState().toString();
+        if (!experiment.getExperimentStatus().get(0).getState().equals(ExperimentState.CREATED)) {
+            error += experiment.getExperimentStatus().get(0).getState().toString();
             log.error(error);
             validatorResult.setErrorDetails(error);
             validatorResult.setResult(false);

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java b/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
index 17bceb4..1a6ac25 100644
--- a/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
+++ b/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
@@ -29,12 +29,7 @@ import org.apache.airavata.common.utils.ThriftUtils;
 import org.apache.airavata.common.utils.ZkConstants;
 import org.apache.airavata.gfac.core.GFacUtils;
 import org.apache.airavata.gfac.core.scheduler.HostScheduler;
-import org.apache.airavata.messaging.core.MessageContext;
-import org.apache.airavata.messaging.core.MessageHandler;
-import org.apache.airavata.messaging.core.MessagingFactory;
-import org.apache.airavata.messaging.core.Publisher;
-import org.apache.airavata.messaging.core.Subscriber;
-import org.apache.airavata.messaging.core.Type;
+import org.apache.airavata.messaging.core.*;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
@@ -47,11 +42,7 @@ import org.apache.airavata.model.data.replica.ReplicaLocationCategory;
 import org.apache.airavata.model.error.LaunchValidationException;
 import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.experiment.ExperimentType;
-import org.apache.airavata.model.messaging.event.ExperimentStatusChangeEvent;
-import org.apache.airavata.model.messaging.event.ExperimentSubmitEvent;
-import org.apache.airavata.model.messaging.event.MessageType;
-import org.apache.airavata.model.messaging.event.ProcessIdentifier;
-import org.apache.airavata.model.messaging.event.ProcessStatusChangeEvent;
+import org.apache.airavata.model.messaging.event.*;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.status.ExperimentState;
 import org.apache.airavata.model.status.ExperimentStatus;
@@ -64,14 +55,7 @@ import org.apache.airavata.orchestrator.util.OrchestratorUtils;
 import org.apache.airavata.registry.core.app.catalog.resources.AppCatAbstractResource;
 import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
 import org.apache.airavata.registry.core.experiment.catalog.resources.AbstractExpCatResource;
-import org.apache.airavata.registry.cpi.AppCatalog;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.apache.airavata.registry.cpi.ComputeResource;
-import org.apache.airavata.registry.cpi.ExperimentCatalog;
-import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
-import org.apache.airavata.registry.cpi.RegistryException;
-import org.apache.airavata.registry.cpi.ReplicaCatalog;
-import org.apache.airavata.registry.cpi.ReplicaCatalogException;
+import org.apache.airavata.registry.cpi.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.curator.RetryPolicy;
 import org.apache.curator.framework.CuratorFramework;
@@ -84,13 +68,7 @@ import org.apache.zookeeper.data.Stat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.BiConsumer;
+import java.util.*;
 
 public class OrchestratorServerHandler implements OrchestratorService.Iface {
 	private static Logger log = LoggerFactory.getLogger(OrchestratorServerHandler.class);
@@ -651,7 +629,7 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
             if (messageContext.isRedeliver()) {
 				ExperimentModel experimentModel = (ExperimentModel) experimentCatalog.
 						get(ExperimentCatalogModelType.EXPERIMENT, expEvent.getExperimentId());
-				if (experimentModel.getExperimentStatus().getState() == ExperimentState.CREATED) {
+				if (experimentModel.getExperimentStatus().get(0).getState() == ExperimentState.CREATED) {
 					launchExperiment(expEvent.getExperimentId(), expEvent.getGatewayId());
 				}
             } else {

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/modules/registry/registry-core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/pom.xml b/modules/registry/registry-core/pom.xml
index aa9a61b..85986ae 100644
--- a/modules/registry/registry-core/pom.xml
+++ b/modules/registry/registry-core/pom.xml
@@ -162,7 +162,7 @@
                 <inherited>true</inherited>
                 <configuration>
                     <failIfNoTests>false</failIfNoTests>
-                    <skipTests>${skipTests}</skipTests>
+                    <skipTests>true</skipTests>
                     <workingDirectory>${project.build.testOutputDirectory}</workingDirectory>
                     <!-- making sure that the sure-fire plugin doesn't run the integration tests-->
                     <!-- Integration tests are run using the fail-safe plugin in the module pom-->

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index dd555b1..3066886 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -608,7 +608,7 @@ public class ExperimentRegistry {
             if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
                 updateExpOutputs(experimentOutputs, expId);
             }
-            ExperimentStatus experimentStatus = experiment.getExperimentStatus();
+            ExperimentStatus experimentStatus = experiment.getExperimentStatus().get(0);
             if (experimentStatus != null) {
                 updateExperimentStatus(experimentStatus, expId);
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Gateway.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Gateway.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Gateway.java
index afb67a1..c7d750d 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Gateway.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Gateway.java
@@ -72,7 +72,7 @@ public class Gateway {
         this.gatewayName = gatewayName;
     }
 
-    @Column(name = "DOMAIN")
+    @Column(name = "GATEWAY_DOMAIN")
     public String getDomain() {
         return domain;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/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 2fec213..3e04fcd 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
@@ -151,7 +151,9 @@ public class ThriftDataModelConversion {
             experiment.setExperimentOutputs(getExpOutputs(experimentOutputs));
             ExperimentStatusResource experimentStatus = experimentResource.getExperimentStatus();
             if (experimentStatus != null){
-                experiment.setExperimentStatus(getExperimentStatus(experimentStatus));
+                List<ExperimentStatus> experimentStatuses = new ArrayList<>();
+                experimentStatuses.add(getExperimentStatus(experimentStatus));
+                experiment.setExperimentStatus(experimentStatuses);
             }
             List<ExperimentErrorResource> errorDetails = experimentResource.getExperimentErrors();
             if (errorDetails!= null && !errorDetails.isEmpty()){

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index 2646147..67344d7 100644
--- a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -508,7 +508,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
             }
             ExperimentModel experimentModel = (ExperimentModel) experimentCatalog.get(ExperimentCatalogModelType.EXPERIMENT, experimentId);
 
-            if(!(experimentModel.getExperimentStatus().getState() == ExperimentState.CREATED)){
+            if(!(experimentModel.getExperimentStatus().get(0).getState() == ExperimentState.CREATED)){
                 logger.error("Error while deleting the experiment");
                 throw new ExperimentCatalogException("Experiment is not in CREATED state. Hence cannot deleted. ID:"+ experimentId);
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/thrift-interface-descriptions/data-models/experiment-catalog-models/experiment_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/experiment-catalog-models/experiment_model.thrift b/thrift-interface-descriptions/data-models/experiment-catalog-models/experiment_model.thrift
index e25e16e..5e54bf1 100644
--- a/thrift-interface-descriptions/data-models/experiment-catalog-models/experiment_model.thrift
+++ b/thrift-interface-descriptions/data-models/experiment-catalog-models/experiment_model.thrift
@@ -100,7 +100,7 @@ struct ExperimentModel {
     14: optional UserConfigurationDataModel userConfigurationData,
     15: optional list<application_io_models.InputDataObjectType> experimentInputs,
     16: optional list<application_io_models.OutputDataObjectType> experimentOutputs,
-    17: optional status_models.ExperimentStatus experimentStatus,
+    17: optional list<status_models.ExperimentStatus> experimentStatus,
     18: optional list<airavata_commons.ErrorModel> errors,
     19: optional list<process_model.ProcessModel> processes
     }


[2/2] airavata git commit: making experiment status a list in ExperimentModel

Posted by sc...@apache.org.
making experiment status a list in ExperimentModel


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

Branch: refs/heads/develop
Commit: 415e9b701599b44999ca35306a53052012e44e63
Parents: 3536751
Author: scnakandala <su...@gmail.com>
Authored: Thu Aug 25 15:28:32 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Thu Aug 25 15:28:32 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |  43 +-
 .../lib/airavata/experiment_model_types.cpp     | 406 ++++++++++---------
 .../lib/airavata/experiment_model_types.h       |   4 +-
 .../lib/Airavata/Model/Experiment/Types.php     | 205 +++++-----
 .../apache/airavata/model/experiment/ttypes.py  | 144 +++----
 .../client/samples/CreateLaunchBES.java         |  19 +-
 .../client/samples/CreateLaunchExperiment.java  |  14 +-
 .../model/experiment/ExperimentModel.java       | 219 ++++++----
 .../model/experiment/ExperimentStatistics.java  | 216 +++++-----
 .../impl/ExperimentStatusValidator.java         |   5 +-
 .../server/OrchestratorServerHandler.java       |  32 +-
 modules/registry/registry-core/pom.xml          |   2 +-
 .../catalog/impl/ExperimentRegistry.java        |   2 +-
 .../core/experiment/catalog/model/Gateway.java  |   2 +-
 .../utils/ThriftDataModelConversion.java        |   4 +-
 .../service/handler/RegistryServerHandler.java  |   2 +-
 .../experiment_model.thrift                     |   2 +-
 17 files changed, 685 insertions(+), 636 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/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 b21be18..83eb771 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
@@ -48,14 +48,7 @@ import org.apache.airavata.model.WorkflowModel;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.*;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
@@ -64,27 +57,11 @@ import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.airavata_commonsConstants;
 import org.apache.airavata.model.data.movement.DMType;
-import org.apache.airavata.model.data.movement.DataMovementInterface;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
-import org.apache.airavata.model.data.movement.GridFTPDataMovement;
-import org.apache.airavata.model.data.movement.LOCALDataMovement;
-import org.apache.airavata.model.data.movement.SCPDataMovement;
-import org.apache.airavata.model.data.movement.UnicoreDataMovement;
+import org.apache.airavata.model.data.movement.*;
 import org.apache.airavata.model.data.replica.DataProductModel;
 import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
-import org.apache.airavata.model.error.AiravataClientException;
-import org.apache.airavata.model.error.AiravataErrorType;
-import org.apache.airavata.model.error.AiravataSystemException;
-import org.apache.airavata.model.error.AuthorizationException;
-import org.apache.airavata.model.error.ExperimentNotFoundException;
-import org.apache.airavata.model.error.InvalidRequestException;
-import org.apache.airavata.model.error.ProjectNotFoundException;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.experiment.ExperimentSearchFields;
-import org.apache.airavata.model.experiment.ExperimentStatistics;
-import org.apache.airavata.model.experiment.ExperimentSummaryModel;
-import org.apache.airavata.model.experiment.ProjectSearchFields;
-import org.apache.airavata.model.experiment.UserConfigurationDataModel;
+import org.apache.airavata.model.error.*;
+import org.apache.airavata.model.experiment.*;
 import org.apache.airavata.model.group.GroupModel;
 import org.apache.airavata.model.group.ResourcePermissionType;
 import org.apache.airavata.model.group.ResourceType;
@@ -107,11 +84,7 @@ import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
+import java.util.*;
 
 public class AiravataServerHandler implements Airavata.Iface {
     private static final Logger logger = LoggerFactory.getLogger(AiravataServerHandler.class);
@@ -934,7 +907,7 @@ public class AiravataServerHandler implements Airavata.Iface {
                 }
             }
 
-            if(!(experimentModel.getExperimentStatus().getState() == ExperimentState.CREATED)){
+            if(!(experimentModel.getExperimentStatus().get(0).getState() == ExperimentState.CREATED)){
                 logger.error("Error while deleting the experiment");
                 throw new RegistryServiceException("Experiment is not in CREATED state. Hence cannot deleted. ID:"+ experimentId);
             }
@@ -1454,9 +1427,9 @@ public class AiravataServerHandler implements Airavata.Iface {
                 logger.error(airavataExperimentId, "Error while cancelling experiment {}, experiment doesn't exist.", airavataExperimentId);
                 throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
             }
-            switch (existingExperiment.getExperimentStatus().getState()) {
+            switch (existingExperiment.getExperimentStatus().get(0).getState()) {
                 case COMPLETED: case CANCELED: case FAILED: case CANCELING:
-                    logger.warn("Can't terminate already {} experiment", existingExperiment.getExperimentStatus().getState().name());
+                    logger.warn("Can't terminate already {} experiment", existingExperiment.getExperimentStatus().get(0).getState().name());
                     break;
                 case CREATED:
                     logger.warn("Experiment termination is only allowed for launched experiments.");

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.cpp
index 0bf0ac2..1980b28 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.cpp
@@ -415,7 +415,7 @@ void ExperimentModel::__set_experimentOutputs(const std::vector< ::apache::airav
 __isset.experimentOutputs = true;
 }
 
-void ExperimentModel::__set_experimentStatus(const  ::apache::airavata::model::status::ExperimentStatus& val) {
+void ExperimentModel::__set_experimentStatus(const std::vector< ::apache::airavata::model::status::ExperimentStatus> & val) {
   this->experimentStatus = val;
 __isset.experimentStatus = true;
 }
@@ -624,45 +624,57 @@ uint32_t ExperimentModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         }
         break;
       case 17:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->experimentStatus.read(iprot);
-          this->__isset.experimentStatus = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 18:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->errors.clear();
+            this->experimentStatus.clear();
             uint32_t _size18;
             ::apache::thrift::protocol::TType _etype21;
             xfer += iprot->readListBegin(_etype21, _size18);
-            this->errors.resize(_size18);
+            this->experimentStatus.resize(_size18);
             uint32_t _i22;
             for (_i22 = 0; _i22 < _size18; ++_i22)
             {
-              xfer += this->errors[_i22].read(iprot);
+              xfer += this->experimentStatus[_i22].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
-          this->__isset.errors = true;
+          this->__isset.experimentStatus = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 19:
+      case 18:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->processes.clear();
+            this->errors.clear();
             uint32_t _size23;
             ::apache::thrift::protocol::TType _etype26;
             xfer += iprot->readListBegin(_etype26, _size23);
-            this->processes.resize(_size23);
+            this->errors.resize(_size23);
             uint32_t _i27;
             for (_i27 = 0; _i27 < _size23; ++_i27)
             {
-              xfer += this->processes[_i27].read(iprot);
+              xfer += this->errors[_i27].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.errors = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 19:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->processes.clear();
+            uint32_t _size28;
+            ::apache::thrift::protocol::TType _etype31;
+            xfer += iprot->readListBegin(_etype31, _size28);
+            this->processes.resize(_size28);
+            uint32_t _i32;
+            for (_i32 = 0; _i32 < _size28; ++_i32)
+            {
+              xfer += this->processes[_i32].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -758,10 +770,10 @@ uint32_t ExperimentModel::write(::apache::thrift::protocol::TProtocol* oprot) co
     xfer += oprot->writeFieldBegin("emailAddresses", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->emailAddresses.size()));
-      std::vector<std::string> ::const_iterator _iter28;
-      for (_iter28 = this->emailAddresses.begin(); _iter28 != this->emailAddresses.end(); ++_iter28)
+      std::vector<std::string> ::const_iterator _iter33;
+      for (_iter33 = this->emailAddresses.begin(); _iter33 != this->emailAddresses.end(); ++_iter33)
       {
-        xfer += oprot->writeString((*_iter28));
+        xfer += oprot->writeString((*_iter33));
       }
       xfer += oprot->writeListEnd();
     }
@@ -776,10 +788,10 @@ uint32_t ExperimentModel::write(::apache::thrift::protocol::TProtocol* oprot) co
     xfer += oprot->writeFieldBegin("experimentInputs", ::apache::thrift::protocol::T_LIST, 15);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->experimentInputs.size()));
-      std::vector< ::apache::airavata::model::application::io::InputDataObjectType> ::const_iterator _iter29;
-      for (_iter29 = this->experimentInputs.begin(); _iter29 != this->experimentInputs.end(); ++_iter29)
+      std::vector< ::apache::airavata::model::application::io::InputDataObjectType> ::const_iterator _iter34;
+      for (_iter34 = this->experimentInputs.begin(); _iter34 != this->experimentInputs.end(); ++_iter34)
       {
-        xfer += (*_iter29).write(oprot);
+        xfer += (*_iter34).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -789,28 +801,36 @@ uint32_t ExperimentModel::write(::apache::thrift::protocol::TProtocol* oprot) co
     xfer += oprot->writeFieldBegin("experimentOutputs", ::apache::thrift::protocol::T_LIST, 16);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->experimentOutputs.size()));
-      std::vector< ::apache::airavata::model::application::io::OutputDataObjectType> ::const_iterator _iter30;
-      for (_iter30 = this->experimentOutputs.begin(); _iter30 != this->experimentOutputs.end(); ++_iter30)
+      std::vector< ::apache::airavata::model::application::io::OutputDataObjectType> ::const_iterator _iter35;
+      for (_iter35 = this->experimentOutputs.begin(); _iter35 != this->experimentOutputs.end(); ++_iter35)
       {
-        xfer += (*_iter30).write(oprot);
+        xfer += (*_iter35).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.experimentStatus) {
-    xfer += oprot->writeFieldBegin("experimentStatus", ::apache::thrift::protocol::T_STRUCT, 17);
-    xfer += this->experimentStatus.write(oprot);
+    xfer += oprot->writeFieldBegin("experimentStatus", ::apache::thrift::protocol::T_LIST, 17);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->experimentStatus.size()));
+      std::vector< ::apache::airavata::model::status::ExperimentStatus> ::const_iterator _iter36;
+      for (_iter36 = this->experimentStatus.begin(); _iter36 != this->experimentStatus.end(); ++_iter36)
+      {
+        xfer += (*_iter36).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.errors) {
     xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 18);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector< ::apache::airavata::model::commons::ErrorModel> ::const_iterator _iter31;
-      for (_iter31 = this->errors.begin(); _iter31 != this->errors.end(); ++_iter31)
+      std::vector< ::apache::airavata::model::commons::ErrorModel> ::const_iterator _iter37;
+      for (_iter37 = this->errors.begin(); _iter37 != this->errors.end(); ++_iter37)
       {
-        xfer += (*_iter31).write(oprot);
+        xfer += (*_iter37).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -820,10 +840,10 @@ uint32_t ExperimentModel::write(::apache::thrift::protocol::TProtocol* oprot) co
     xfer += oprot->writeFieldBegin("processes", ::apache::thrift::protocol::T_LIST, 19);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processes.size()));
-      std::vector< ::apache::airavata::model::process::ProcessModel> ::const_iterator _iter32;
-      for (_iter32 = this->processes.begin(); _iter32 != this->processes.end(); ++_iter32)
+      std::vector< ::apache::airavata::model::process::ProcessModel> ::const_iterator _iter38;
+      for (_iter38 = this->processes.begin(); _iter38 != this->processes.end(); ++_iter38)
       {
-        xfer += (*_iter32).write(oprot);
+        xfer += (*_iter38).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -858,49 +878,49 @@ void swap(ExperimentModel &a, ExperimentModel &b) {
   swap(a.__isset, b.__isset);
 }
 
-ExperimentModel::ExperimentModel(const ExperimentModel& other33) {
-  experimentId = other33.experimentId;
-  projectId = other33.projectId;
-  gatewayId = other33.gatewayId;
-  experimentType = other33.experimentType;
-  userName = other33.userName;
-  experimentName = other33.experimentName;
-  creationTime = other33.creationTime;
-  description = other33.description;
-  executionId = other33.executionId;
-  gatewayExecutionId = other33.gatewayExecutionId;
-  gatewayInstanceId = other33.gatewayInstanceId;
-  enableEmailNotification = other33.enableEmailNotification;
-  emailAddresses = other33.emailAddresses;
-  userConfigurationData = other33.userConfigurationData;
-  experimentInputs = other33.experimentInputs;
-  experimentOutputs = other33.experimentOutputs;
-  experimentStatus = other33.experimentStatus;
-  errors = other33.errors;
-  processes = other33.processes;
-  __isset = other33.__isset;
-}
-ExperimentModel& ExperimentModel::operator=(const ExperimentModel& other34) {
-  experimentId = other34.experimentId;
-  projectId = other34.projectId;
-  gatewayId = other34.gatewayId;
-  experimentType = other34.experimentType;
-  userName = other34.userName;
-  experimentName = other34.experimentName;
-  creationTime = other34.creationTime;
-  description = other34.description;
-  executionId = other34.executionId;
-  gatewayExecutionId = other34.gatewayExecutionId;
-  gatewayInstanceId = other34.gatewayInstanceId;
-  enableEmailNotification = other34.enableEmailNotification;
-  emailAddresses = other34.emailAddresses;
-  userConfigurationData = other34.userConfigurationData;
-  experimentInputs = other34.experimentInputs;
-  experimentOutputs = other34.experimentOutputs;
-  experimentStatus = other34.experimentStatus;
-  errors = other34.errors;
-  processes = other34.processes;
-  __isset = other34.__isset;
+ExperimentModel::ExperimentModel(const ExperimentModel& other39) {
+  experimentId = other39.experimentId;
+  projectId = other39.projectId;
+  gatewayId = other39.gatewayId;
+  experimentType = other39.experimentType;
+  userName = other39.userName;
+  experimentName = other39.experimentName;
+  creationTime = other39.creationTime;
+  description = other39.description;
+  executionId = other39.executionId;
+  gatewayExecutionId = other39.gatewayExecutionId;
+  gatewayInstanceId = other39.gatewayInstanceId;
+  enableEmailNotification = other39.enableEmailNotification;
+  emailAddresses = other39.emailAddresses;
+  userConfigurationData = other39.userConfigurationData;
+  experimentInputs = other39.experimentInputs;
+  experimentOutputs = other39.experimentOutputs;
+  experimentStatus = other39.experimentStatus;
+  errors = other39.errors;
+  processes = other39.processes;
+  __isset = other39.__isset;
+}
+ExperimentModel& ExperimentModel::operator=(const ExperimentModel& other40) {
+  experimentId = other40.experimentId;
+  projectId = other40.projectId;
+  gatewayId = other40.gatewayId;
+  experimentType = other40.experimentType;
+  userName = other40.userName;
+  experimentName = other40.experimentName;
+  creationTime = other40.creationTime;
+  description = other40.description;
+  executionId = other40.executionId;
+  gatewayExecutionId = other40.gatewayExecutionId;
+  gatewayInstanceId = other40.gatewayInstanceId;
+  enableEmailNotification = other40.enableEmailNotification;
+  emailAddresses = other40.emailAddresses;
+  userConfigurationData = other40.userConfigurationData;
+  experimentInputs = other40.experimentInputs;
+  experimentOutputs = other40.experimentOutputs;
+  experimentStatus = other40.experimentStatus;
+  errors = other40.errors;
+  processes = other40.processes;
+  __isset = other40.__isset;
   return *this;
 }
 void ExperimentModel::printTo(std::ostream& out) const {
@@ -1195,33 +1215,33 @@ void swap(ExperimentSummaryModel &a, ExperimentSummaryModel &b) {
   swap(a.__isset, b.__isset);
 }
 
-ExperimentSummaryModel::ExperimentSummaryModel(const ExperimentSummaryModel& other35) {
-  experimentId = other35.experimentId;
-  projectId = other35.projectId;
-  gatewayId = other35.gatewayId;
-  creationTime = other35.creationTime;
-  userName = other35.userName;
-  name = other35.name;
-  description = other35.description;
-  executionId = other35.executionId;
-  resourceHostId = other35.resourceHostId;
-  experimentStatus = other35.experimentStatus;
-  statusUpdateTime = other35.statusUpdateTime;
-  __isset = other35.__isset;
-}
-ExperimentSummaryModel& ExperimentSummaryModel::operator=(const ExperimentSummaryModel& other36) {
-  experimentId = other36.experimentId;
-  projectId = other36.projectId;
-  gatewayId = other36.gatewayId;
-  creationTime = other36.creationTime;
-  userName = other36.userName;
-  name = other36.name;
-  description = other36.description;
-  executionId = other36.executionId;
-  resourceHostId = other36.resourceHostId;
-  experimentStatus = other36.experimentStatus;
-  statusUpdateTime = other36.statusUpdateTime;
-  __isset = other36.__isset;
+ExperimentSummaryModel::ExperimentSummaryModel(const ExperimentSummaryModel& other41) {
+  experimentId = other41.experimentId;
+  projectId = other41.projectId;
+  gatewayId = other41.gatewayId;
+  creationTime = other41.creationTime;
+  userName = other41.userName;
+  name = other41.name;
+  description = other41.description;
+  executionId = other41.executionId;
+  resourceHostId = other41.resourceHostId;
+  experimentStatus = other41.experimentStatus;
+  statusUpdateTime = other41.statusUpdateTime;
+  __isset = other41.__isset;
+}
+ExperimentSummaryModel& ExperimentSummaryModel::operator=(const ExperimentSummaryModel& other42) {
+  experimentId = other42.experimentId;
+  projectId = other42.projectId;
+  gatewayId = other42.gatewayId;
+  creationTime = other42.creationTime;
+  userName = other42.userName;
+  name = other42.name;
+  description = other42.description;
+  executionId = other42.executionId;
+  resourceHostId = other42.resourceHostId;
+  experimentStatus = other42.experimentStatus;
+  statusUpdateTime = other42.statusUpdateTime;
+  __isset = other42.__isset;
   return *this;
 }
 void ExperimentSummaryModel::printTo(std::ostream& out) const {
@@ -1379,14 +1399,14 @@ uint32_t ExperimentStatistics::read(::apache::thrift::protocol::TProtocol* iprot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->allExperiments.clear();
-            uint32_t _size37;
-            ::apache::thrift::protocol::TType _etype40;
-            xfer += iprot->readListBegin(_etype40, _size37);
-            this->allExperiments.resize(_size37);
-            uint32_t _i41;
-            for (_i41 = 0; _i41 < _size37; ++_i41)
+            uint32_t _size43;
+            ::apache::thrift::protocol::TType _etype46;
+            xfer += iprot->readListBegin(_etype46, _size43);
+            this->allExperiments.resize(_size43);
+            uint32_t _i47;
+            for (_i47 = 0; _i47 < _size43; ++_i47)
             {
-              xfer += this->allExperiments[_i41].read(iprot);
+              xfer += this->allExperiments[_i47].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1399,14 +1419,14 @@ uint32_t ExperimentStatistics::read(::apache::thrift::protocol::TProtocol* iprot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->completedExperiments.clear();
-            uint32_t _size42;
-            ::apache::thrift::protocol::TType _etype45;
-            xfer += iprot->readListBegin(_etype45, _size42);
-            this->completedExperiments.resize(_size42);
-            uint32_t _i46;
-            for (_i46 = 0; _i46 < _size42; ++_i46)
+            uint32_t _size48;
+            ::apache::thrift::protocol::TType _etype51;
+            xfer += iprot->readListBegin(_etype51, _size48);
+            this->completedExperiments.resize(_size48);
+            uint32_t _i52;
+            for (_i52 = 0; _i52 < _size48; ++_i52)
             {
-              xfer += this->completedExperiments[_i46].read(iprot);
+              xfer += this->completedExperiments[_i52].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1419,14 +1439,14 @@ uint32_t ExperimentStatistics::read(::apache::thrift::protocol::TProtocol* iprot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->failedExperiments.clear();
-            uint32_t _size47;
-            ::apache::thrift::protocol::TType _etype50;
-            xfer += iprot->readListBegin(_etype50, _size47);
-            this->failedExperiments.resize(_size47);
-            uint32_t _i51;
-            for (_i51 = 0; _i51 < _size47; ++_i51)
+            uint32_t _size53;
+            ::apache::thrift::protocol::TType _etype56;
+            xfer += iprot->readListBegin(_etype56, _size53);
+            this->failedExperiments.resize(_size53);
+            uint32_t _i57;
+            for (_i57 = 0; _i57 < _size53; ++_i57)
             {
-              xfer += this->failedExperiments[_i51].read(iprot);
+              xfer += this->failedExperiments[_i57].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1439,14 +1459,14 @@ uint32_t ExperimentStatistics::read(::apache::thrift::protocol::TProtocol* iprot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->cancelledExperiments.clear();
-            uint32_t _size52;
-            ::apache::thrift::protocol::TType _etype55;
-            xfer += iprot->readListBegin(_etype55, _size52);
-            this->cancelledExperiments.resize(_size52);
-            uint32_t _i56;
-            for (_i56 = 0; _i56 < _size52; ++_i56)
+            uint32_t _size58;
+            ::apache::thrift::protocol::TType _etype61;
+            xfer += iprot->readListBegin(_etype61, _size58);
+            this->cancelledExperiments.resize(_size58);
+            uint32_t _i62;
+            for (_i62 = 0; _i62 < _size58; ++_i62)
             {
-              xfer += this->cancelledExperiments[_i56].read(iprot);
+              xfer += this->cancelledExperiments[_i62].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1459,14 +1479,14 @@ uint32_t ExperimentStatistics::read(::apache::thrift::protocol::TProtocol* iprot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->createdExperiments.clear();
-            uint32_t _size57;
-            ::apache::thrift::protocol::TType _etype60;
-            xfer += iprot->readListBegin(_etype60, _size57);
-            this->createdExperiments.resize(_size57);
-            uint32_t _i61;
-            for (_i61 = 0; _i61 < _size57; ++_i61)
+            uint32_t _size63;
+            ::apache::thrift::protocol::TType _etype66;
+            xfer += iprot->readListBegin(_etype66, _size63);
+            this->createdExperiments.resize(_size63);
+            uint32_t _i67;
+            for (_i67 = 0; _i67 < _size63; ++_i67)
             {
-              xfer += this->createdExperiments[_i61].read(iprot);
+              xfer += this->createdExperiments[_i67].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1479,14 +1499,14 @@ uint32_t ExperimentStatistics::read(::apache::thrift::protocol::TProtocol* iprot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->runningExperiments.clear();
-            uint32_t _size62;
-            ::apache::thrift::protocol::TType _etype65;
-            xfer += iprot->readListBegin(_etype65, _size62);
-            this->runningExperiments.resize(_size62);
-            uint32_t _i66;
-            for (_i66 = 0; _i66 < _size62; ++_i66)
+            uint32_t _size68;
+            ::apache::thrift::protocol::TType _etype71;
+            xfer += iprot->readListBegin(_etype71, _size68);
+            this->runningExperiments.resize(_size68);
+            uint32_t _i72;
+            for (_i72 = 0; _i72 < _size68; ++_i72)
             {
-              xfer += this->runningExperiments[_i66].read(iprot);
+              xfer += this->runningExperiments[_i72].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1552,10 +1572,10 @@ uint32_t ExperimentStatistics::write(::apache::thrift::protocol::TProtocol* opro
   xfer += oprot->writeFieldBegin("allExperiments", ::apache::thrift::protocol::T_LIST, 7);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->allExperiments.size()));
-    std::vector<ExperimentSummaryModel> ::const_iterator _iter67;
-    for (_iter67 = this->allExperiments.begin(); _iter67 != this->allExperiments.end(); ++_iter67)
+    std::vector<ExperimentSummaryModel> ::const_iterator _iter73;
+    for (_iter73 = this->allExperiments.begin(); _iter73 != this->allExperiments.end(); ++_iter73)
     {
-      xfer += (*_iter67).write(oprot);
+      xfer += (*_iter73).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -1565,10 +1585,10 @@ uint32_t ExperimentStatistics::write(::apache::thrift::protocol::TProtocol* opro
     xfer += oprot->writeFieldBegin("completedExperiments", ::apache::thrift::protocol::T_LIST, 8);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->completedExperiments.size()));
-      std::vector<ExperimentSummaryModel> ::const_iterator _iter68;
-      for (_iter68 = this->completedExperiments.begin(); _iter68 != this->completedExperiments.end(); ++_iter68)
+      std::vector<ExperimentSummaryModel> ::const_iterator _iter74;
+      for (_iter74 = this->completedExperiments.begin(); _iter74 != this->completedExperiments.end(); ++_iter74)
       {
-        xfer += (*_iter68).write(oprot);
+        xfer += (*_iter74).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1578,10 +1598,10 @@ uint32_t ExperimentStatistics::write(::apache::thrift::protocol::TProtocol* opro
     xfer += oprot->writeFieldBegin("failedExperiments", ::apache::thrift::protocol::T_LIST, 9);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->failedExperiments.size()));
-      std::vector<ExperimentSummaryModel> ::const_iterator _iter69;
-      for (_iter69 = this->failedExperiments.begin(); _iter69 != this->failedExperiments.end(); ++_iter69)
+      std::vector<ExperimentSummaryModel> ::const_iterator _iter75;
+      for (_iter75 = this->failedExperiments.begin(); _iter75 != this->failedExperiments.end(); ++_iter75)
       {
-        xfer += (*_iter69).write(oprot);
+        xfer += (*_iter75).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1591,10 +1611,10 @@ uint32_t ExperimentStatistics::write(::apache::thrift::protocol::TProtocol* opro
     xfer += oprot->writeFieldBegin("cancelledExperiments", ::apache::thrift::protocol::T_LIST, 10);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->cancelledExperiments.size()));
-      std::vector<ExperimentSummaryModel> ::const_iterator _iter70;
-      for (_iter70 = this->cancelledExperiments.begin(); _iter70 != this->cancelledExperiments.end(); ++_iter70)
+      std::vector<ExperimentSummaryModel> ::const_iterator _iter76;
+      for (_iter76 = this->cancelledExperiments.begin(); _iter76 != this->cancelledExperiments.end(); ++_iter76)
       {
-        xfer += (*_iter70).write(oprot);
+        xfer += (*_iter76).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1604,10 +1624,10 @@ uint32_t ExperimentStatistics::write(::apache::thrift::protocol::TProtocol* opro
     xfer += oprot->writeFieldBegin("createdExperiments", ::apache::thrift::protocol::T_LIST, 11);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->createdExperiments.size()));
-      std::vector<ExperimentSummaryModel> ::const_iterator _iter71;
-      for (_iter71 = this->createdExperiments.begin(); _iter71 != this->createdExperiments.end(); ++_iter71)
+      std::vector<ExperimentSummaryModel> ::const_iterator _iter77;
+      for (_iter77 = this->createdExperiments.begin(); _iter77 != this->createdExperiments.end(); ++_iter77)
       {
-        xfer += (*_iter71).write(oprot);
+        xfer += (*_iter77).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1617,10 +1637,10 @@ uint32_t ExperimentStatistics::write(::apache::thrift::protocol::TProtocol* opro
     xfer += oprot->writeFieldBegin("runningExperiments", ::apache::thrift::protocol::T_LIST, 12);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->runningExperiments.size()));
-      std::vector<ExperimentSummaryModel> ::const_iterator _iter72;
-      for (_iter72 = this->runningExperiments.begin(); _iter72 != this->runningExperiments.end(); ++_iter72)
+      std::vector<ExperimentSummaryModel> ::const_iterator _iter78;
+      for (_iter78 = this->runningExperiments.begin(); _iter78 != this->runningExperiments.end(); ++_iter78)
       {
-        xfer += (*_iter72).write(oprot);
+        xfer += (*_iter78).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1648,35 +1668,35 @@ void swap(ExperimentStatistics &a, ExperimentStatistics &b) {
   swap(a.__isset, b.__isset);
 }
 
-ExperimentStatistics::ExperimentStatistics(const ExperimentStatistics& other73) {
-  allExperimentCount = other73.allExperimentCount;
-  completedExperimentCount = other73.completedExperimentCount;
-  cancelledExperimentCount = other73.cancelledExperimentCount;
-  failedExperimentCount = other73.failedExperimentCount;
-  createdExperimentCount = other73.createdExperimentCount;
-  runningExperimentCount = other73.runningExperimentCount;
-  allExperiments = other73.allExperiments;
-  completedExperiments = other73.completedExperiments;
-  failedExperiments = other73.failedExperiments;
-  cancelledExperiments = other73.cancelledExperiments;
-  createdExperiments = other73.createdExperiments;
-  runningExperiments = other73.runningExperiments;
-  __isset = other73.__isset;
-}
-ExperimentStatistics& ExperimentStatistics::operator=(const ExperimentStatistics& other74) {
-  allExperimentCount = other74.allExperimentCount;
-  completedExperimentCount = other74.completedExperimentCount;
-  cancelledExperimentCount = other74.cancelledExperimentCount;
-  failedExperimentCount = other74.failedExperimentCount;
-  createdExperimentCount = other74.createdExperimentCount;
-  runningExperimentCount = other74.runningExperimentCount;
-  allExperiments = other74.allExperiments;
-  completedExperiments = other74.completedExperiments;
-  failedExperiments = other74.failedExperiments;
-  cancelledExperiments = other74.cancelledExperiments;
-  createdExperiments = other74.createdExperiments;
-  runningExperiments = other74.runningExperiments;
-  __isset = other74.__isset;
+ExperimentStatistics::ExperimentStatistics(const ExperimentStatistics& other79) {
+  allExperimentCount = other79.allExperimentCount;
+  completedExperimentCount = other79.completedExperimentCount;
+  cancelledExperimentCount = other79.cancelledExperimentCount;
+  failedExperimentCount = other79.failedExperimentCount;
+  createdExperimentCount = other79.createdExperimentCount;
+  runningExperimentCount = other79.runningExperimentCount;
+  allExperiments = other79.allExperiments;
+  completedExperiments = other79.completedExperiments;
+  failedExperiments = other79.failedExperiments;
+  cancelledExperiments = other79.cancelledExperiments;
+  createdExperiments = other79.createdExperiments;
+  runningExperiments = other79.runningExperiments;
+  __isset = other79.__isset;
+}
+ExperimentStatistics& ExperimentStatistics::operator=(const ExperimentStatistics& other80) {
+  allExperimentCount = other80.allExperimentCount;
+  completedExperimentCount = other80.completedExperimentCount;
+  cancelledExperimentCount = other80.cancelledExperimentCount;
+  failedExperimentCount = other80.failedExperimentCount;
+  createdExperimentCount = other80.createdExperimentCount;
+  runningExperimentCount = other80.runningExperimentCount;
+  allExperiments = other80.allExperiments;
+  completedExperiments = other80.completedExperiments;
+  failedExperiments = other80.failedExperiments;
+  cancelledExperiments = other80.cancelledExperiments;
+  createdExperiments = other80.createdExperiments;
+  runningExperiments = other80.runningExperiments;
+  __isset = other80.__isset;
   return *this;
 }
 void ExperimentStatistics::printTo(std::ostream& out) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.h
index c3e6fc0..c6368e3 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experiment_model_types.h
@@ -231,7 +231,7 @@ class ExperimentModel {
   UserConfigurationDataModel userConfigurationData;
   std::vector< ::apache::airavata::model::application::io::InputDataObjectType>  experimentInputs;
   std::vector< ::apache::airavata::model::application::io::OutputDataObjectType>  experimentOutputs;
-   ::apache::airavata::model::status::ExperimentStatus experimentStatus;
+  std::vector< ::apache::airavata::model::status::ExperimentStatus>  experimentStatus;
   std::vector< ::apache::airavata::model::commons::ErrorModel>  errors;
   std::vector< ::apache::airavata::model::process::ProcessModel>  processes;
 
@@ -269,7 +269,7 @@ class ExperimentModel {
 
   void __set_experimentOutputs(const std::vector< ::apache::airavata::model::application::io::OutputDataObjectType> & val);
 
-  void __set_experimentStatus(const  ::apache::airavata::model::status::ExperimentStatus& val);
+  void __set_experimentStatus(const std::vector< ::apache::airavata::model::status::ExperimentStatus> & val);
 
   void __set_errors(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val);
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
index 5018139..3e1dc12 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
@@ -407,7 +407,7 @@ class ExperimentModel {
    */
   public $experimentOutputs = null;
   /**
-   * @var \Airavata\Model\Status\ExperimentStatus
+   * @var \Airavata\Model\Status\ExperimentStatus[]
    */
   public $experimentStatus = null;
   /**
@@ -503,8 +503,12 @@ class ExperimentModel {
           ),
         17 => array(
           'var' => 'experimentStatus',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Status\ExperimentStatus',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Status\ExperimentStatus',
+            ),
           ),
         18 => array(
           'var' => 'errors',
@@ -752,43 +756,53 @@ class ExperimentModel {
           }
           break;
         case 17:
-          if ($ftype == TType::STRUCT) {
-            $this->experimentStatus = new \Airavata\Model\Status\ExperimentStatus();
-            $xfer += $this->experimentStatus->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 18:
           if ($ftype == TType::LST) {
-            $this->errors = array();
+            $this->experimentStatus = array();
             $_size18 = 0;
             $_etype21 = 0;
             $xfer += $input->readListBegin($_etype21, $_size18);
             for ($_i22 = 0; $_i22 < $_size18; ++$_i22)
             {
               $elem23 = null;
-              $elem23 = new \Airavata\Model\Commons\ErrorModel();
+              $elem23 = new \Airavata\Model\Status\ExperimentStatus();
               $xfer += $elem23->read($input);
-              $this->errors []= $elem23;
+              $this->experimentStatus []= $elem23;
             }
             $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 19:
+        case 18:
           if ($ftype == TType::LST) {
-            $this->processes = array();
+            $this->errors = array();
             $_size24 = 0;
             $_etype27 = 0;
             $xfer += $input->readListBegin($_etype27, $_size24);
             for ($_i28 = 0; $_i28 < $_size24; ++$_i28)
             {
               $elem29 = null;
-              $elem29 = new \Airavata\Model\Process\ProcessModel();
+              $elem29 = new \Airavata\Model\Commons\ErrorModel();
               $xfer += $elem29->read($input);
-              $this->processes []= $elem29;
+              $this->errors []= $elem29;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 19:
+          if ($ftype == TType::LST) {
+            $this->processes = array();
+            $_size30 = 0;
+            $_etype33 = 0;
+            $xfer += $input->readListBegin($_etype33, $_size30);
+            for ($_i34 = 0; $_i34 < $_size30; ++$_i34)
+            {
+              $elem35 = null;
+              $elem35 = new \Airavata\Model\Process\ProcessModel();
+              $xfer += $elem35->read($input);
+              $this->processes []= $elem35;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -876,9 +890,9 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRING, count($this->emailAddresses));
         {
-          foreach ($this->emailAddresses as $iter30)
+          foreach ($this->emailAddresses as $iter36)
           {
-            $xfer += $output->writeString($iter30);
+            $xfer += $output->writeString($iter36);
           }
         }
         $output->writeListEnd();
@@ -901,9 +915,9 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->experimentInputs));
         {
-          foreach ($this->experimentInputs as $iter31)
+          foreach ($this->experimentInputs as $iter37)
           {
-            $xfer += $iter31->write($output);
+            $xfer += $iter37->write($output);
           }
         }
         $output->writeListEnd();
@@ -918,9 +932,9 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->experimentOutputs));
         {
-          foreach ($this->experimentOutputs as $iter32)
+          foreach ($this->experimentOutputs as $iter38)
           {
-            $xfer += $iter32->write($output);
+            $xfer += $iter38->write($output);
           }
         }
         $output->writeListEnd();
@@ -928,11 +942,20 @@ class ExperimentModel {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->experimentStatus !== null) {
-      if (!is_object($this->experimentStatus)) {
+      if (!is_array($this->experimentStatus)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('experimentStatus', TType::STRUCT, 17);
-      $xfer += $this->experimentStatus->write($output);
+      $xfer += $output->writeFieldBegin('experimentStatus', TType::LST, 17);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->experimentStatus));
+        {
+          foreach ($this->experimentStatus as $iter39)
+          {
+            $xfer += $iter39->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->errors !== null) {
@@ -943,9 +966,9 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->errors));
         {
-          foreach ($this->errors as $iter33)
+          foreach ($this->errors as $iter40)
           {
-            $xfer += $iter33->write($output);
+            $xfer += $iter40->write($output);
           }
         }
         $output->writeListEnd();
@@ -960,9 +983,9 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->processes));
         {
-          foreach ($this->processes as $iter34)
+          foreach ($this->processes as $iter41)
           {
-            $xfer += $iter34->write($output);
+            $xfer += $iter41->write($output);
           }
         }
         $output->writeListEnd();
@@ -1520,15 +1543,15 @@ class ExperimentStatistics {
         case 7:
           if ($ftype == TType::LST) {
             $this->allExperiments = array();
-            $_size35 = 0;
-            $_etype38 = 0;
-            $xfer += $input->readListBegin($_etype38, $_size35);
-            for ($_i39 = 0; $_i39 < $_size35; ++$_i39)
+            $_size42 = 0;
+            $_etype45 = 0;
+            $xfer += $input->readListBegin($_etype45, $_size42);
+            for ($_i46 = 0; $_i46 < $_size42; ++$_i46)
             {
-              $elem40 = null;
-              $elem40 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem40->read($input);
-              $this->allExperiments []= $elem40;
+              $elem47 = null;
+              $elem47 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem47->read($input);
+              $this->allExperiments []= $elem47;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1538,15 +1561,15 @@ class ExperimentStatistics {
         case 8:
           if ($ftype == TType::LST) {
             $this->completedExperiments = array();
-            $_size41 = 0;
-            $_etype44 = 0;
-            $xfer += $input->readListBegin($_etype44, $_size41);
-            for ($_i45 = 0; $_i45 < $_size41; ++$_i45)
+            $_size48 = 0;
+            $_etype51 = 0;
+            $xfer += $input->readListBegin($_etype51, $_size48);
+            for ($_i52 = 0; $_i52 < $_size48; ++$_i52)
             {
-              $elem46 = null;
-              $elem46 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem46->read($input);
-              $this->completedExperiments []= $elem46;
+              $elem53 = null;
+              $elem53 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem53->read($input);
+              $this->completedExperiments []= $elem53;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1556,15 +1579,15 @@ class ExperimentStatistics {
         case 9:
           if ($ftype == TType::LST) {
             $this->failedExperiments = array();
-            $_size47 = 0;
-            $_etype50 = 0;
-            $xfer += $input->readListBegin($_etype50, $_size47);
-            for ($_i51 = 0; $_i51 < $_size47; ++$_i51)
+            $_size54 = 0;
+            $_etype57 = 0;
+            $xfer += $input->readListBegin($_etype57, $_size54);
+            for ($_i58 = 0; $_i58 < $_size54; ++$_i58)
             {
-              $elem52 = null;
-              $elem52 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem52->read($input);
-              $this->failedExperiments []= $elem52;
+              $elem59 = null;
+              $elem59 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem59->read($input);
+              $this->failedExperiments []= $elem59;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1574,15 +1597,15 @@ class ExperimentStatistics {
         case 10:
           if ($ftype == TType::LST) {
             $this->cancelledExperiments = array();
-            $_size53 = 0;
-            $_etype56 = 0;
-            $xfer += $input->readListBegin($_etype56, $_size53);
-            for ($_i57 = 0; $_i57 < $_size53; ++$_i57)
+            $_size60 = 0;
+            $_etype63 = 0;
+            $xfer += $input->readListBegin($_etype63, $_size60);
+            for ($_i64 = 0; $_i64 < $_size60; ++$_i64)
             {
-              $elem58 = null;
-              $elem58 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem58->read($input);
-              $this->cancelledExperiments []= $elem58;
+              $elem65 = null;
+              $elem65 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem65->read($input);
+              $this->cancelledExperiments []= $elem65;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1592,15 +1615,15 @@ class ExperimentStatistics {
         case 11:
           if ($ftype == TType::LST) {
             $this->createdExperiments = array();
-            $_size59 = 0;
-            $_etype62 = 0;
-            $xfer += $input->readListBegin($_etype62, $_size59);
-            for ($_i63 = 0; $_i63 < $_size59; ++$_i63)
+            $_size66 = 0;
+            $_etype69 = 0;
+            $xfer += $input->readListBegin($_etype69, $_size66);
+            for ($_i70 = 0; $_i70 < $_size66; ++$_i70)
             {
-              $elem64 = null;
-              $elem64 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem64->read($input);
-              $this->createdExperiments []= $elem64;
+              $elem71 = null;
+              $elem71 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem71->read($input);
+              $this->createdExperiments []= $elem71;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1610,15 +1633,15 @@ class ExperimentStatistics {
         case 12:
           if ($ftype == TType::LST) {
             $this->runningExperiments = array();
-            $_size65 = 0;
-            $_etype68 = 0;
-            $xfer += $input->readListBegin($_etype68, $_size65);
-            for ($_i69 = 0; $_i69 < $_size65; ++$_i69)
+            $_size72 = 0;
+            $_etype75 = 0;
+            $xfer += $input->readListBegin($_etype75, $_size72);
+            for ($_i76 = 0; $_i76 < $_size72; ++$_i76)
             {
-              $elem70 = null;
-              $elem70 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem70->read($input);
-              $this->runningExperiments []= $elem70;
+              $elem77 = null;
+              $elem77 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem77->read($input);
+              $this->runningExperiments []= $elem77;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1676,9 +1699,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->allExperiments));
         {
-          foreach ($this->allExperiments as $iter71)
+          foreach ($this->allExperiments as $iter78)
           {
-            $xfer += $iter71->write($output);
+            $xfer += $iter78->write($output);
           }
         }
         $output->writeListEnd();
@@ -1693,9 +1716,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->completedExperiments));
         {
-          foreach ($this->completedExperiments as $iter72)
+          foreach ($this->completedExperiments as $iter79)
           {
-            $xfer += $iter72->write($output);
+            $xfer += $iter79->write($output);
           }
         }
         $output->writeListEnd();
@@ -1710,9 +1733,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->failedExperiments));
         {
-          foreach ($this->failedExperiments as $iter73)
+          foreach ($this->failedExperiments as $iter80)
           {
-            $xfer += $iter73->write($output);
+            $xfer += $iter80->write($output);
           }
         }
         $output->writeListEnd();
@@ -1727,9 +1750,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->cancelledExperiments));
         {
-          foreach ($this->cancelledExperiments as $iter74)
+          foreach ($this->cancelledExperiments as $iter81)
           {
-            $xfer += $iter74->write($output);
+            $xfer += $iter81->write($output);
           }
         }
         $output->writeListEnd();
@@ -1744,9 +1767,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->createdExperiments));
         {
-          foreach ($this->createdExperiments as $iter75)
+          foreach ($this->createdExperiments as $iter82)
           {
-            $xfer += $iter75->write($output);
+            $xfer += $iter82->write($output);
           }
         }
         $output->writeListEnd();
@@ -1761,9 +1784,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->runningExperiments));
         {
-          foreach ($this->runningExperiments as $iter76)
+          foreach ($this->runningExperiments as $iter83)
           {
-            $xfer += $iter76->write($output);
+            $xfer += $iter83->write($output);
           }
         }
         $output->writeListEnd();

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
index 75f6271..80ff4b1 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
@@ -315,7 +315,7 @@ class ExperimentModel:
     (14, TType.STRUCT, 'userConfigurationData', (UserConfigurationDataModel, UserConfigurationDataModel.thrift_spec), None, ), # 14
     (15, TType.LIST, 'experimentInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 15
     (16, TType.LIST, 'experimentOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 16
-    (17, TType.STRUCT, 'experimentStatus', (apache.airavata.model.status.ttypes.ExperimentStatus, apache.airavata.model.status.ttypes.ExperimentStatus.thrift_spec), None, ), # 17
+    (17, TType.LIST, 'experimentStatus', (TType.STRUCT,(apache.airavata.model.status.ttypes.ExperimentStatus, apache.airavata.model.status.ttypes.ExperimentStatus.thrift_spec)), None, ), # 17
     (18, TType.LIST, 'errors', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 18
     (19, TType.LIST, 'processes', (TType.STRUCT,(apache.airavata.model.process.ttypes.ProcessModel, apache.airavata.model.process.ttypes.ProcessModel.thrift_spec)), None, ), # 19
   )
@@ -449,30 +449,35 @@ class ExperimentModel:
         else:
           iprot.skip(ftype)
       elif fid == 17:
-        if ftype == TType.STRUCT:
-          self.experimentStatus = apache.airavata.model.status.ttypes.ExperimentStatus()
-          self.experimentStatus.read(iprot)
-        else:
-          iprot.skip(ftype)
-      elif fid == 18:
         if ftype == TType.LIST:
-          self.errors = []
+          self.experimentStatus = []
           (_etype21, _size18) = iprot.readListBegin()
           for _i22 in xrange(_size18):
-            _elem23 = apache.airavata.model.commons.ttypes.ErrorModel()
+            _elem23 = apache.airavata.model.status.ttypes.ExperimentStatus()
             _elem23.read(iprot)
-            self.errors.append(_elem23)
+            self.experimentStatus.append(_elem23)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
-      elif fid == 19:
+      elif fid == 18:
         if ftype == TType.LIST:
-          self.processes = []
+          self.errors = []
           (_etype27, _size24) = iprot.readListBegin()
           for _i28 in xrange(_size24):
-            _elem29 = apache.airavata.model.process.ttypes.ProcessModel()
+            _elem29 = apache.airavata.model.commons.ttypes.ErrorModel()
             _elem29.read(iprot)
-            self.processes.append(_elem29)
+            self.errors.append(_elem29)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 19:
+        if ftype == TType.LIST:
+          self.processes = []
+          (_etype33, _size30) = iprot.readListBegin()
+          for _i34 in xrange(_size30):
+            _elem35 = apache.airavata.model.process.ttypes.ProcessModel()
+            _elem35.read(iprot)
+            self.processes.append(_elem35)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -537,8 +542,8 @@ class ExperimentModel:
     if self.emailAddresses is not None:
       oprot.writeFieldBegin('emailAddresses', TType.LIST, 13)
       oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
-      for iter30 in self.emailAddresses:
-        oprot.writeString(iter30)
+      for iter36 in self.emailAddresses:
+        oprot.writeString(iter36)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.userConfigurationData is not None:
@@ -548,33 +553,36 @@ class ExperimentModel:
     if self.experimentInputs is not None:
       oprot.writeFieldBegin('experimentInputs', TType.LIST, 15)
       oprot.writeListBegin(TType.STRUCT, len(self.experimentInputs))
-      for iter31 in self.experimentInputs:
-        iter31.write(oprot)
+      for iter37 in self.experimentInputs:
+        iter37.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.experimentOutputs is not None:
       oprot.writeFieldBegin('experimentOutputs', TType.LIST, 16)
       oprot.writeListBegin(TType.STRUCT, len(self.experimentOutputs))
-      for iter32 in self.experimentOutputs:
-        iter32.write(oprot)
+      for iter38 in self.experimentOutputs:
+        iter38.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.experimentStatus is not None:
-      oprot.writeFieldBegin('experimentStatus', TType.STRUCT, 17)
-      self.experimentStatus.write(oprot)
+      oprot.writeFieldBegin('experimentStatus', TType.LIST, 17)
+      oprot.writeListBegin(TType.STRUCT, len(self.experimentStatus))
+      for iter39 in self.experimentStatus:
+        iter39.write(oprot)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.errors is not None:
       oprot.writeFieldBegin('errors', TType.LIST, 18)
       oprot.writeListBegin(TType.STRUCT, len(self.errors))
-      for iter33 in self.errors:
-        iter33.write(oprot)
+      for iter40 in self.errors:
+        iter40.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.processes is not None:
       oprot.writeFieldBegin('processes', TType.LIST, 19)
       oprot.writeListBegin(TType.STRUCT, len(self.processes))
-      for iter34 in self.processes:
-        iter34.write(oprot)
+      for iter41 in self.processes:
+        iter41.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -925,66 +933,66 @@ class ExperimentStatistics:
       elif fid == 7:
         if ftype == TType.LIST:
           self.allExperiments = []
-          (_etype38, _size35) = iprot.readListBegin()
-          for _i39 in xrange(_size35):
-            _elem40 = ExperimentSummaryModel()
-            _elem40.read(iprot)
-            self.allExperiments.append(_elem40)
+          (_etype45, _size42) = iprot.readListBegin()
+          for _i46 in xrange(_size42):
+            _elem47 = ExperimentSummaryModel()
+            _elem47.read(iprot)
+            self.allExperiments.append(_elem47)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.LIST:
           self.completedExperiments = []
-          (_etype44, _size41) = iprot.readListBegin()
-          for _i45 in xrange(_size41):
-            _elem46 = ExperimentSummaryModel()
-            _elem46.read(iprot)
-            self.completedExperiments.append(_elem46)
+          (_etype51, _size48) = iprot.readListBegin()
+          for _i52 in xrange(_size48):
+            _elem53 = ExperimentSummaryModel()
+            _elem53.read(iprot)
+            self.completedExperiments.append(_elem53)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 9:
         if ftype == TType.LIST:
           self.failedExperiments = []
-          (_etype50, _size47) = iprot.readListBegin()
-          for _i51 in xrange(_size47):
-            _elem52 = ExperimentSummaryModel()
-            _elem52.read(iprot)
-            self.failedExperiments.append(_elem52)
+          (_etype57, _size54) = iprot.readListBegin()
+          for _i58 in xrange(_size54):
+            _elem59 = ExperimentSummaryModel()
+            _elem59.read(iprot)
+            self.failedExperiments.append(_elem59)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 10:
         if ftype == TType.LIST:
           self.cancelledExperiments = []
-          (_etype56, _size53) = iprot.readListBegin()
-          for _i57 in xrange(_size53):
-            _elem58 = ExperimentSummaryModel()
-            _elem58.read(iprot)
-            self.cancelledExperiments.append(_elem58)
+          (_etype63, _size60) = iprot.readListBegin()
+          for _i64 in xrange(_size60):
+            _elem65 = ExperimentSummaryModel()
+            _elem65.read(iprot)
+            self.cancelledExperiments.append(_elem65)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 11:
         if ftype == TType.LIST:
           self.createdExperiments = []
-          (_etype62, _size59) = iprot.readListBegin()
-          for _i63 in xrange(_size59):
-            _elem64 = ExperimentSummaryModel()
-            _elem64.read(iprot)
-            self.createdExperiments.append(_elem64)
+          (_etype69, _size66) = iprot.readListBegin()
+          for _i70 in xrange(_size66):
+            _elem71 = ExperimentSummaryModel()
+            _elem71.read(iprot)
+            self.createdExperiments.append(_elem71)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 12:
         if ftype == TType.LIST:
           self.runningExperiments = []
-          (_etype68, _size65) = iprot.readListBegin()
-          for _i69 in xrange(_size65):
-            _elem70 = ExperimentSummaryModel()
-            _elem70.read(iprot)
-            self.runningExperiments.append(_elem70)
+          (_etype75, _size72) = iprot.readListBegin()
+          for _i76 in xrange(_size72):
+            _elem77 = ExperimentSummaryModel()
+            _elem77.read(iprot)
+            self.runningExperiments.append(_elem77)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -1025,43 +1033,43 @@ class ExperimentStatistics:
     if self.allExperiments is not None:
       oprot.writeFieldBegin('allExperiments', TType.LIST, 7)
       oprot.writeListBegin(TType.STRUCT, len(self.allExperiments))
-      for iter71 in self.allExperiments:
-        iter71.write(oprot)
+      for iter78 in self.allExperiments:
+        iter78.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.completedExperiments is not None:
       oprot.writeFieldBegin('completedExperiments', TType.LIST, 8)
       oprot.writeListBegin(TType.STRUCT, len(self.completedExperiments))
-      for iter72 in self.completedExperiments:
-        iter72.write(oprot)
+      for iter79 in self.completedExperiments:
+        iter79.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.failedExperiments is not None:
       oprot.writeFieldBegin('failedExperiments', TType.LIST, 9)
       oprot.writeListBegin(TType.STRUCT, len(self.failedExperiments))
-      for iter73 in self.failedExperiments:
-        iter73.write(oprot)
+      for iter80 in self.failedExperiments:
+        iter80.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.cancelledExperiments is not None:
       oprot.writeFieldBegin('cancelledExperiments', TType.LIST, 10)
       oprot.writeListBegin(TType.STRUCT, len(self.cancelledExperiments))
-      for iter74 in self.cancelledExperiments:
-        iter74.write(oprot)
+      for iter81 in self.cancelledExperiments:
+        iter81.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.createdExperiments is not None:
       oprot.writeFieldBegin('createdExperiments', TType.LIST, 11)
       oprot.writeListBegin(TType.STRUCT, len(self.createdExperiments))
-      for iter75 in self.createdExperiments:
-        iter75.write(oprot)
+      for iter82 in self.createdExperiments:
+        iter82.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.runningExperiments is not None:
       oprot.writeFieldBegin('runningExperiments', TType.LIST, 12)
       oprot.writeListBegin(TType.STRUCT, len(self.runningExperiments))
-      for iter76 in self.runningExperiments:
-        iter76.write(oprot)
+      for iter83 in self.runningExperiments:
+        iter83.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
index dc869c2..b37bd29 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
@@ -20,10 +20,6 @@
  */
 package org.apache.airavata.client.samples;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.airavata.api.Airavata;
 import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.client.tools.RegisterSampleApplications;
@@ -36,23 +32,22 @@ import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.ErrorModel;
 import org.apache.airavata.model.data.movement.SecurityProtocol;
-import org.apache.airavata.model.error.AiravataClientException;
-import org.apache.airavata.model.error.AiravataErrorType;
-import org.apache.airavata.model.error.AiravataSystemException;
-import org.apache.airavata.model.error.ExperimentNotFoundException;
-import org.apache.airavata.model.error.InvalidRequestException;
-import org.apache.airavata.model.experiment.ExperimentSummaryModel;
+import org.apache.airavata.model.error.*;
+import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.experiment.UserConfigurationDataModel;
 import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
 import org.apache.airavata.model.security.AuthzToken;
 import org.apache.airavata.model.util.ExperimentModelUtil;
 import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
-import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 public class CreateLaunchBES {
  
     public static final String THRIFT_SERVER_HOST = "localhost";
@@ -167,7 +162,7 @@ public class CreateLaunchBES {
             Thread.sleep(10000);
             for (String exId : experimentIds) {
                 ExperimentModel experiment = airavataClient.getExperiment(new AuthzToken(""), exId);
-                System.out.println(experiment.getExperimentId() + " " + experiment.getExperimentStatus().getState().name());
+                System.out.println(experiment.getExperimentId() + " " + experiment.getExperimentStatus().get(0).getState().name());
             }
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/415e9b70/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index 11c84a4..aff662b 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@ -25,7 +25,10 @@ import org.apache.airavata.api.Airavata;
 import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.client.tools.RegisterSampleApplications;
 import org.apache.airavata.client.tools.RegisterSampleApplicationsUtils;
-import org.apache.airavata.model.appcatalog.computeresource.*;
+import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
 import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
@@ -33,7 +36,6 @@ import org.apache.airavata.model.commons.ErrorModel;
 import org.apache.airavata.model.data.movement.SecurityProtocol;
 import org.apache.airavata.model.error.*;
 import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.experiment.ExperimentSummaryModel;
 import org.apache.airavata.model.experiment.UserConfigurationDataModel;
 import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
 import org.apache.airavata.model.security.AuthzToken;
@@ -211,12 +213,12 @@ public class CreateLaunchExperiment {
                 allNotFinished = false;
                 for (String exId : experimentIds) {
                     ExperimentModel experiment = airavataClient.getExperiment(new AuthzToken(""), exId);
-                    if(!experiment.getExperimentStatus().getState().equals(ExperimentState.COMPLETED)&&
-                            !experiment.getExperimentStatus().getState().equals(ExperimentState.FAILED)
-                            &&!experiment.getExperimentStatus().getState().equals(ExperimentState.CANCELED)){
+                    if(!experiment.getExperimentStatus().get(0).getState().equals(ExperimentState.COMPLETED)&&
+                            !experiment.getExperimentStatus().get(0).getState().equals(ExperimentState.FAILED)
+                            &&!experiment.getExperimentStatus().get(0).getState().equals(ExperimentState.CANCELED)){
                         allNotFinished = true;
                     }
-                    System.out.println(experiment.getExperimentId() + " " + experiment.getExperimentStatus().getState().name());
+                    System.out.println(experiment.getExperimentId() + " " + experiment.getExperimentStatus().get(0).getState().name());
                 }
                 System.out.println("----------------------------------------------------");
                 Thread.sleep(10000);