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/31 19:14:13 UTC

[05/10] airavata git commit: adding process model classes

adding process model classes


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

Branch: refs/heads/develop
Commit: 171c0425f81dd9b6d113c51cd2daa9ccf7ca8cf0
Parents: 3ce49b9
Author: scnakandala <su...@gmail.com>
Authored: Mon Aug 29 13:41:11 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Mon Aug 29 13:41:11 2016 -0400

----------------------------------------------------------------------
 .../lib/airavata/process_model_types.cpp        | 260 ++++++-----
 .../lib/airavata/process_model_types.h          |  20 +-
 .../lib/Airavata/Model/Process/Types.php        | 180 +++++---
 .../lib/apache/airavata/model/process/ttypes.py | 114 ++---
 .../airavata/model/process/ProcessModel.java    | 426 ++++++++++++-------
 .../apache/airavata/model/user/UserProfile.java |  24 +-
 .../model/util/ExperimentModelUtil.java         |   2 +-
 .../apache/airavata/gfac/core/GFacUtils.java    |   2 +-
 .../gfac/core/context/ProcessContext.java       |  21 +-
 .../org/apache/airavata/gfac/impl/Factory.java  |   4 +-
 .../gfac/impl/task/DataStreamingTask.java       |   2 +-
 .../task/utils/bes/ApplicationProcessor.java    |   2 +-
 .../impl/task/utils/bes/ResourceProcessor.java  |   2 +-
 .../core/utils/OrchestratorUtils.java           |   4 +-
 .../validator/impl/BatchQueueValidator.java     |   2 +-
 .../cpi/impl/SimpleOrchestratorImpl.java        |   2 +-
 .../server/OrchestratorServerHandler.java       |   6 +-
 .../org/apache/airavata/registry/core/Main.java |  75 ----
 .../entities/expcatalog/ExperimentEntity.java   |  11 +
 .../core/entities/expcatalog/ProcessEntity.java | 266 ++++++++++++
 .../entities/expcatalog/ProcessErrorEntity.java | 118 +++++
 .../entities/expcatalog/ProcessErrorPK.java     |  75 ++++
 .../entities/expcatalog/ProcessInputEntity.java | 174 ++++++++
 .../entities/expcatalog/ProcessInputPK.java     |  74 ++++
 .../expcatalog/ProcessOutputEntity.java         | 165 +++++++
 .../entities/expcatalog/ProcessOutputPK.java    |  70 +++
 .../ProcessResourceSchedulingEntity.java        | 170 ++++++++
 .../expcatalog/ProcessStatusEntity.java         |  83 ++++
 .../entities/expcatalog/ProcessStatusPK.java    |  74 ++++
 .../expcatalog/ExperimentRepository.java        |  22 +-
 .../src/main/resources/META-INF/persistence.xml |   6 +
 .../src/main/resources/experiment_catalog.sql   | 108 +++++
 .../catalog/impl/ExperimentRegistry.java        |  60 +--
 .../utils/ThriftDataModelConversion.java        |  10 +-
 .../process_model.thrift                        |   6 +-
 35 files changed, 2106 insertions(+), 534 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/171c0425/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp
index cdd437a..8135174 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp
@@ -53,7 +53,7 @@ void ProcessModel::__set_lastUpdateTime(const int64_t val) {
 __isset.lastUpdateTime = true;
 }
 
-void ProcessModel::__set_processStatus(const  ::apache::airavata::model::status::ProcessStatus& val) {
+void ProcessModel::__set_processStatus(const std::vector< ::apache::airavata::model::status::ProcessStatus> & val) {
   this->processStatus = val;
 __isset.processStatus = true;
 }
@@ -88,9 +88,9 @@ void ProcessModel::__set_processOutputs(const std::vector< ::apache::airavata::m
 __isset.processOutputs = true;
 }
 
-void ProcessModel::__set_resourceSchedule(const  ::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& val) {
-  this->resourceSchedule = val;
-__isset.resourceSchedule = true;
+void ProcessModel::__set_processResourceSchedule(const  ::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& val) {
+  this->processResourceSchedule = val;
+__isset.processResourceSchedule = true;
 }
 
 void ProcessModel::__set_tasks(const std::vector< ::apache::airavata::model::task::TaskModel> & val) {
@@ -103,7 +103,7 @@ void ProcessModel::__set_taskDag(const std::string& val) {
 __isset.taskDag = true;
 }
 
-void ProcessModel::__set_processError(const  ::apache::airavata::model::commons::ErrorModel& val) {
+void ProcessModel::__set_processError(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val) {
   this->processError = val;
 __isset.processError = true;
 }
@@ -204,8 +204,20 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         }
         break;
       case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->processStatus.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->processStatus.clear();
+            uint32_t _size0;
+            ::apache::thrift::protocol::TType _etype3;
+            xfer += iprot->readListBegin(_etype3, _size0);
+            this->processStatus.resize(_size0);
+            uint32_t _i4;
+            for (_i4 = 0; _i4 < _size0; ++_i4)
+            {
+              xfer += this->processStatus[_i4].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.processStatus = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -247,14 +259,14 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->processInputs.clear();
-            uint32_t _size0;
-            ::apache::thrift::protocol::TType _etype3;
-            xfer += iprot->readListBegin(_etype3, _size0);
-            this->processInputs.resize(_size0);
-            uint32_t _i4;
-            for (_i4 = 0; _i4 < _size0; ++_i4)
+            uint32_t _size5;
+            ::apache::thrift::protocol::TType _etype8;
+            xfer += iprot->readListBegin(_etype8, _size5);
+            this->processInputs.resize(_size5);
+            uint32_t _i9;
+            for (_i9 = 0; _i9 < _size5; ++_i9)
             {
-              xfer += this->processInputs[_i4].read(iprot);
+              xfer += this->processInputs[_i9].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -267,14 +279,14 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->processOutputs.clear();
-            uint32_t _size5;
-            ::apache::thrift::protocol::TType _etype8;
-            xfer += iprot->readListBegin(_etype8, _size5);
-            this->processOutputs.resize(_size5);
-            uint32_t _i9;
-            for (_i9 = 0; _i9 < _size5; ++_i9)
+            uint32_t _size10;
+            ::apache::thrift::protocol::TType _etype13;
+            xfer += iprot->readListBegin(_etype13, _size10);
+            this->processOutputs.resize(_size10);
+            uint32_t _i14;
+            for (_i14 = 0; _i14 < _size10; ++_i14)
             {
-              xfer += this->processOutputs[_i9].read(iprot);
+              xfer += this->processOutputs[_i14].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -285,8 +297,8 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 12:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->resourceSchedule.read(iprot);
-          this->__isset.resourceSchedule = true;
+          xfer += this->processResourceSchedule.read(iprot);
+          this->__isset.processResourceSchedule = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -295,14 +307,14 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->tasks.clear();
-            uint32_t _size10;
-            ::apache::thrift::protocol::TType _etype13;
-            xfer += iprot->readListBegin(_etype13, _size10);
-            this->tasks.resize(_size10);
-            uint32_t _i14;
-            for (_i14 = 0; _i14 < _size10; ++_i14)
+            uint32_t _size15;
+            ::apache::thrift::protocol::TType _etype18;
+            xfer += iprot->readListBegin(_etype18, _size15);
+            this->tasks.resize(_size15);
+            uint32_t _i19;
+            for (_i19 = 0; _i19 < _size15; ++_i19)
             {
-              xfer += this->tasks[_i14].read(iprot);
+              xfer += this->tasks[_i19].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -320,8 +332,20 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         }
         break;
       case 15:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->processError.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->processError.clear();
+            uint32_t _size20;
+            ::apache::thrift::protocol::TType _etype23;
+            xfer += iprot->readListBegin(_etype23, _size20);
+            this->processError.resize(_size20);
+            uint32_t _i24;
+            for (_i24 = 0; _i24 < _size20; ++_i24)
+            {
+              xfer += this->processError[_i24].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.processError = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -347,14 +371,14 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->emailAddresses.clear();
-            uint32_t _size15;
-            ::apache::thrift::protocol::TType _etype18;
-            xfer += iprot->readListBegin(_etype18, _size15);
-            this->emailAddresses.resize(_size15);
-            uint32_t _i19;
-            for (_i19 = 0; _i19 < _size15; ++_i19)
+            uint32_t _size25;
+            ::apache::thrift::protocol::TType _etype28;
+            xfer += iprot->readListBegin(_etype28, _size25);
+            this->emailAddresses.resize(_size25);
+            uint32_t _i29;
+            for (_i29 = 0; _i29 < _size25; ++_i29)
             {
-              xfer += iprot->readString(this->emailAddresses[_i19]);
+              xfer += iprot->readString(this->emailAddresses[_i29]);
             }
             xfer += iprot->readListEnd();
           }
@@ -443,8 +467,16 @@ uint32_t ProcessModel::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.processStatus) {
-    xfer += oprot->writeFieldBegin("processStatus", ::apache::thrift::protocol::T_STRUCT, 5);
-    xfer += this->processStatus.write(oprot);
+    xfer += oprot->writeFieldBegin("processStatus", ::apache::thrift::protocol::T_LIST, 5);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processStatus.size()));
+      std::vector< ::apache::airavata::model::status::ProcessStatus> ::const_iterator _iter30;
+      for (_iter30 = this->processStatus.begin(); _iter30 != this->processStatus.end(); ++_iter30)
+      {
+        xfer += (*_iter30).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.processDetail) {
@@ -471,10 +503,10 @@ uint32_t ProcessModel::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("processInputs", ::apache::thrift::protocol::T_LIST, 10);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processInputs.size()));
-      std::vector< ::apache::airavata::model::application::io::InputDataObjectType> ::const_iterator _iter20;
-      for (_iter20 = this->processInputs.begin(); _iter20 != this->processInputs.end(); ++_iter20)
+      std::vector< ::apache::airavata::model::application::io::InputDataObjectType> ::const_iterator _iter31;
+      for (_iter31 = this->processInputs.begin(); _iter31 != this->processInputs.end(); ++_iter31)
       {
-        xfer += (*_iter20).write(oprot);
+        xfer += (*_iter31).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -484,28 +516,28 @@ uint32_t ProcessModel::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("processOutputs", ::apache::thrift::protocol::T_LIST, 11);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processOutputs.size()));
-      std::vector< ::apache::airavata::model::application::io::OutputDataObjectType> ::const_iterator _iter21;
-      for (_iter21 = this->processOutputs.begin(); _iter21 != this->processOutputs.end(); ++_iter21)
+      std::vector< ::apache::airavata::model::application::io::OutputDataObjectType> ::const_iterator _iter32;
+      for (_iter32 = this->processOutputs.begin(); _iter32 != this->processOutputs.end(); ++_iter32)
       {
-        xfer += (*_iter21).write(oprot);
+        xfer += (*_iter32).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.resourceSchedule) {
-    xfer += oprot->writeFieldBegin("resourceSchedule", ::apache::thrift::protocol::T_STRUCT, 12);
-    xfer += this->resourceSchedule.write(oprot);
+  if (this->__isset.processResourceSchedule) {
+    xfer += oprot->writeFieldBegin("processResourceSchedule", ::apache::thrift::protocol::T_STRUCT, 12);
+    xfer += this->processResourceSchedule.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.tasks) {
     xfer += oprot->writeFieldBegin("tasks", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->tasks.size()));
-      std::vector< ::apache::airavata::model::task::TaskModel> ::const_iterator _iter22;
-      for (_iter22 = this->tasks.begin(); _iter22 != this->tasks.end(); ++_iter22)
+      std::vector< ::apache::airavata::model::task::TaskModel> ::const_iterator _iter33;
+      for (_iter33 = this->tasks.begin(); _iter33 != this->tasks.end(); ++_iter33)
       {
-        xfer += (*_iter22).write(oprot);
+        xfer += (*_iter33).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -517,8 +549,16 @@ uint32_t ProcessModel::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.processError) {
-    xfer += oprot->writeFieldBegin("processError", ::apache::thrift::protocol::T_STRUCT, 15);
-    xfer += this->processError.write(oprot);
+    xfer += oprot->writeFieldBegin("processError", ::apache::thrift::protocol::T_LIST, 15);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processError.size()));
+      std::vector< ::apache::airavata::model::commons::ErrorModel> ::const_iterator _iter34;
+      for (_iter34 = this->processError.begin(); _iter34 != this->processError.end(); ++_iter34)
+      {
+        xfer += (*_iter34).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.gatewayExecutionId) {
@@ -535,10 +575,10 @@ uint32_t ProcessModel::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("emailAddresses", ::apache::thrift::protocol::T_LIST, 18);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->emailAddresses.size()));
-      std::vector<std::string> ::const_iterator _iter23;
-      for (_iter23 = this->emailAddresses.begin(); _iter23 != this->emailAddresses.end(); ++_iter23)
+      std::vector<std::string> ::const_iterator _iter35;
+      for (_iter35 = this->emailAddresses.begin(); _iter35 != this->emailAddresses.end(); ++_iter35)
       {
-        xfer += oprot->writeString((*_iter23));
+        xfer += oprot->writeString((*_iter35));
       }
       xfer += oprot->writeListEnd();
     }
@@ -587,7 +627,7 @@ void swap(ProcessModel &a, ProcessModel &b) {
   swap(a.computeResourceId, b.computeResourceId);
   swap(a.processInputs, b.processInputs);
   swap(a.processOutputs, b.processOutputs);
-  swap(a.resourceSchedule, b.resourceSchedule);
+  swap(a.processResourceSchedule, b.processResourceSchedule);
   swap(a.tasks, b.tasks);
   swap(a.taskDag, b.taskDag);
   swap(a.processError, b.processError);
@@ -602,57 +642,57 @@ void swap(ProcessModel &a, ProcessModel &b) {
   swap(a.__isset, b.__isset);
 }
 
-ProcessModel::ProcessModel(const ProcessModel& other24) {
-  processId = other24.processId;
-  experimentId = other24.experimentId;
-  creationTime = other24.creationTime;
-  lastUpdateTime = other24.lastUpdateTime;
-  processStatus = other24.processStatus;
-  processDetail = other24.processDetail;
-  applicationInterfaceId = other24.applicationInterfaceId;
-  applicationDeploymentId = other24.applicationDeploymentId;
-  computeResourceId = other24.computeResourceId;
-  processInputs = other24.processInputs;
-  processOutputs = other24.processOutputs;
-  resourceSchedule = other24.resourceSchedule;
-  tasks = other24.tasks;
-  taskDag = other24.taskDag;
-  processError = other24.processError;
-  gatewayExecutionId = other24.gatewayExecutionId;
-  enableEmailNotification = other24.enableEmailNotification;
-  emailAddresses = other24.emailAddresses;
-  storageResourceId = other24.storageResourceId;
-  userDn = other24.userDn;
-  generateCert = other24.generateCert;
-  experimentDataDir = other24.experimentDataDir;
-  userName = other24.userName;
-  __isset = other24.__isset;
+ProcessModel::ProcessModel(const ProcessModel& other36) {
+  processId = other36.processId;
+  experimentId = other36.experimentId;
+  creationTime = other36.creationTime;
+  lastUpdateTime = other36.lastUpdateTime;
+  processStatus = other36.processStatus;
+  processDetail = other36.processDetail;
+  applicationInterfaceId = other36.applicationInterfaceId;
+  applicationDeploymentId = other36.applicationDeploymentId;
+  computeResourceId = other36.computeResourceId;
+  processInputs = other36.processInputs;
+  processOutputs = other36.processOutputs;
+  processResourceSchedule = other36.processResourceSchedule;
+  tasks = other36.tasks;
+  taskDag = other36.taskDag;
+  processError = other36.processError;
+  gatewayExecutionId = other36.gatewayExecutionId;
+  enableEmailNotification = other36.enableEmailNotification;
+  emailAddresses = other36.emailAddresses;
+  storageResourceId = other36.storageResourceId;
+  userDn = other36.userDn;
+  generateCert = other36.generateCert;
+  experimentDataDir = other36.experimentDataDir;
+  userName = other36.userName;
+  __isset = other36.__isset;
 }
-ProcessModel& ProcessModel::operator=(const ProcessModel& other25) {
-  processId = other25.processId;
-  experimentId = other25.experimentId;
-  creationTime = other25.creationTime;
-  lastUpdateTime = other25.lastUpdateTime;
-  processStatus = other25.processStatus;
-  processDetail = other25.processDetail;
-  applicationInterfaceId = other25.applicationInterfaceId;
-  applicationDeploymentId = other25.applicationDeploymentId;
-  computeResourceId = other25.computeResourceId;
-  processInputs = other25.processInputs;
-  processOutputs = other25.processOutputs;
-  resourceSchedule = other25.resourceSchedule;
-  tasks = other25.tasks;
-  taskDag = other25.taskDag;
-  processError = other25.processError;
-  gatewayExecutionId = other25.gatewayExecutionId;
-  enableEmailNotification = other25.enableEmailNotification;
-  emailAddresses = other25.emailAddresses;
-  storageResourceId = other25.storageResourceId;
-  userDn = other25.userDn;
-  generateCert = other25.generateCert;
-  experimentDataDir = other25.experimentDataDir;
-  userName = other25.userName;
-  __isset = other25.__isset;
+ProcessModel& ProcessModel::operator=(const ProcessModel& other37) {
+  processId = other37.processId;
+  experimentId = other37.experimentId;
+  creationTime = other37.creationTime;
+  lastUpdateTime = other37.lastUpdateTime;
+  processStatus = other37.processStatus;
+  processDetail = other37.processDetail;
+  applicationInterfaceId = other37.applicationInterfaceId;
+  applicationDeploymentId = other37.applicationDeploymentId;
+  computeResourceId = other37.computeResourceId;
+  processInputs = other37.processInputs;
+  processOutputs = other37.processOutputs;
+  processResourceSchedule = other37.processResourceSchedule;
+  tasks = other37.tasks;
+  taskDag = other37.taskDag;
+  processError = other37.processError;
+  gatewayExecutionId = other37.gatewayExecutionId;
+  enableEmailNotification = other37.enableEmailNotification;
+  emailAddresses = other37.emailAddresses;
+  storageResourceId = other37.storageResourceId;
+  userDn = other37.userDn;
+  generateCert = other37.generateCert;
+  experimentDataDir = other37.experimentDataDir;
+  userName = other37.userName;
+  __isset = other37.__isset;
   return *this;
 }
 void ProcessModel::printTo(std::ostream& out) const {
@@ -669,7 +709,7 @@ void ProcessModel::printTo(std::ostream& out) const {
   out << ", " << "computeResourceId="; (__isset.computeResourceId ? (out << to_string(computeResourceId)) : (out << "<null>"));
   out << ", " << "processInputs="; (__isset.processInputs ? (out << to_string(processInputs)) : (out << "<null>"));
   out << ", " << "processOutputs="; (__isset.processOutputs ? (out << to_string(processOutputs)) : (out << "<null>"));
-  out << ", " << "resourceSchedule="; (__isset.resourceSchedule ? (out << to_string(resourceSchedule)) : (out << "<null>"));
+  out << ", " << "processResourceSchedule="; (__isset.processResourceSchedule ? (out << to_string(processResourceSchedule)) : (out << "<null>"));
   out << ", " << "tasks="; (__isset.tasks ? (out << to_string(tasks)) : (out << "<null>"));
   out << ", " << "taskDag="; (__isset.taskDag ? (out << to_string(taskDag)) : (out << "<null>"));
   out << ", " << "processError="; (__isset.processError ? (out << to_string(processError)) : (out << "<null>"));

http://git-wip-us.apache.org/repos/asf/airavata/blob/171c0425/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h
index bf5b5d0..5d73b26 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h
@@ -44,7 +44,7 @@ namespace apache { namespace airavata { namespace model { namespace process {
 class ProcessModel;
 
 typedef struct _ProcessModel__isset {
-  _ProcessModel__isset() : creationTime(false), lastUpdateTime(false), processStatus(false), processDetail(false), applicationInterfaceId(false), applicationDeploymentId(false), computeResourceId(false), processInputs(false), processOutputs(false), resourceSchedule(false), tasks(false), taskDag(false), processError(false), gatewayExecutionId(false), enableEmailNotification(false), emailAddresses(false), storageResourceId(false), userDn(false), generateCert(true), experimentDataDir(false), userName(false) {}
+  _ProcessModel__isset() : creationTime(false), lastUpdateTime(false), processStatus(false), processDetail(false), applicationInterfaceId(false), applicationDeploymentId(false), computeResourceId(false), processInputs(false), processOutputs(false), processResourceSchedule(false), tasks(false), taskDag(false), processError(false), gatewayExecutionId(false), enableEmailNotification(false), emailAddresses(false), storageResourceId(false), userDn(false), generateCert(true), experimentDataDir(false), userName(false) {}
   bool creationTime :1;
   bool lastUpdateTime :1;
   bool processStatus :1;
@@ -54,7 +54,7 @@ typedef struct _ProcessModel__isset {
   bool computeResourceId :1;
   bool processInputs :1;
   bool processOutputs :1;
-  bool resourceSchedule :1;
+  bool processResourceSchedule :1;
   bool tasks :1;
   bool taskDag :1;
   bool processError :1;
@@ -81,17 +81,17 @@ class ProcessModel {
   std::string experimentId;
   int64_t creationTime;
   int64_t lastUpdateTime;
-   ::apache::airavata::model::status::ProcessStatus processStatus;
+  std::vector< ::apache::airavata::model::status::ProcessStatus>  processStatus;
   std::string processDetail;
   std::string applicationInterfaceId;
   std::string applicationDeploymentId;
   std::string computeResourceId;
   std::vector< ::apache::airavata::model::application::io::InputDataObjectType>  processInputs;
   std::vector< ::apache::airavata::model::application::io::OutputDataObjectType>  processOutputs;
-   ::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel resourceSchedule;
+   ::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel processResourceSchedule;
   std::vector< ::apache::airavata::model::task::TaskModel>  tasks;
   std::string taskDag;
-   ::apache::airavata::model::commons::ErrorModel processError;
+  std::vector< ::apache::airavata::model::commons::ErrorModel>  processError;
   std::string gatewayExecutionId;
   bool enableEmailNotification;
   std::vector<std::string>  emailAddresses;
@@ -111,7 +111,7 @@ class ProcessModel {
 
   void __set_lastUpdateTime(const int64_t val);
 
-  void __set_processStatus(const  ::apache::airavata::model::status::ProcessStatus& val);
+  void __set_processStatus(const std::vector< ::apache::airavata::model::status::ProcessStatus> & val);
 
   void __set_processDetail(const std::string& val);
 
@@ -125,13 +125,13 @@ class ProcessModel {
 
   void __set_processOutputs(const std::vector< ::apache::airavata::model::application::io::OutputDataObjectType> & val);
 
-  void __set_resourceSchedule(const  ::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& val);
+  void __set_processResourceSchedule(const  ::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& val);
 
   void __set_tasks(const std::vector< ::apache::airavata::model::task::TaskModel> & val);
 
   void __set_taskDag(const std::string& val);
 
-  void __set_processError(const  ::apache::airavata::model::commons::ErrorModel& val);
+  void __set_processError(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val);
 
   void __set_gatewayExecutionId(const std::string& val);
 
@@ -191,9 +191,9 @@ class ProcessModel {
       return false;
     else if (__isset.processOutputs && !(processOutputs == rhs.processOutputs))
       return false;
-    if (__isset.resourceSchedule != rhs.__isset.resourceSchedule)
+    if (__isset.processResourceSchedule != rhs.__isset.processResourceSchedule)
       return false;
-    else if (__isset.resourceSchedule && !(resourceSchedule == rhs.resourceSchedule))
+    else if (__isset.processResourceSchedule && !(processResourceSchedule == rhs.processResourceSchedule))
       return false;
     if (__isset.tasks != rhs.__isset.tasks)
       return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/171c0425/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php
index 179be2b..e1b7b81 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php
@@ -46,7 +46,7 @@ class ProcessModel {
    */
   public $lastUpdateTime = null;
   /**
-   * @var \Airavata\Model\Status\ProcessStatus
+   * @var \Airavata\Model\Status\ProcessStatus[]
    */
   public $processStatus = null;
   /**
@@ -76,7 +76,7 @@ class ProcessModel {
   /**
    * @var \Airavata\Model\Scheduling\ComputationalResourceSchedulingModel
    */
-  public $resourceSchedule = null;
+  public $processResourceSchedule = null;
   /**
    * @var \Airavata\Model\Task\TaskModel[]
    */
@@ -86,7 +86,7 @@ class ProcessModel {
    */
   public $taskDag = null;
   /**
-   * @var \Airavata\Model\Commons\ErrorModel
+   * @var \Airavata\Model\Commons\ErrorModel[]
    */
   public $processError = null;
   /**
@@ -143,8 +143,12 @@ class ProcessModel {
           ),
         5 => array(
           'var' => 'processStatus',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Status\ProcessStatus',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Status\ProcessStatus',
+            ),
           ),
         6 => array(
           'var' => 'processDetail',
@@ -181,7 +185,7 @@ class ProcessModel {
             ),
           ),
         12 => array(
-          'var' => 'resourceSchedule',
+          'var' => 'processResourceSchedule',
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Scheduling\ComputationalResourceSchedulingModel',
           ),
@@ -200,8 +204,12 @@ class ProcessModel {
           ),
         15 => array(
           'var' => 'processError',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Commons\ErrorModel',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Commons\ErrorModel',
+            ),
           ),
         16 => array(
           'var' => 'gatewayExecutionId',
@@ -275,8 +283,8 @@ class ProcessModel {
       if (isset($vals['processOutputs'])) {
         $this->processOutputs = $vals['processOutputs'];
       }
-      if (isset($vals['resourceSchedule'])) {
-        $this->resourceSchedule = $vals['resourceSchedule'];
+      if (isset($vals['processResourceSchedule'])) {
+        $this->processResourceSchedule = $vals['processResourceSchedule'];
       }
       if (isset($vals['tasks'])) {
         $this->tasks = $vals['tasks'];
@@ -362,9 +370,19 @@ class ProcessModel {
           }
           break;
         case 5:
-          if ($ftype == TType::STRUCT) {
-            $this->processStatus = new \Airavata\Model\Status\ProcessStatus();
-            $xfer += $this->processStatus->read($input);
+          if ($ftype == TType::LST) {
+            $this->processStatus = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \Airavata\Model\Status\ProcessStatus();
+              $xfer += $elem5->read($input);
+              $this->processStatus []= $elem5;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -400,15 +418,15 @@ class ProcessModel {
         case 10:
           if ($ftype == TType::LST) {
             $this->processInputs = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            $_size6 = 0;
+            $_etype9 = 0;
+            $xfer += $input->readListBegin($_etype9, $_size6);
+            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
             {
-              $elem5 = null;
-              $elem5 = new \Airavata\Model\Application\Io\InputDataObjectType();
-              $xfer += $elem5->read($input);
-              $this->processInputs []= $elem5;
+              $elem11 = null;
+              $elem11 = new \Airavata\Model\Application\Io\InputDataObjectType();
+              $xfer += $elem11->read($input);
+              $this->processInputs []= $elem11;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -418,15 +436,15 @@ class ProcessModel {
         case 11:
           if ($ftype == TType::LST) {
             $this->processOutputs = array();
-            $_size6 = 0;
-            $_etype9 = 0;
-            $xfer += $input->readListBegin($_etype9, $_size6);
-            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
+            $_size12 = 0;
+            $_etype15 = 0;
+            $xfer += $input->readListBegin($_etype15, $_size12);
+            for ($_i16 = 0; $_i16 < $_size12; ++$_i16)
             {
-              $elem11 = null;
-              $elem11 = new \Airavata\Model\Application\Io\OutputDataObjectType();
-              $xfer += $elem11->read($input);
-              $this->processOutputs []= $elem11;
+              $elem17 = null;
+              $elem17 = new \Airavata\Model\Application\Io\OutputDataObjectType();
+              $xfer += $elem17->read($input);
+              $this->processOutputs []= $elem17;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -435,8 +453,8 @@ class ProcessModel {
           break;
         case 12:
           if ($ftype == TType::STRUCT) {
-            $this->resourceSchedule = new \Airavata\Model\Scheduling\ComputationalResourceSchedulingModel();
-            $xfer += $this->resourceSchedule->read($input);
+            $this->processResourceSchedule = new \Airavata\Model\Scheduling\ComputationalResourceSchedulingModel();
+            $xfer += $this->processResourceSchedule->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -444,15 +462,15 @@ class ProcessModel {
         case 13:
           if ($ftype == TType::LST) {
             $this->tasks = array();
-            $_size12 = 0;
-            $_etype15 = 0;
-            $xfer += $input->readListBegin($_etype15, $_size12);
-            for ($_i16 = 0; $_i16 < $_size12; ++$_i16)
+            $_size18 = 0;
+            $_etype21 = 0;
+            $xfer += $input->readListBegin($_etype21, $_size18);
+            for ($_i22 = 0; $_i22 < $_size18; ++$_i22)
             {
-              $elem17 = null;
-              $elem17 = new \Airavata\Model\Task\TaskModel();
-              $xfer += $elem17->read($input);
-              $this->tasks []= $elem17;
+              $elem23 = null;
+              $elem23 = new \Airavata\Model\Task\TaskModel();
+              $xfer += $elem23->read($input);
+              $this->tasks []= $elem23;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -467,9 +485,19 @@ class ProcessModel {
           }
           break;
         case 15:
-          if ($ftype == TType::STRUCT) {
-            $this->processError = new \Airavata\Model\Commons\ErrorModel();
-            $xfer += $this->processError->read($input);
+          if ($ftype == TType::LST) {
+            $this->processError = array();
+            $_size24 = 0;
+            $_etype27 = 0;
+            $xfer += $input->readListBegin($_etype27, $_size24);
+            for ($_i28 = 0; $_i28 < $_size24; ++$_i28)
+            {
+              $elem29 = null;
+              $elem29 = new \Airavata\Model\Commons\ErrorModel();
+              $xfer += $elem29->read($input);
+              $this->processError []= $elem29;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -491,14 +519,14 @@ class ProcessModel {
         case 18:
           if ($ftype == TType::LST) {
             $this->emailAddresses = array();
-            $_size18 = 0;
-            $_etype21 = 0;
-            $xfer += $input->readListBegin($_etype21, $_size18);
-            for ($_i22 = 0; $_i22 < $_size18; ++$_i22)
+            $_size30 = 0;
+            $_etype33 = 0;
+            $xfer += $input->readListBegin($_etype33, $_size30);
+            for ($_i34 = 0; $_i34 < $_size30; ++$_i34)
             {
-              $elem23 = null;
-              $xfer += $input->readString($elem23);
-              $this->emailAddresses []= $elem23;
+              $elem35 = null;
+              $xfer += $input->readString($elem35);
+              $this->emailAddresses []= $elem35;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -574,11 +602,20 @@ class ProcessModel {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->processStatus !== null) {
-      if (!is_object($this->processStatus)) {
+      if (!is_array($this->processStatus)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('processStatus', TType::STRUCT, 5);
-      $xfer += $this->processStatus->write($output);
+      $xfer += $output->writeFieldBegin('processStatus', TType::LST, 5);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->processStatus));
+        {
+          foreach ($this->processStatus as $iter36)
+          {
+            $xfer += $iter36->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->processDetail !== null) {
@@ -609,9 +646,9 @@ class ProcessModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->processInputs));
         {
-          foreach ($this->processInputs as $iter24)
+          foreach ($this->processInputs as $iter37)
           {
-            $xfer += $iter24->write($output);
+            $xfer += $iter37->write($output);
           }
         }
         $output->writeListEnd();
@@ -626,21 +663,21 @@ class ProcessModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->processOutputs));
         {
-          foreach ($this->processOutputs as $iter25)
+          foreach ($this->processOutputs as $iter38)
           {
-            $xfer += $iter25->write($output);
+            $xfer += $iter38->write($output);
           }
         }
         $output->writeListEnd();
       }
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->resourceSchedule !== null) {
-      if (!is_object($this->resourceSchedule)) {
+    if ($this->processResourceSchedule !== null) {
+      if (!is_object($this->processResourceSchedule)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('resourceSchedule', TType::STRUCT, 12);
-      $xfer += $this->resourceSchedule->write($output);
+      $xfer += $output->writeFieldBegin('processResourceSchedule', TType::STRUCT, 12);
+      $xfer += $this->processResourceSchedule->write($output);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->tasks !== null) {
@@ -651,9 +688,9 @@ class ProcessModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->tasks));
         {
-          foreach ($this->tasks as $iter26)
+          foreach ($this->tasks as $iter39)
           {
-            $xfer += $iter26->write($output);
+            $xfer += $iter39->write($output);
           }
         }
         $output->writeListEnd();
@@ -666,11 +703,20 @@ class ProcessModel {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->processError !== null) {
-      if (!is_object($this->processError)) {
+      if (!is_array($this->processError)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('processError', TType::STRUCT, 15);
-      $xfer += $this->processError->write($output);
+      $xfer += $output->writeFieldBegin('processError', TType::LST, 15);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->processError));
+        {
+          foreach ($this->processError as $iter40)
+          {
+            $xfer += $iter40->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->gatewayExecutionId !== null) {
@@ -691,9 +737,9 @@ class ProcessModel {
       {
         $output->writeListBegin(TType::STRING, count($this->emailAddresses));
         {
-          foreach ($this->emailAddresses as $iter27)
+          foreach ($this->emailAddresses as $iter41)
           {
-            $xfer += $output->writeString($iter27);
+            $xfer += $output->writeString($iter41);
           }
         }
         $output->writeListEnd();

http://git-wip-us.apache.org/repos/asf/airavata/blob/171c0425/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
index 7da3b53..868b383 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
@@ -45,7 +45,7 @@ class ProcessModel:
    - computeResourceId
    - processInputs
    - processOutputs
-   - resourceSchedule
+   - processResourceSchedule
    - tasks
    - taskDag
    - processError
@@ -65,17 +65,17 @@ class ProcessModel:
     (2, TType.STRING, 'experimentId', None, None, ), # 2
     (3, TType.I64, 'creationTime', None, None, ), # 3
     (4, TType.I64, 'lastUpdateTime', None, None, ), # 4
-    (5, TType.STRUCT, 'processStatus', (apache.airavata.model.status.ttypes.ProcessStatus, apache.airavata.model.status.ttypes.ProcessStatus.thrift_spec), None, ), # 5
+    (5, TType.LIST, 'processStatus', (TType.STRUCT,(apache.airavata.model.status.ttypes.ProcessStatus, apache.airavata.model.status.ttypes.ProcessStatus.thrift_spec)), None, ), # 5
     (6, TType.STRING, 'processDetail', None, None, ), # 6
     (7, TType.STRING, 'applicationInterfaceId', None, None, ), # 7
     (8, TType.STRING, 'applicationDeploymentId', None, None, ), # 8
     (9, TType.STRING, 'computeResourceId', None, None, ), # 9
     (10, TType.LIST, 'processInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 10
     (11, TType.LIST, 'processOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 11
-    (12, TType.STRUCT, 'resourceSchedule', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 12
+    (12, TType.STRUCT, 'processResourceSchedule', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 12
     (13, TType.LIST, 'tasks', (TType.STRUCT,(apache.airavata.model.task.ttypes.TaskModel, apache.airavata.model.task.ttypes.TaskModel.thrift_spec)), None, ), # 13
     (14, TType.STRING, 'taskDag', None, None, ), # 14
-    (15, TType.STRUCT, 'processError', (apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec), None, ), # 15
+    (15, TType.LIST, 'processError', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 15
     (16, TType.STRING, 'gatewayExecutionId', None, None, ), # 16
     (17, TType.BOOL, 'enableEmailNotification', None, None, ), # 17
     (18, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 18
@@ -86,7 +86,7 @@ class ProcessModel:
     (23, TType.STRING, 'userName', None, None, ), # 23
   )
 
-  def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatus=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, resourceSchedule=None, tasks=None, taskDag=None, processError=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, storageResourceId=None, userDn=None, generateCert=thrift_spec[21][4], experimentDataDir=None, userName=None,):
+  def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatus=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, processResourceSchedule=None, tasks=None, taskDag=None, processError=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, storageResourceId=None, userDn=None, generateCert=thrift_spec[21][4], experimentDataDir=None, userName=None,):
     self.processId = processId
     self.experimentId = experimentId
     self.creationTime = creationTime
@@ -98,7 +98,7 @@ class ProcessModel:
     self.computeResourceId = computeResourceId
     self.processInputs = processInputs
     self.processOutputs = processOutputs
-    self.resourceSchedule = resourceSchedule
+    self.processResourceSchedule = processResourceSchedule
     self.tasks = tasks
     self.taskDag = taskDag
     self.processError = processError
@@ -141,9 +141,14 @@ class ProcessModel:
         else:
           iprot.skip(ftype)
       elif fid == 5:
-        if ftype == TType.STRUCT:
-          self.processStatus = apache.airavata.model.status.ttypes.ProcessStatus()
-          self.processStatus.read(iprot)
+        if ftype == TType.LIST:
+          self.processStatus = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = apache.airavata.model.status.ttypes.ProcessStatus()
+            _elem5.read(iprot)
+            self.processStatus.append(_elem5)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 6:
@@ -169,39 +174,39 @@ class ProcessModel:
       elif fid == 10:
         if ftype == TType.LIST:
           self.processInputs = []
-          (_etype3, _size0) = iprot.readListBegin()
-          for _i4 in xrange(_size0):
-            _elem5 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
-            _elem5.read(iprot)
-            self.processInputs.append(_elem5)
+          (_etype9, _size6) = iprot.readListBegin()
+          for _i10 in xrange(_size6):
+            _elem11 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+            _elem11.read(iprot)
+            self.processInputs.append(_elem11)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 11:
         if ftype == TType.LIST:
           self.processOutputs = []
-          (_etype9, _size6) = iprot.readListBegin()
-          for _i10 in xrange(_size6):
-            _elem11 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
-            _elem11.read(iprot)
-            self.processOutputs.append(_elem11)
+          (_etype15, _size12) = iprot.readListBegin()
+          for _i16 in xrange(_size12):
+            _elem17 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+            _elem17.read(iprot)
+            self.processOutputs.append(_elem17)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 12:
         if ftype == TType.STRUCT:
-          self.resourceSchedule = apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
-          self.resourceSchedule.read(iprot)
+          self.processResourceSchedule = apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
+          self.processResourceSchedule.read(iprot)
         else:
           iprot.skip(ftype)
       elif fid == 13:
         if ftype == TType.LIST:
           self.tasks = []
-          (_etype15, _size12) = iprot.readListBegin()
-          for _i16 in xrange(_size12):
-            _elem17 = apache.airavata.model.task.ttypes.TaskModel()
-            _elem17.read(iprot)
-            self.tasks.append(_elem17)
+          (_etype21, _size18) = iprot.readListBegin()
+          for _i22 in xrange(_size18):
+            _elem23 = apache.airavata.model.task.ttypes.TaskModel()
+            _elem23.read(iprot)
+            self.tasks.append(_elem23)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -211,9 +216,14 @@ class ProcessModel:
         else:
           iprot.skip(ftype)
       elif fid == 15:
-        if ftype == TType.STRUCT:
-          self.processError = apache.airavata.model.commons.ttypes.ErrorModel()
-          self.processError.read(iprot)
+        if ftype == TType.LIST:
+          self.processError = []
+          (_etype27, _size24) = iprot.readListBegin()
+          for _i28 in xrange(_size24):
+            _elem29 = apache.airavata.model.commons.ttypes.ErrorModel()
+            _elem29.read(iprot)
+            self.processError.append(_elem29)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 16:
@@ -229,10 +239,10 @@ class ProcessModel:
       elif fid == 18:
         if ftype == TType.LIST:
           self.emailAddresses = []
-          (_etype21, _size18) = iprot.readListBegin()
-          for _i22 in xrange(_size18):
-            _elem23 = iprot.readString()
-            self.emailAddresses.append(_elem23)
+          (_etype33, _size30) = iprot.readListBegin()
+          for _i34 in xrange(_size30):
+            _elem35 = iprot.readString()
+            self.emailAddresses.append(_elem35)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -288,8 +298,11 @@ class ProcessModel:
       oprot.writeI64(self.lastUpdateTime)
       oprot.writeFieldEnd()
     if self.processStatus is not None:
-      oprot.writeFieldBegin('processStatus', TType.STRUCT, 5)
-      self.processStatus.write(oprot)
+      oprot.writeFieldBegin('processStatus', TType.LIST, 5)
+      oprot.writeListBegin(TType.STRUCT, len(self.processStatus))
+      for iter36 in self.processStatus:
+        iter36.write(oprot)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.processDetail is not None:
       oprot.writeFieldBegin('processDetail', TType.STRING, 6)
@@ -310,26 +323,26 @@ class ProcessModel:
     if self.processInputs is not None:
       oprot.writeFieldBegin('processInputs', TType.LIST, 10)
       oprot.writeListBegin(TType.STRUCT, len(self.processInputs))
-      for iter24 in self.processInputs:
-        iter24.write(oprot)
+      for iter37 in self.processInputs:
+        iter37.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.processOutputs is not None:
       oprot.writeFieldBegin('processOutputs', TType.LIST, 11)
       oprot.writeListBegin(TType.STRUCT, len(self.processOutputs))
-      for iter25 in self.processOutputs:
-        iter25.write(oprot)
+      for iter38 in self.processOutputs:
+        iter38.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
-    if self.resourceSchedule is not None:
-      oprot.writeFieldBegin('resourceSchedule', TType.STRUCT, 12)
-      self.resourceSchedule.write(oprot)
+    if self.processResourceSchedule is not None:
+      oprot.writeFieldBegin('processResourceSchedule', TType.STRUCT, 12)
+      self.processResourceSchedule.write(oprot)
       oprot.writeFieldEnd()
     if self.tasks is not None:
       oprot.writeFieldBegin('tasks', TType.LIST, 13)
       oprot.writeListBegin(TType.STRUCT, len(self.tasks))
-      for iter26 in self.tasks:
-        iter26.write(oprot)
+      for iter39 in self.tasks:
+        iter39.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.taskDag is not None:
@@ -337,8 +350,11 @@ class ProcessModel:
       oprot.writeString(self.taskDag)
       oprot.writeFieldEnd()
     if self.processError is not None:
-      oprot.writeFieldBegin('processError', TType.STRUCT, 15)
-      self.processError.write(oprot)
+      oprot.writeFieldBegin('processError', TType.LIST, 15)
+      oprot.writeListBegin(TType.STRUCT, len(self.processError))
+      for iter40 in self.processError:
+        iter40.write(oprot)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.gatewayExecutionId is not None:
       oprot.writeFieldBegin('gatewayExecutionId', TType.STRING, 16)
@@ -351,8 +367,8 @@ class ProcessModel:
     if self.emailAddresses is not None:
       oprot.writeFieldBegin('emailAddresses', TType.LIST, 18)
       oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
-      for iter27 in self.emailAddresses:
-        oprot.writeString(iter27)
+      for iter41 in self.emailAddresses:
+        oprot.writeString(iter41)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.storageResourceId is not None:
@@ -399,7 +415,7 @@ class ProcessModel:
     value = (value * 31) ^ hash(self.computeResourceId)
     value = (value * 31) ^ hash(self.processInputs)
     value = (value * 31) ^ hash(self.processOutputs)
-    value = (value * 31) ^ hash(self.resourceSchedule)
+    value = (value * 31) ^ hash(self.processResourceSchedule)
     value = (value * 31) ^ hash(self.tasks)
     value = (value * 31) ^ hash(self.taskDag)
     value = (value * 31) ^ hash(self.processError)