You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2014/06/30 18:12:12 UTC

git commit: updating generated source for workflownodedetails node type

Repository: airavata
Updated Branches:
  refs/heads/master 714702096 -> 515eb10cc


updating generated source for workflownodedetails node type


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

Branch: refs/heads/master
Commit: 515eb10cc5b61cb327a1cd469218c429adc584d9
Parents: 7147020
Author: samindaw <sa...@gmail.com>
Authored: Mon Jun 30 09:11:57 2014 -0700
Committer: samindaw <sa...@gmail.com>
Committed: Mon Jun 30 09:11:57 2014 -0700

----------------------------------------------------------------------
 .../resources/lib/experimentModel_types.cpp     | 290 +++++++++++--------
 .../main/resources/lib/experimentModel_types.h  |  42 ++-
 .../Model/Workspace/Experiment/Types.php        |  77 ++++-
 .../workspace/experiment/ExecutionUnit.java     |  64 ++++
 .../experiment/WorkflowNodeDetails.java         | 278 +++++++++++++++---
 .../experimentModel.thrift                      |   2 +-
 6 files changed, 577 insertions(+), 176 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/515eb10c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.cpp
index f39b314..02d648e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.cpp
@@ -216,6 +216,18 @@ const char* _kDataTypeNames[] = {
 };
 const std::map<int, const char*> _DataType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(5, _kDataTypeValues, _kDataTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
+int _kExecutionUnitValues[] = {
+  ExecutionUnit::INPUT,
+  ExecutionUnit::APPLICATION,
+  ExecutionUnit::OUTPUT
+};
+const char* _kExecutionUnitNames[] = {
+  "INPUT",
+  "APPLICATION",
+  "OUTPUT"
+};
+const std::map<int, const char*> _ExecutionUnit_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, _kExecutionUnitValues, _kExecutionUnitNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
 const char* ExperimentStatus::ascii_fingerprint = "1662AAADFABAB647546029B578B3B69B";
 const uint8_t ExperimentStatus::binary_fingerprint[16] = {0x16,0x62,0xAA,0xAD,0xFA,0xBA,0xB6,0x47,0x54,0x60,0x29,0xB5,0x78,0xB3,0xB6,0x9B};
 
@@ -2266,8 +2278,8 @@ void swap(TaskDetails &a, TaskDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* WorkflowNodeDetails::ascii_fingerprint = "6E949ACD99A7BCD6F92F530611379555";
-const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0x6E,0x94,0x9A,0xCD,0x99,0xA7,0xBC,0xD6,0xF9,0x2F,0x53,0x06,0x11,0x37,0x95,0x55};
+const char* WorkflowNodeDetails::ascii_fingerprint = "B9A01F97264B4D21C1929907008C6F81";
+const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0xB9,0xA0,0x1F,0x97,0x26,0x4B,0x4D,0x21,0xC1,0x92,0x99,0x07,0x00,0x8C,0x6F,0x81};
 
 uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2282,6 +2294,7 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
 
   bool isset_nodeInstanceId = false;
   bool isset_nodeName = false;
+  bool isset_executionUnit = false;
 
   while (true)
   {
@@ -2316,17 +2329,35 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
         }
         break;
       case 4:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast51;
+          xfer += iprot->readI32(ecast51);
+          this->executionUnit = (ExecutionUnit::type)ecast51;
+          isset_executionUnit = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->executionUnitData);
+          this->__isset.executionUnitData = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->nodeInputs.clear();
-            uint32_t _size51;
-            ::apache::thrift::protocol::TType _etype54;
-            xfer += iprot->readListBegin(_etype54, _size51);
-            this->nodeInputs.resize(_size51);
-            uint32_t _i55;
-            for (_i55 = 0; _i55 < _size51; ++_i55)
+            uint32_t _size52;
+            ::apache::thrift::protocol::TType _etype55;
+            xfer += iprot->readListBegin(_etype55, _size52);
+            this->nodeInputs.resize(_size52);
+            uint32_t _i56;
+            for (_i56 = 0; _i56 < _size52; ++_i56)
             {
-              xfer += this->nodeInputs[_i55].read(iprot);
+              xfer += this->nodeInputs[_i56].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2335,18 +2366,18 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
-      case 5:
+      case 7:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->nodeOutputs.clear();
-            uint32_t _size56;
-            ::apache::thrift::protocol::TType _etype59;
-            xfer += iprot->readListBegin(_etype59, _size56);
-            this->nodeOutputs.resize(_size56);
-            uint32_t _i60;
-            for (_i60 = 0; _i60 < _size56; ++_i60)
+            uint32_t _size57;
+            ::apache::thrift::protocol::TType _etype60;
+            xfer += iprot->readListBegin(_etype60, _size57);
+            this->nodeOutputs.resize(_size57);
+            uint32_t _i61;
+            for (_i61 = 0; _i61 < _size57; ++_i61)
             {
-              xfer += this->nodeOutputs[_i60].read(iprot);
+              xfer += this->nodeOutputs[_i61].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2355,7 +2386,7 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
-      case 6:
+      case 8:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->workflowNodeStatus.read(iprot);
           this->__isset.workflowNodeStatus = true;
@@ -2363,18 +2394,18 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
-      case 7:
+      case 9:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->taskDetailsList.clear();
-            uint32_t _size61;
-            ::apache::thrift::protocol::TType _etype64;
-            xfer += iprot->readListBegin(_etype64, _size61);
-            this->taskDetailsList.resize(_size61);
-            uint32_t _i65;
-            for (_i65 = 0; _i65 < _size61; ++_i65)
+            uint32_t _size62;
+            ::apache::thrift::protocol::TType _etype65;
+            xfer += iprot->readListBegin(_etype65, _size62);
+            this->taskDetailsList.resize(_size62);
+            uint32_t _i66;
+            for (_i66 = 0; _i66 < _size62; ++_i66)
             {
-              xfer += this->taskDetailsList[_i65].read(iprot);
+              xfer += this->taskDetailsList[_i66].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2383,18 +2414,18 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
-      case 8:
+      case 10:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
-            uint32_t _size66;
-            ::apache::thrift::protocol::TType _etype69;
-            xfer += iprot->readListBegin(_etype69, _size66);
-            this->errors.resize(_size66);
-            uint32_t _i70;
-            for (_i70 = 0; _i70 < _size66; ++_i70)
+            uint32_t _size67;
+            ::apache::thrift::protocol::TType _etype70;
+            xfer += iprot->readListBegin(_etype70, _size67);
+            this->errors.resize(_size67);
+            uint32_t _i71;
+            for (_i71 = 0; _i71 < _size67; ++_i71)
             {
-              xfer += this->errors[_i70].read(iprot);
+              xfer += this->errors[_i71].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2416,6 +2447,8 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_nodeName)
     throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_executionUnit)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
@@ -2436,58 +2469,67 @@ uint32_t WorkflowNodeDetails::write(::apache::thrift::protocol::TProtocol* oprot
   xfer += oprot->writeString(this->nodeName);
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("executionUnit", ::apache::thrift::protocol::T_I32, 4);
+  xfer += oprot->writeI32((int32_t)this->executionUnit);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.executionUnitData) {
+    xfer += oprot->writeFieldBegin("executionUnitData", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->executionUnitData);
+    xfer += oprot->writeFieldEnd();
+  }
   if (this->__isset.nodeInputs) {
-    xfer += oprot->writeFieldBegin("nodeInputs", ::apache::thrift::protocol::T_LIST, 4);
+    xfer += oprot->writeFieldBegin("nodeInputs", ::apache::thrift::protocol::T_LIST, 6);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->nodeInputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter71;
-      for (_iter71 = this->nodeInputs.begin(); _iter71 != this->nodeInputs.end(); ++_iter71)
+      std::vector<DataObjectType> ::const_iterator _iter72;
+      for (_iter72 = this->nodeInputs.begin(); _iter72 != this->nodeInputs.end(); ++_iter72)
       {
-        xfer += (*_iter71).write(oprot);
+        xfer += (*_iter72).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.nodeOutputs) {
-    xfer += oprot->writeFieldBegin("nodeOutputs", ::apache::thrift::protocol::T_LIST, 5);
+    xfer += oprot->writeFieldBegin("nodeOutputs", ::apache::thrift::protocol::T_LIST, 7);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->nodeOutputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter72;
-      for (_iter72 = this->nodeOutputs.begin(); _iter72 != this->nodeOutputs.end(); ++_iter72)
+      std::vector<DataObjectType> ::const_iterator _iter73;
+      for (_iter73 = this->nodeOutputs.begin(); _iter73 != this->nodeOutputs.end(); ++_iter73)
       {
-        xfer += (*_iter72).write(oprot);
+        xfer += (*_iter73).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.workflowNodeStatus) {
-    xfer += oprot->writeFieldBegin("workflowNodeStatus", ::apache::thrift::protocol::T_STRUCT, 6);
+    xfer += oprot->writeFieldBegin("workflowNodeStatus", ::apache::thrift::protocol::T_STRUCT, 8);
     xfer += this->workflowNodeStatus.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.taskDetailsList) {
-    xfer += oprot->writeFieldBegin("taskDetailsList", ::apache::thrift::protocol::T_LIST, 7);
+    xfer += oprot->writeFieldBegin("taskDetailsList", ::apache::thrift::protocol::T_LIST, 9);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->taskDetailsList.size()));
-      std::vector<TaskDetails> ::const_iterator _iter73;
-      for (_iter73 = this->taskDetailsList.begin(); _iter73 != this->taskDetailsList.end(); ++_iter73)
+      std::vector<TaskDetails> ::const_iterator _iter74;
+      for (_iter74 = this->taskDetailsList.begin(); _iter74 != this->taskDetailsList.end(); ++_iter74)
       {
-        xfer += (*_iter73).write(oprot);
+        xfer += (*_iter74).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.errors) {
-    xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 8);
+    xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 10);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter74;
-      for (_iter74 = this->errors.begin(); _iter74 != this->errors.end(); ++_iter74)
+      std::vector<ErrorDetails> ::const_iterator _iter75;
+      for (_iter75 = this->errors.begin(); _iter75 != this->errors.end(); ++_iter75)
       {
-        xfer += (*_iter74).write(oprot);
+        xfer += (*_iter75).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2503,6 +2545,8 @@ void swap(WorkflowNodeDetails &a, WorkflowNodeDetails &b) {
   swap(a.nodeInstanceId, b.nodeInstanceId);
   swap(a.creationTime, b.creationTime);
   swap(a.nodeName, b.nodeName);
+  swap(a.executionUnit, b.executionUnit);
+  swap(a.executionUnitData, b.executionUnitData);
   swap(a.nodeInputs, b.nodeInputs);
   swap(a.nodeOutputs, b.nodeOutputs);
   swap(a.workflowNodeStatus, b.workflowNodeStatus);
@@ -2627,14 +2671,14 @@ uint32_t ValidationResults::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->validationResultList.clear();
-            uint32_t _size75;
-            ::apache::thrift::protocol::TType _etype78;
-            xfer += iprot->readListBegin(_etype78, _size75);
-            this->validationResultList.resize(_size75);
-            uint32_t _i79;
-            for (_i79 = 0; _i79 < _size75; ++_i79)
+            uint32_t _size76;
+            ::apache::thrift::protocol::TType _etype79;
+            xfer += iprot->readListBegin(_etype79, _size76);
+            this->validationResultList.resize(_size76);
+            uint32_t _i80;
+            for (_i80 = 0; _i80 < _size76; ++_i80)
             {
-              xfer += this->validationResultList[_i79].read(iprot);
+              xfer += this->validationResultList[_i80].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2670,10 +2714,10 @@ uint32_t ValidationResults::write(::apache::thrift::protocol::TProtocol* oprot)
   xfer += oprot->writeFieldBegin("validationResultList", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->validationResultList.size()));
-    std::vector<ValidatorResult> ::const_iterator _iter80;
-    for (_iter80 = this->validationResultList.begin(); _iter80 != this->validationResultList.end(); ++_iter80)
+    std::vector<ValidatorResult> ::const_iterator _iter81;
+    for (_iter81 = this->validationResultList.begin(); _iter81 != this->validationResultList.end(); ++_iter81)
     {
-      xfer += (*_iter80).write(oprot);
+      xfer += (*_iter81).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -2690,8 +2734,8 @@ void swap(ValidationResults &a, ValidationResults &b) {
   swap(a.validationResultList, b.validationResultList);
 }
 
-const char* Experiment::ascii_fingerprint = "66FE530838E2F6F20D72C4DB3F430EF8";
-const uint8_t Experiment::binary_fingerprint[16] = {0x66,0xFE,0x53,0x08,0x38,0xE2,0xF6,0xF2,0x0D,0x72,0xC4,0xDB,0x3F,0x43,0x0E,0xF8};
+const char* Experiment::ascii_fingerprint = "2AA486482D7BE0429763612CDC85F0AE";
+const uint8_t Experiment::binary_fingerprint[16] = {0x2A,0xA4,0x86,0x48,0x2D,0x7B,0xE0,0x42,0x97,0x63,0x61,0x2C,0xDC,0x85,0xF0,0xAE};
 
 uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2817,14 +2861,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->experimentInputs.clear();
-            uint32_t _size81;
-            ::apache::thrift::protocol::TType _etype84;
-            xfer += iprot->readListBegin(_etype84, _size81);
-            this->experimentInputs.resize(_size81);
-            uint32_t _i85;
-            for (_i85 = 0; _i85 < _size81; ++_i85)
+            uint32_t _size82;
+            ::apache::thrift::protocol::TType _etype85;
+            xfer += iprot->readListBegin(_etype85, _size82);
+            this->experimentInputs.resize(_size82);
+            uint32_t _i86;
+            for (_i86 = 0; _i86 < _size82; ++_i86)
             {
-              xfer += this->experimentInputs[_i85].read(iprot);
+              xfer += this->experimentInputs[_i86].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2837,14 +2881,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->experimentOutputs.clear();
-            uint32_t _size86;
-            ::apache::thrift::protocol::TType _etype89;
-            xfer += iprot->readListBegin(_etype89, _size86);
-            this->experimentOutputs.resize(_size86);
-            uint32_t _i90;
-            for (_i90 = 0; _i90 < _size86; ++_i90)
+            uint32_t _size87;
+            ::apache::thrift::protocol::TType _etype90;
+            xfer += iprot->readListBegin(_etype90, _size87);
+            this->experimentOutputs.resize(_size87);
+            uint32_t _i91;
+            for (_i91 = 0; _i91 < _size87; ++_i91)
             {
-              xfer += this->experimentOutputs[_i90].read(iprot);
+              xfer += this->experimentOutputs[_i91].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2865,14 +2909,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->stateChangeList.clear();
-            uint32_t _size91;
-            ::apache::thrift::protocol::TType _etype94;
-            xfer += iprot->readListBegin(_etype94, _size91);
-            this->stateChangeList.resize(_size91);
-            uint32_t _i95;
-            for (_i95 = 0; _i95 < _size91; ++_i95)
+            uint32_t _size92;
+            ::apache::thrift::protocol::TType _etype95;
+            xfer += iprot->readListBegin(_etype95, _size92);
+            this->stateChangeList.resize(_size92);
+            uint32_t _i96;
+            for (_i96 = 0; _i96 < _size92; ++_i96)
             {
-              xfer += this->stateChangeList[_i95].read(iprot);
+              xfer += this->stateChangeList[_i96].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2885,14 +2929,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->workflowNodeDetailsList.clear();
-            uint32_t _size96;
-            ::apache::thrift::protocol::TType _etype99;
-            xfer += iprot->readListBegin(_etype99, _size96);
-            this->workflowNodeDetailsList.resize(_size96);
-            uint32_t _i100;
-            for (_i100 = 0; _i100 < _size96; ++_i100)
+            uint32_t _size97;
+            ::apache::thrift::protocol::TType _etype100;
+            xfer += iprot->readListBegin(_etype100, _size97);
+            this->workflowNodeDetailsList.resize(_size97);
+            uint32_t _i101;
+            for (_i101 = 0; _i101 < _size97; ++_i101)
             {
-              xfer += this->workflowNodeDetailsList[_i100].read(iprot);
+              xfer += this->workflowNodeDetailsList[_i101].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2905,14 +2949,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
-            uint32_t _size101;
-            ::apache::thrift::protocol::TType _etype104;
-            xfer += iprot->readListBegin(_etype104, _size101);
-            this->errors.resize(_size101);
-            uint32_t _i105;
-            for (_i105 = 0; _i105 < _size101; ++_i105)
+            uint32_t _size102;
+            ::apache::thrift::protocol::TType _etype105;
+            xfer += iprot->readListBegin(_etype105, _size102);
+            this->errors.resize(_size102);
+            uint32_t _i106;
+            for (_i106 = 0; _i106 < _size102; ++_i106)
             {
-              xfer += this->errors[_i105].read(iprot);
+              xfer += this->errors[_i106].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3005,10 +3049,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("experimentInputs", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->experimentInputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter106;
-      for (_iter106 = this->experimentInputs.begin(); _iter106 != this->experimentInputs.end(); ++_iter106)
+      std::vector<DataObjectType> ::const_iterator _iter107;
+      for (_iter107 = this->experimentInputs.begin(); _iter107 != this->experimentInputs.end(); ++_iter107)
       {
-        xfer += (*_iter106).write(oprot);
+        xfer += (*_iter107).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3018,10 +3062,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("experimentOutputs", ::apache::thrift::protocol::T_LIST, 14);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->experimentOutputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter107;
-      for (_iter107 = this->experimentOutputs.begin(); _iter107 != this->experimentOutputs.end(); ++_iter107)
+      std::vector<DataObjectType> ::const_iterator _iter108;
+      for (_iter108 = this->experimentOutputs.begin(); _iter108 != this->experimentOutputs.end(); ++_iter108)
       {
-        xfer += (*_iter107).write(oprot);
+        xfer += (*_iter108).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3036,10 +3080,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("stateChangeList", ::apache::thrift::protocol::T_LIST, 16);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->stateChangeList.size()));
-      std::vector<WorkflowNodeStatus> ::const_iterator _iter108;
-      for (_iter108 = this->stateChangeList.begin(); _iter108 != this->stateChangeList.end(); ++_iter108)
+      std::vector<WorkflowNodeStatus> ::const_iterator _iter109;
+      for (_iter109 = this->stateChangeList.begin(); _iter109 != this->stateChangeList.end(); ++_iter109)
       {
-        xfer += (*_iter108).write(oprot);
+        xfer += (*_iter109).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3049,10 +3093,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("workflowNodeDetailsList", ::apache::thrift::protocol::T_LIST, 17);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->workflowNodeDetailsList.size()));
-      std::vector<WorkflowNodeDetails> ::const_iterator _iter109;
-      for (_iter109 = this->workflowNodeDetailsList.begin(); _iter109 != this->workflowNodeDetailsList.end(); ++_iter109)
+      std::vector<WorkflowNodeDetails> ::const_iterator _iter110;
+      for (_iter110 = this->workflowNodeDetailsList.begin(); _iter110 != this->workflowNodeDetailsList.end(); ++_iter110)
       {
-        xfer += (*_iter109).write(oprot);
+        xfer += (*_iter110).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3062,10 +3106,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     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<ErrorDetails> ::const_iterator _iter110;
-      for (_iter110 = this->errors.begin(); _iter110 != this->errors.end(); ++_iter110)
+      std::vector<ErrorDetails> ::const_iterator _iter111;
+      for (_iter111 = this->errors.begin(); _iter111 != this->errors.end(); ++_iter111)
       {
-        xfer += (*_iter110).write(oprot);
+        xfer += (*_iter111).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3194,14 +3238,14 @@ uint32_t ExperimentSummary::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
-            uint32_t _size111;
-            ::apache::thrift::protocol::TType _etype114;
-            xfer += iprot->readListBegin(_etype114, _size111);
-            this->errors.resize(_size111);
-            uint32_t _i115;
-            for (_i115 = 0; _i115 < _size111; ++_i115)
+            uint32_t _size112;
+            ::apache::thrift::protocol::TType _etype115;
+            xfer += iprot->readListBegin(_etype115, _size112);
+            this->errors.resize(_size112);
+            uint32_t _i116;
+            for (_i116 = 0; _i116 < _size112; ++_i116)
             {
-              xfer += this->errors[_i115].read(iprot);
+              xfer += this->errors[_i116].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3274,10 +3318,10 @@ uint32_t ExperimentSummary::write(::apache::thrift::protocol::TProtocol* oprot)
     xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 9);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter116;
-      for (_iter116 = this->errors.begin(); _iter116 != this->errors.end(); ++_iter116)
+      std::vector<ErrorDetails> ::const_iterator _iter117;
+      for (_iter117 = this->errors.begin(); _iter117 != this->errors.end(); ++_iter117)
       {
-        xfer += (*_iter116).write(oprot);
+        xfer += (*_iter117).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/515eb10c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.h
index b10a263..52a27b9 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/experimentModel_types.h
@@ -157,6 +157,16 @@ struct DataType {
 
 extern const std::map<int, const char*> _DataType_VALUES_TO_NAMES;
 
+struct ExecutionUnit {
+  enum type {
+    INPUT = 0,
+    APPLICATION = 1,
+    OUTPUT = 2
+  };
+};
+
+extern const std::map<int, const char*> _ExecutionUnit_VALUES_TO_NAMES;
+
 typedef struct _ExperimentStatus__isset {
   _ExperimentStatus__isset() : timeOfStateChange(false) {}
   bool timeOfStateChange;
@@ -1505,8 +1515,9 @@ class TaskDetails {
 void swap(TaskDetails &a, TaskDetails &b);
 
 typedef struct _WorkflowNodeDetails__isset {
-  _WorkflowNodeDetails__isset() : creationTime(false), nodeInputs(false), nodeOutputs(false), workflowNodeStatus(false), taskDetailsList(false), errors(false) {}
+  _WorkflowNodeDetails__isset() : creationTime(false), executionUnitData(false), nodeInputs(false), nodeOutputs(false), workflowNodeStatus(false), taskDetailsList(false), errors(false) {}
   bool creationTime;
+  bool executionUnitData;
   bool nodeInputs;
   bool nodeOutputs;
   bool workflowNodeStatus;
@@ -1517,10 +1528,12 @@ typedef struct _WorkflowNodeDetails__isset {
 class WorkflowNodeDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "6E949ACD99A7BCD6F92F530611379555";
-  static const uint8_t binary_fingerprint[16]; // = {0x6E,0x94,0x9A,0xCD,0x99,0xA7,0xBC,0xD6,0xF9,0x2F,0x53,0x06,0x11,0x37,0x95,0x55};
+  static const char* ascii_fingerprint; // = "B9A01F97264B4D21C1929907008C6F81";
+  static const uint8_t binary_fingerprint[16]; // = {0xB9,0xA0,0x1F,0x97,0x26,0x4B,0x4D,0x21,0xC1,0x92,0x99,0x07,0x00,0x8C,0x6F,0x81};
+
+  WorkflowNodeDetails() : nodeInstanceId("DO_NOT_SET_AT_CLIENTS"), creationTime(0), nodeName("SINGLE_APP_NODE"), executionUnit((ExecutionUnit::type)1), executionUnitData() {
+    executionUnit = (ExecutionUnit::type)1;
 
-  WorkflowNodeDetails() : nodeInstanceId("DO_NOT_SET_AT_CLIENTS"), creationTime(0), nodeName("SINGLE_APP_NODE") {
   }
 
   virtual ~WorkflowNodeDetails() throw() {}
@@ -1528,6 +1541,8 @@ class WorkflowNodeDetails {
   std::string nodeInstanceId;
   int64_t creationTime;
   std::string nodeName;
+  ExecutionUnit::type executionUnit;
+  std::string executionUnitData;
   std::vector<DataObjectType>  nodeInputs;
   std::vector<DataObjectType>  nodeOutputs;
   WorkflowNodeStatus workflowNodeStatus;
@@ -1549,6 +1564,15 @@ class WorkflowNodeDetails {
     nodeName = val;
   }
 
+  void __set_executionUnit(const ExecutionUnit::type val) {
+    executionUnit = val;
+  }
+
+  void __set_executionUnitData(const std::string& val) {
+    executionUnitData = val;
+    __isset.executionUnitData = true;
+  }
+
   void __set_nodeInputs(const std::vector<DataObjectType> & val) {
     nodeInputs = val;
     __isset.nodeInputs = true;
@@ -1584,6 +1608,12 @@ class WorkflowNodeDetails {
       return false;
     if (!(nodeName == rhs.nodeName))
       return false;
+    if (!(executionUnit == rhs.executionUnit))
+      return false;
+    if (__isset.executionUnitData != rhs.__isset.executionUnitData)
+      return false;
+    else if (__isset.executionUnitData && !(executionUnitData == rhs.executionUnitData))
+      return false;
     if (__isset.nodeInputs != rhs.__isset.nodeInputs)
       return false;
     else if (__isset.nodeInputs && !(nodeInputs == rhs.nodeInputs))
@@ -1737,8 +1767,8 @@ typedef struct _Experiment__isset {
 class Experiment {
  public:
 
-  static const char* ascii_fingerprint; // = "66FE530838E2F6F20D72C4DB3F430EF8";
-  static const uint8_t binary_fingerprint[16]; // = {0x66,0xFE,0x53,0x08,0x38,0xE2,0xF6,0xF2,0x0D,0x72,0xC4,0xDB,0x3F,0x43,0x0E,0xF8};
+  static const char* ascii_fingerprint; // = "2AA486482D7BE0429763612CDC85F0AE";
+  static const uint8_t binary_fingerprint[16]; // = {0x2A,0xA4,0x86,0x48,0x2D,0x7B,0xE0,0x42,0x97,0x63,0x61,0x2C,0xDC,0x85,0xF0,0xAE};
 
   Experiment() : experimentID("DO_NOT_SET_AT_CLIENTS"), projectID("DEFAULT"), creationTime(0), userName(), name(), description(), applicationId(), applicationVersion(), workflowTemplateId(), workflowTemplateVersion(), workflowExecutionInstanceId() {
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/515eb10c/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
index 7135938..caf51e6 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
@@ -214,6 +214,17 @@ final class DataType {
   );
 }
 
+final class ExecutionUnit {
+  const INPUT = 0;
+  const APPLICATION = 1;
+  const OUTPUT = 2;
+  static public $__names = array(
+    0 => 'INPUT',
+    1 => 'APPLICATION',
+    2 => 'OUTPUT',
+  );
+}
+
 class ExperimentStatus {
   static $_TSPEC;
 
@@ -2841,6 +2852,8 @@ class WorkflowNodeDetails {
   public $nodeInstanceId = "DO_NOT_SET_AT_CLIENTS";
   public $creationTime = null;
   public $nodeName = "SINGLE_APP_NODE";
+  public $executionUnit =   1;
+  public $executionUnitData = null;
   public $nodeInputs = null;
   public $nodeOutputs = null;
   public $workflowNodeStatus = null;
@@ -2863,6 +2876,14 @@ class WorkflowNodeDetails {
           'type' => TType::STRING,
           ),
         4 => array(
+          'var' => 'executionUnit',
+          'type' => TType::I32,
+          ),
+        5 => array(
+          'var' => 'executionUnitData',
+          'type' => TType::STRING,
+          ),
+        6 => array(
           'var' => 'nodeInputs',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2871,7 +2892,7 @@ class WorkflowNodeDetails {
             'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
             ),
           ),
-        5 => array(
+        7 => array(
           'var' => 'nodeOutputs',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2880,12 +2901,12 @@ class WorkflowNodeDetails {
             'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
             ),
           ),
-        6 => array(
+        8 => array(
           'var' => 'workflowNodeStatus',
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Workspace\Experiment\WorkflowNodeStatus',
           ),
-        7 => array(
+        9 => array(
           'var' => 'taskDetailsList',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2894,7 +2915,7 @@ class WorkflowNodeDetails {
             'class' => '\Airavata\Model\Workspace\Experiment\TaskDetails',
             ),
           ),
-        8 => array(
+        10 => array(
           'var' => 'errors',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2915,6 +2936,12 @@ class WorkflowNodeDetails {
       if (isset($vals['nodeName'])) {
         $this->nodeName = $vals['nodeName'];
       }
+      if (isset($vals['executionUnit'])) {
+        $this->executionUnit = $vals['executionUnit'];
+      }
+      if (isset($vals['executionUnitData'])) {
+        $this->executionUnitData = $vals['executionUnitData'];
+      }
       if (isset($vals['nodeInputs'])) {
         $this->nodeInputs = $vals['nodeInputs'];
       }
@@ -2974,6 +3001,20 @@ class WorkflowNodeDetails {
           }
           break;
         case 4:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->executionUnit);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->executionUnitData);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
           if ($ftype == TType::LST) {
             $this->nodeInputs = array();
             $_size49 = 0;
@@ -2991,7 +3032,7 @@ class WorkflowNodeDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 5:
+        case 7:
           if ($ftype == TType::LST) {
             $this->nodeOutputs = array();
             $_size55 = 0;
@@ -3009,7 +3050,7 @@ class WorkflowNodeDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 6:
+        case 8:
           if ($ftype == TType::STRUCT) {
             $this->workflowNodeStatus = new \Airavata\Model\Workspace\Experiment\WorkflowNodeStatus();
             $xfer += $this->workflowNodeStatus->read($input);
@@ -3017,7 +3058,7 @@ class WorkflowNodeDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 7:
+        case 9:
           if ($ftype == TType::LST) {
             $this->taskDetailsList = array();
             $_size61 = 0;
@@ -3035,7 +3076,7 @@ class WorkflowNodeDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 8:
+        case 10:
           if ($ftype == TType::LST) {
             $this->errors = array();
             $_size67 = 0;
@@ -3081,11 +3122,21 @@ class WorkflowNodeDetails {
       $xfer += $output->writeString($this->nodeName);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->executionUnit !== null) {
+      $xfer += $output->writeFieldBegin('executionUnit', TType::I32, 4);
+      $xfer += $output->writeI32($this->executionUnit);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->executionUnitData !== null) {
+      $xfer += $output->writeFieldBegin('executionUnitData', TType::STRING, 5);
+      $xfer += $output->writeString($this->executionUnitData);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->nodeInputs !== null) {
       if (!is_array($this->nodeInputs)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('nodeInputs', TType::LST, 4);
+      $xfer += $output->writeFieldBegin('nodeInputs', TType::LST, 6);
       {
         $output->writeListBegin(TType::STRUCT, count($this->nodeInputs));
         {
@@ -3102,7 +3153,7 @@ class WorkflowNodeDetails {
       if (!is_array($this->nodeOutputs)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('nodeOutputs', TType::LST, 5);
+      $xfer += $output->writeFieldBegin('nodeOutputs', TType::LST, 7);
       {
         $output->writeListBegin(TType::STRUCT, count($this->nodeOutputs));
         {
@@ -3119,7 +3170,7 @@ class WorkflowNodeDetails {
       if (!is_object($this->workflowNodeStatus)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('workflowNodeStatus', TType::STRUCT, 6);
+      $xfer += $output->writeFieldBegin('workflowNodeStatus', TType::STRUCT, 8);
       $xfer += $this->workflowNodeStatus->write($output);
       $xfer += $output->writeFieldEnd();
     }
@@ -3127,7 +3178,7 @@ class WorkflowNodeDetails {
       if (!is_array($this->taskDetailsList)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('taskDetailsList', TType::LST, 7);
+      $xfer += $output->writeFieldBegin('taskDetailsList', TType::LST, 9);
       {
         $output->writeListBegin(TType::STRUCT, count($this->taskDetailsList));
         {
@@ -3144,7 +3195,7 @@ class WorkflowNodeDetails {
       if (!is_array($this->errors)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('errors', TType::LST, 8);
+      $xfer += $output->writeFieldBegin('errors', TType::LST, 10);
       {
         $output->writeListBegin(TType::STRUCT, count($this->errors));
         {

http://git-wip-us.apache.org/repos/asf/airavata/blob/515eb10c/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExecutionUnit.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExecutionUnit.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExecutionUnit.java
new file mode 100644
index 0000000..f8bd8c5
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ExecutionUnit.java
@@ -0,0 +1,64 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace.experiment;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+@SuppressWarnings("all") public enum ExecutionUnit implements org.apache.thrift.TEnum {
+  INPUT(0),
+  APPLICATION(1),
+  OUTPUT(2);
+
+  private final int value;
+
+  private ExecutionUnit(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static ExecutionUnit findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return INPUT;
+      case 1:
+        return APPLICATION;
+      case 2:
+        return OUTPUT;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/515eb10c/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java
index 483e97c..8f337d1 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java
@@ -58,11 +58,13 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TField NODE_INSTANCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeInstanceId", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)2);
   private static final org.apache.thrift.protocol.TField NODE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeName", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField NODE_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeInputs", org.apache.thrift.protocol.TType.LIST, (short)4);
-  private static final org.apache.thrift.protocol.TField NODE_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeOutputs", org.apache.thrift.protocol.TType.LIST, (short)5);
-  private static final org.apache.thrift.protocol.TField WORKFLOW_NODE_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("workflowNodeStatus", org.apache.thrift.protocol.TType.STRUCT, (short)6);
-  private static final org.apache.thrift.protocol.TField TASK_DETAILS_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("taskDetailsList", org.apache.thrift.protocol.TType.LIST, (short)7);
-  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)8);
+  private static final org.apache.thrift.protocol.TField EXECUTION_UNIT_FIELD_DESC = new org.apache.thrift.protocol.TField("executionUnit", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField EXECUTION_UNIT_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("executionUnitData", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField NODE_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeInputs", org.apache.thrift.protocol.TType.LIST, (short)6);
+  private static final org.apache.thrift.protocol.TField NODE_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeOutputs", org.apache.thrift.protocol.TType.LIST, (short)7);
+  private static final org.apache.thrift.protocol.TField WORKFLOW_NODE_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("workflowNodeStatus", org.apache.thrift.protocol.TType.STRUCT, (short)8);
+  private static final org.apache.thrift.protocol.TField TASK_DETAILS_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("taskDetailsList", org.apache.thrift.protocol.TType.LIST, (short)9);
+  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)10);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -73,6 +75,8 @@ import org.slf4j.LoggerFactory;
   private String nodeInstanceId; // required
   private long creationTime; // optional
   private String nodeName; // required
+  private ExecutionUnit executionUnit; // required
+  private String executionUnitData; // optional
   private List<DataObjectType> nodeInputs; // optional
   private List<DataObjectType> nodeOutputs; // optional
   private WorkflowNodeStatus workflowNodeStatus; // optional
@@ -84,11 +88,17 @@ import org.slf4j.LoggerFactory;
     NODE_INSTANCE_ID((short)1, "nodeInstanceId"),
     CREATION_TIME((short)2, "creationTime"),
     NODE_NAME((short)3, "nodeName"),
-    NODE_INPUTS((short)4, "nodeInputs"),
-    NODE_OUTPUTS((short)5, "nodeOutputs"),
-    WORKFLOW_NODE_STATUS((short)6, "workflowNodeStatus"),
-    TASK_DETAILS_LIST((short)7, "taskDetailsList"),
-    ERRORS((short)8, "errors");
+    /**
+     * 
+     * @see ExecutionUnit
+     */
+    EXECUTION_UNIT((short)4, "executionUnit"),
+    EXECUTION_UNIT_DATA((short)5, "executionUnitData"),
+    NODE_INPUTS((short)6, "nodeInputs"),
+    NODE_OUTPUTS((short)7, "nodeOutputs"),
+    WORKFLOW_NODE_STATUS((short)8, "workflowNodeStatus"),
+    TASK_DETAILS_LIST((short)9, "taskDetailsList"),
+    ERRORS((short)10, "errors");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -109,15 +119,19 @@ import org.slf4j.LoggerFactory;
           return CREATION_TIME;
         case 3: // NODE_NAME
           return NODE_NAME;
-        case 4: // NODE_INPUTS
+        case 4: // EXECUTION_UNIT
+          return EXECUTION_UNIT;
+        case 5: // EXECUTION_UNIT_DATA
+          return EXECUTION_UNIT_DATA;
+        case 6: // NODE_INPUTS
           return NODE_INPUTS;
-        case 5: // NODE_OUTPUTS
+        case 7: // NODE_OUTPUTS
           return NODE_OUTPUTS;
-        case 6: // WORKFLOW_NODE_STATUS
+        case 8: // WORKFLOW_NODE_STATUS
           return WORKFLOW_NODE_STATUS;
-        case 7: // TASK_DETAILS_LIST
+        case 9: // TASK_DETAILS_LIST
           return TASK_DETAILS_LIST;
-        case 8: // ERRORS
+        case 10: // ERRORS
           return ERRORS;
         default:
           return null;
@@ -161,7 +175,7 @@ import org.slf4j.LoggerFactory;
   // isset id assignments
   private static final int __CREATIONTIME_ISSET_ID = 0;
   private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.NODE_INPUTS,_Fields.NODE_OUTPUTS,_Fields.WORKFLOW_NODE_STATUS,_Fields.TASK_DETAILS_LIST,_Fields.ERRORS};
+  private _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.EXECUTION_UNIT_DATA,_Fields.NODE_INPUTS,_Fields.NODE_OUTPUTS,_Fields.WORKFLOW_NODE_STATUS,_Fields.TASK_DETAILS_LIST,_Fields.ERRORS};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -171,6 +185,10 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
     tmpMap.put(_Fields.NODE_NAME, new org.apache.thrift.meta_data.FieldMetaData("nodeName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXECUTION_UNIT, new org.apache.thrift.meta_data.FieldMetaData("executionUnit", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ExecutionUnit.class)));
+    tmpMap.put(_Fields.EXECUTION_UNIT_DATA, new org.apache.thrift.meta_data.FieldMetaData("executionUnitData", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.NODE_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("nodeInputs", 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, DataObjectType.class))));
@@ -194,15 +212,19 @@ import org.slf4j.LoggerFactory;
 
     this.nodeName = "SINGLE_APP_NODE";
 
+    this.executionUnit = org.apache.airavata.model.workspace.experiment.ExecutionUnit.APPLICATION;
+
   }
 
   public WorkflowNodeDetails(
     String nodeInstanceId,
-    String nodeName)
+    String nodeName,
+    ExecutionUnit executionUnit)
   {
     this();
     this.nodeInstanceId = nodeInstanceId;
     this.nodeName = nodeName;
+    this.executionUnit = executionUnit;
   }
 
   /**
@@ -217,6 +239,12 @@ import org.slf4j.LoggerFactory;
     if (other.isSetNodeName()) {
       this.nodeName = other.nodeName;
     }
+    if (other.isSetExecutionUnit()) {
+      this.executionUnit = other.executionUnit;
+    }
+    if (other.isSetExecutionUnitData()) {
+      this.executionUnitData = other.executionUnitData;
+    }
     if (other.isSetNodeInputs()) {
       List<DataObjectType> __this__nodeInputs = new ArrayList<DataObjectType>(other.nodeInputs.size());
       for (DataObjectType other_element : other.nodeInputs) {
@@ -262,6 +290,9 @@ import org.slf4j.LoggerFactory;
     this.creationTime = 0;
     this.nodeName = "SINGLE_APP_NODE";
 
+    this.executionUnit = org.apache.airavata.model.workspace.experiment.ExecutionUnit.APPLICATION;
+
+    this.executionUnitData = null;
     this.nodeInputs = null;
     this.nodeOutputs = null;
     this.workflowNodeStatus = null;
@@ -337,6 +368,60 @@ import org.slf4j.LoggerFactory;
     }
   }
 
+  /**
+   * 
+   * @see ExecutionUnit
+   */
+  public ExecutionUnit getExecutionUnit() {
+    return this.executionUnit;
+  }
+
+  /**
+   * 
+   * @see ExecutionUnit
+   */
+  public void setExecutionUnit(ExecutionUnit executionUnit) {
+    this.executionUnit = executionUnit;
+  }
+
+  public void unsetExecutionUnit() {
+    this.executionUnit = null;
+  }
+
+  /** Returns true if field executionUnit is set (has been assigned a value) and false otherwise */
+  public boolean isSetExecutionUnit() {
+    return this.executionUnit != null;
+  }
+
+  public void setExecutionUnitIsSet(boolean value) {
+    if (!value) {
+      this.executionUnit = null;
+    }
+  }
+
+  public String getExecutionUnitData() {
+    return this.executionUnitData;
+  }
+
+  public void setExecutionUnitData(String executionUnitData) {
+    this.executionUnitData = executionUnitData;
+  }
+
+  public void unsetExecutionUnitData() {
+    this.executionUnitData = null;
+  }
+
+  /** Returns true if field executionUnitData is set (has been assigned a value) and false otherwise */
+  public boolean isSetExecutionUnitData() {
+    return this.executionUnitData != null;
+  }
+
+  public void setExecutionUnitDataIsSet(boolean value) {
+    if (!value) {
+      this.executionUnitData = null;
+    }
+  }
+
   public int getNodeInputsSize() {
     return (this.nodeInputs == null) ? 0 : this.nodeInputs.size();
   }
@@ -538,6 +623,22 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case EXECUTION_UNIT:
+      if (value == null) {
+        unsetExecutionUnit();
+      } else {
+        setExecutionUnit((ExecutionUnit)value);
+      }
+      break;
+
+    case EXECUTION_UNIT_DATA:
+      if (value == null) {
+        unsetExecutionUnitData();
+      } else {
+        setExecutionUnitData((String)value);
+      }
+      break;
+
     case NODE_INPUTS:
       if (value == null) {
         unsetNodeInputs();
@@ -592,6 +693,12 @@ import org.slf4j.LoggerFactory;
     case NODE_NAME:
       return getNodeName();
 
+    case EXECUTION_UNIT:
+      return getExecutionUnit();
+
+    case EXECUTION_UNIT_DATA:
+      return getExecutionUnitData();
+
     case NODE_INPUTS:
       return getNodeInputs();
 
@@ -624,6 +731,10 @@ import org.slf4j.LoggerFactory;
       return isSetCreationTime();
     case NODE_NAME:
       return isSetNodeName();
+    case EXECUTION_UNIT:
+      return isSetExecutionUnit();
+    case EXECUTION_UNIT_DATA:
+      return isSetExecutionUnitData();
     case NODE_INPUTS:
       return isSetNodeInputs();
     case NODE_OUTPUTS:
@@ -678,6 +789,24 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
+    boolean this_present_executionUnit = true && this.isSetExecutionUnit();
+    boolean that_present_executionUnit = true && that.isSetExecutionUnit();
+    if (this_present_executionUnit || that_present_executionUnit) {
+      if (!(this_present_executionUnit && that_present_executionUnit))
+        return false;
+      if (!this.executionUnit.equals(that.executionUnit))
+        return false;
+    }
+
+    boolean this_present_executionUnitData = true && this.isSetExecutionUnitData();
+    boolean that_present_executionUnitData = true && that.isSetExecutionUnitData();
+    if (this_present_executionUnitData || that_present_executionUnitData) {
+      if (!(this_present_executionUnitData && that_present_executionUnitData))
+        return false;
+      if (!this.executionUnitData.equals(that.executionUnitData))
+        return false;
+    }
+
     boolean this_present_nodeInputs = true && this.isSetNodeInputs();
     boolean that_present_nodeInputs = true && that.isSetNodeInputs();
     if (this_present_nodeInputs || that_present_nodeInputs) {
@@ -769,6 +898,26 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetExecutionUnit()).compareTo(other.isSetExecutionUnit());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExecutionUnit()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executionUnit, other.executionUnit);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExecutionUnitData()).compareTo(other.isSetExecutionUnitData());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExecutionUnitData()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executionUnitData, other.executionUnitData);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     lastComparison = Boolean.valueOf(isSetNodeInputs()).compareTo(other.isSetNodeInputs());
     if (lastComparison != 0) {
       return lastComparison;
@@ -860,6 +1009,24 @@ import org.slf4j.LoggerFactory;
       sb.append(this.nodeName);
     }
     first = false;
+    if (!first) sb.append(", ");
+    sb.append("executionUnit:");
+    if (this.executionUnit == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.executionUnit);
+    }
+    first = false;
+    if (isSetExecutionUnitData()) {
+      if (!first) sb.append(", ");
+      sb.append("executionUnitData:");
+      if (this.executionUnitData == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.executionUnitData);
+      }
+      first = false;
+    }
     if (isSetNodeInputs()) {
       if (!first) sb.append(", ");
       sb.append("nodeInputs:");
@@ -924,6 +1091,10 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'nodeName' is unset! Struct:" + toString());
     }
 
+    if (!isSetExecutionUnit()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'executionUnit' is unset! Struct:" + toString());
+    }
+
     // check for sub-struct validity
     if (workflowNodeStatus != null) {
       workflowNodeStatus.validate();
@@ -990,7 +1161,23 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 4: // NODE_INPUTS
+          case 4: // EXECUTION_UNIT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.executionUnit = ExecutionUnit.findByValue(iprot.readI32());
+              struct.setExecutionUnitIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // EXECUTION_UNIT_DATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.executionUnitData = iprot.readString();
+              struct.setExecutionUnitDataIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // NODE_INPUTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list56 = iprot.readListBegin();
@@ -1009,7 +1196,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 5: // NODE_OUTPUTS
+          case 7: // NODE_OUTPUTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list59 = iprot.readListBegin();
@@ -1028,7 +1215,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // WORKFLOW_NODE_STATUS
+          case 8: // WORKFLOW_NODE_STATUS
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.workflowNodeStatus = new WorkflowNodeStatus();
               struct.workflowNodeStatus.read(iprot);
@@ -1037,7 +1224,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 7: // TASK_DETAILS_LIST
+          case 9: // TASK_DETAILS_LIST
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list62 = iprot.readListBegin();
@@ -1056,7 +1243,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 8: // ERRORS
+          case 10: // ERRORS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list65 = iprot.readListBegin();
@@ -1103,6 +1290,18 @@ import org.slf4j.LoggerFactory;
         oprot.writeString(struct.nodeName);
         oprot.writeFieldEnd();
       }
+      if (struct.executionUnit != null) {
+        oprot.writeFieldBegin(EXECUTION_UNIT_FIELD_DESC);
+        oprot.writeI32(struct.executionUnit.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.executionUnitData != null) {
+        if (struct.isSetExecutionUnitData()) {
+          oprot.writeFieldBegin(EXECUTION_UNIT_DATA_FIELD_DESC);
+          oprot.writeString(struct.executionUnitData);
+          oprot.writeFieldEnd();
+        }
+      }
       if (struct.nodeInputs != null) {
         if (struct.isSetNodeInputs()) {
           oprot.writeFieldBegin(NODE_INPUTS_FIELD_DESC);
@@ -1185,29 +1384,36 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol oprot = (TTupleProtocol) prot;
       oprot.writeString(struct.nodeInstanceId);
       oprot.writeString(struct.nodeName);
+      oprot.writeI32(struct.executionUnit.getValue());
       BitSet optionals = new BitSet();
       if (struct.isSetCreationTime()) {
         optionals.set(0);
       }
-      if (struct.isSetNodeInputs()) {
+      if (struct.isSetExecutionUnitData()) {
         optionals.set(1);
       }
-      if (struct.isSetNodeOutputs()) {
+      if (struct.isSetNodeInputs()) {
         optionals.set(2);
       }
-      if (struct.isSetWorkflowNodeStatus()) {
+      if (struct.isSetNodeOutputs()) {
         optionals.set(3);
       }
-      if (struct.isSetTaskDetailsList()) {
+      if (struct.isSetWorkflowNodeStatus()) {
         optionals.set(4);
       }
-      if (struct.isSetErrors()) {
+      if (struct.isSetTaskDetailsList()) {
         optionals.set(5);
       }
-      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetErrors()) {
+        optionals.set(6);
+      }
+      oprot.writeBitSet(optionals, 7);
       if (struct.isSetCreationTime()) {
         oprot.writeI64(struct.creationTime);
       }
+      if (struct.isSetExecutionUnitData()) {
+        oprot.writeString(struct.executionUnitData);
+      }
       if (struct.isSetNodeInputs()) {
         {
           oprot.writeI32(struct.nodeInputs.size());
@@ -1256,12 +1462,18 @@ import org.slf4j.LoggerFactory;
       struct.setNodeInstanceIdIsSet(true);
       struct.nodeName = iprot.readString();
       struct.setNodeNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(6);
+      struct.executionUnit = ExecutionUnit.findByValue(iprot.readI32());
+      struct.setExecutionUnitIsSet(true);
+      BitSet incoming = iprot.readBitSet(7);
       if (incoming.get(0)) {
         struct.creationTime = iprot.readI64();
         struct.setCreationTimeIsSet(true);
       }
       if (incoming.get(1)) {
+        struct.executionUnitData = iprot.readString();
+        struct.setExecutionUnitDataIsSet(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.nodeInputs = new ArrayList<DataObjectType>(_list76.size);
@@ -1275,7 +1487,7 @@ import org.slf4j.LoggerFactory;
         }
         struct.setNodeInputsIsSet(true);
       }
-      if (incoming.get(2)) {
+      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.nodeOutputs = new ArrayList<DataObjectType>(_list79.size);
@@ -1289,12 +1501,12 @@ import org.slf4j.LoggerFactory;
         }
         struct.setNodeOutputsIsSet(true);
       }
-      if (incoming.get(3)) {
+      if (incoming.get(4)) {
         struct.workflowNodeStatus = new WorkflowNodeStatus();
         struct.workflowNodeStatus.read(iprot);
         struct.setWorkflowNodeStatusIsSet(true);
       }
-      if (incoming.get(4)) {
+      if (incoming.get(5)) {
         {
           org.apache.thrift.protocol.TList _list82 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.taskDetailsList = new ArrayList<TaskDetails>(_list82.size);
@@ -1308,7 +1520,7 @@ import org.slf4j.LoggerFactory;
         }
         struct.setTaskDetailsListIsSet(true);
       }
-      if (incoming.get(5)) {
+      if (incoming.get(6)) {
         {
           org.apache.thrift.protocol.TList _list85 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.errors = new ArrayList<ErrorDetails>(_list85.size);

http://git-wip-us.apache.org/repos/asf/airavata/blob/515eb10c/airavata-api/thrift-interface-descriptions/experimentModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/experimentModel.thrift b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
index 6d4ecb5..a8bff9d 100644
--- a/airavata-api/thrift-interface-descriptions/experimentModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
@@ -329,7 +329,7 @@ struct WorkflowNodeDetails {
     1: required string nodeInstanceId = DEFAULT_ID,
     2: optional i64 creationTime,
     3: required string nodeName = SINGLE_APP_NODE_NAME,
-    4: required ExecutionUnit = ExecutionUnit.APPLICATION,
+    4: required ExecutionUnit executionUnit = ExecutionUnit.APPLICATION,
     5: optional string executionUnitData,
     6: optional list<DataObjectType> nodeInputs,
     7: optional list<DataObjectType> nodeOutputs,