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/25 19:50:01 UTC

[2/2] git commit: generated code for updated TaskDetails model and Orchestrator service

generated code for updated TaskDetails model and Orchestrator service


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

Branch: refs/heads/master
Commit: b9c9d2456c1dd9f5a1e53c9057c6bd7d1dc48774
Parents: c6d78a4
Author: samindaw <sa...@gmail.com>
Authored: Wed Jun 25 10:49:44 2014 -0700
Committer: samindaw <sa...@gmail.com>
Committed: Wed Jun 25 10:49:44 2014 -0700

----------------------------------------------------------------------
 .../resources/lib/experimentModel_types.cpp     |  74 +-
 .../main/resources/lib/experimentModel_types.h  |  40 +-
 .../Model/Workspace/Experiment/Types.php        |  90 +-
 .../model/workspace/experiment/TaskDetails.java | 314 +++++--
 airavata-api/generate-thrift-files.sh           |   2 +-
 .../orchestrator/cpi/OrchestratorService.java   | 846 +++++++++++++++++++
 6 files changed, 1252 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/b9c9d245/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 0180c5e..f39b314 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
@@ -1905,8 +1905,8 @@ void swap(DataTransferDetails &a, DataTransferDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* TaskDetails::ascii_fingerprint = "5C32F41DCA106A1E9170C3F02C8F0431";
-const uint8_t TaskDetails::binary_fingerprint[16] = {0x5C,0x32,0xF4,0x1D,0xCA,0x10,0x6A,0x1E,0x91,0x70,0xC3,0xF0,0x2C,0x8F,0x04,0x31};
+const char* TaskDetails::ascii_fingerprint = "B61C8F58DF00FE6B55A62F6A457038DD";
+const uint8_t TaskDetails::binary_fingerprint[16] = {0xB6,0x1C,0x8F,0x58,0xDF,0x00,0xFE,0x6B,0x55,0xA6,0x2F,0x6A,0x45,0x70,0x38,0xDD};
 
 uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -1962,6 +1962,22 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         }
         break;
       case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->hostDescriptorId);
+          this->__isset.hostDescriptorId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->applicationDescriptorId);
+          this->__isset.applicationDescriptorId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->applicationInputs.clear();
@@ -1981,7 +1997,7 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 6:
+      case 8:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->applicationOutputs.clear();
@@ -2001,7 +2017,7 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 7:
+      case 9:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->taskScheduling.read(iprot);
           this->__isset.taskScheduling = true;
@@ -2009,7 +2025,7 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 8:
+      case 10:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->advancedInputDataHandling.read(iprot);
           this->__isset.advancedInputDataHandling = true;
@@ -2017,7 +2033,7 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 9:
+      case 11:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->advancedOutputDataHandling.read(iprot);
           this->__isset.advancedOutputDataHandling = true;
@@ -2025,7 +2041,7 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 10:
+      case 12:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->taskStatus.read(iprot);
           this->__isset.taskStatus = true;
@@ -2033,7 +2049,7 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 11:
+      case 13:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->jobDetailsList.clear();
@@ -2053,7 +2069,7 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 12:
+      case 14:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->dataTransferDetailsList.clear();
@@ -2073,7 +2089,7 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 13:
+      case 15:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
@@ -2130,8 +2146,18 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeString(this->applicationVersion);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.hostDescriptorId) {
+    xfer += oprot->writeFieldBegin("hostDescriptorId", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->hostDescriptorId);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.applicationDescriptorId) {
+    xfer += oprot->writeFieldBegin("applicationDescriptorId", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->applicationDescriptorId);
+    xfer += oprot->writeFieldEnd();
+  }
   if (this->__isset.applicationInputs) {
-    xfer += oprot->writeFieldBegin("applicationInputs", ::apache::thrift::protocol::T_LIST, 5);
+    xfer += oprot->writeFieldBegin("applicationInputs", ::apache::thrift::protocol::T_LIST, 7);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->applicationInputs.size()));
       std::vector<DataObjectType> ::const_iterator _iter46;
@@ -2144,7 +2170,7 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.applicationOutputs) {
-    xfer += oprot->writeFieldBegin("applicationOutputs", ::apache::thrift::protocol::T_LIST, 6);
+    xfer += oprot->writeFieldBegin("applicationOutputs", ::apache::thrift::protocol::T_LIST, 8);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->applicationOutputs.size()));
       std::vector<DataObjectType> ::const_iterator _iter47;
@@ -2157,27 +2183,27 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.taskScheduling) {
-    xfer += oprot->writeFieldBegin("taskScheduling", ::apache::thrift::protocol::T_STRUCT, 7);
+    xfer += oprot->writeFieldBegin("taskScheduling", ::apache::thrift::protocol::T_STRUCT, 9);
     xfer += this->taskScheduling.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.advancedInputDataHandling) {
-    xfer += oprot->writeFieldBegin("advancedInputDataHandling", ::apache::thrift::protocol::T_STRUCT, 8);
+    xfer += oprot->writeFieldBegin("advancedInputDataHandling", ::apache::thrift::protocol::T_STRUCT, 10);
     xfer += this->advancedInputDataHandling.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.advancedOutputDataHandling) {
-    xfer += oprot->writeFieldBegin("advancedOutputDataHandling", ::apache::thrift::protocol::T_STRUCT, 9);
+    xfer += oprot->writeFieldBegin("advancedOutputDataHandling", ::apache::thrift::protocol::T_STRUCT, 11);
     xfer += this->advancedOutputDataHandling.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.taskStatus) {
-    xfer += oprot->writeFieldBegin("taskStatus", ::apache::thrift::protocol::T_STRUCT, 10);
+    xfer += oprot->writeFieldBegin("taskStatus", ::apache::thrift::protocol::T_STRUCT, 12);
     xfer += this->taskStatus.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.jobDetailsList) {
-    xfer += oprot->writeFieldBegin("jobDetailsList", ::apache::thrift::protocol::T_LIST, 11);
+    xfer += oprot->writeFieldBegin("jobDetailsList", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobDetailsList.size()));
       std::vector<JobDetails> ::const_iterator _iter48;
@@ -2190,7 +2216,7 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.dataTransferDetailsList) {
-    xfer += oprot->writeFieldBegin("dataTransferDetailsList", ::apache::thrift::protocol::T_LIST, 12);
+    xfer += oprot->writeFieldBegin("dataTransferDetailsList", ::apache::thrift::protocol::T_LIST, 14);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->dataTransferDetailsList.size()));
       std::vector<DataTransferDetails> ::const_iterator _iter49;
@@ -2203,7 +2229,7 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.errors) {
-    xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 13);
+    xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 15);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
       std::vector<ErrorDetails> ::const_iterator _iter50;
@@ -2226,6 +2252,8 @@ void swap(TaskDetails &a, TaskDetails &b) {
   swap(a.creationTime, b.creationTime);
   swap(a.applicationId, b.applicationId);
   swap(a.applicationVersion, b.applicationVersion);
+  swap(a.hostDescriptorId, b.hostDescriptorId);
+  swap(a.applicationDescriptorId, b.applicationDescriptorId);
   swap(a.applicationInputs, b.applicationInputs);
   swap(a.applicationOutputs, b.applicationOutputs);
   swap(a.taskScheduling, b.taskScheduling);
@@ -2238,8 +2266,8 @@ void swap(TaskDetails &a, TaskDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* WorkflowNodeDetails::ascii_fingerprint = "5CF3D3D65F04E5D784A8123C81AAD941";
-const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0x5C,0xF3,0xD3,0xD6,0x5F,0x04,0xE5,0xD7,0x84,0xA8,0x12,0x3C,0x81,0xAA,0xD9,0x41};
+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};
 
 uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2662,8 +2690,8 @@ void swap(ValidationResults &a, ValidationResults &b) {
   swap(a.validationResultList, b.validationResultList);
 }
 
-const char* Experiment::ascii_fingerprint = "9991CE776AFA4D20B5AA55C2BB0136D4";
-const uint8_t Experiment::binary_fingerprint[16] = {0x99,0x91,0xCE,0x77,0x6A,0xFA,0x4D,0x20,0xB5,0xAA,0x55,0xC2,0xBB,0x01,0x36,0xD4};
+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};
 
 uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/b9c9d245/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 aeb411d..b10a263 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
@@ -13,7 +13,7 @@
 #include <thrift/transport/TTransport.h>
 
 #include <thrift/cxxfunctional.h>
-#include "applicationCatalogDataModel_types.h"
+#include "computeHostModel_types.h"
 
 
 
@@ -1309,10 +1309,12 @@ class DataTransferDetails {
 void swap(DataTransferDetails &a, DataTransferDetails &b);
 
 typedef struct _TaskDetails__isset {
-  _TaskDetails__isset() : creationTime(false), applicationId(false), applicationVersion(false), applicationInputs(false), applicationOutputs(false), taskScheduling(false), advancedInputDataHandling(false), advancedOutputDataHandling(false), taskStatus(false), jobDetailsList(false), dataTransferDetailsList(false), errors(false) {}
+  _TaskDetails__isset() : creationTime(false), applicationId(false), applicationVersion(false), hostDescriptorId(false), applicationDescriptorId(false), applicationInputs(false), applicationOutputs(false), taskScheduling(false), advancedInputDataHandling(false), advancedOutputDataHandling(false), taskStatus(false), jobDetailsList(false), dataTransferDetailsList(false), errors(false) {}
   bool creationTime;
   bool applicationId;
   bool applicationVersion;
+  bool hostDescriptorId;
+  bool applicationDescriptorId;
   bool applicationInputs;
   bool applicationOutputs;
   bool taskScheduling;
@@ -1327,10 +1329,10 @@ typedef struct _TaskDetails__isset {
 class TaskDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "5C32F41DCA106A1E9170C3F02C8F0431";
-  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x32,0xF4,0x1D,0xCA,0x10,0x6A,0x1E,0x91,0x70,0xC3,0xF0,0x2C,0x8F,0x04,0x31};
+  static const char* ascii_fingerprint; // = "B61C8F58DF00FE6B55A62F6A457038DD";
+  static const uint8_t binary_fingerprint[16]; // = {0xB6,0x1C,0x8F,0x58,0xDF,0x00,0xFE,0x6B,0x55,0xA6,0x2F,0x6A,0x45,0x70,0x38,0xDD};
 
-  TaskDetails() : taskID("DO_NOT_SET_AT_CLIENTS"), creationTime(0), applicationId(), applicationVersion() {
+  TaskDetails() : taskID("DO_NOT_SET_AT_CLIENTS"), creationTime(0), applicationId(), applicationVersion(), hostDescriptorId(), applicationDescriptorId() {
   }
 
   virtual ~TaskDetails() throw() {}
@@ -1339,6 +1341,8 @@ class TaskDetails {
   int64_t creationTime;
   std::string applicationId;
   std::string applicationVersion;
+  std::string hostDescriptorId;
+  std::string applicationDescriptorId;
   std::vector<DataObjectType>  applicationInputs;
   std::vector<DataObjectType>  applicationOutputs;
   ComputationalResourceScheduling taskScheduling;
@@ -1370,6 +1374,16 @@ class TaskDetails {
     __isset.applicationVersion = true;
   }
 
+  void __set_hostDescriptorId(const std::string& val) {
+    hostDescriptorId = val;
+    __isset.hostDescriptorId = true;
+  }
+
+  void __set_applicationDescriptorId(const std::string& val) {
+    applicationDescriptorId = val;
+    __isset.applicationDescriptorId = true;
+  }
+
   void __set_applicationInputs(const std::vector<DataObjectType> & val) {
     applicationInputs = val;
     __isset.applicationInputs = true;
@@ -1431,6 +1445,14 @@ class TaskDetails {
       return false;
     else if (__isset.applicationVersion && !(applicationVersion == rhs.applicationVersion))
       return false;
+    if (__isset.hostDescriptorId != rhs.__isset.hostDescriptorId)
+      return false;
+    else if (__isset.hostDescriptorId && !(hostDescriptorId == rhs.hostDescriptorId))
+      return false;
+    if (__isset.applicationDescriptorId != rhs.__isset.applicationDescriptorId)
+      return false;
+    else if (__isset.applicationDescriptorId && !(applicationDescriptorId == rhs.applicationDescriptorId))
+      return false;
     if (__isset.applicationInputs != rhs.__isset.applicationInputs)
       return false;
     else if (__isset.applicationInputs && !(applicationInputs == rhs.applicationInputs))
@@ -1495,8 +1517,8 @@ typedef struct _WorkflowNodeDetails__isset {
 class WorkflowNodeDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "5CF3D3D65F04E5D784A8123C81AAD941";
-  static const uint8_t binary_fingerprint[16]; // = {0x5C,0xF3,0xD3,0xD6,0x5F,0x04,0xE5,0xD7,0x84,0xA8,0x12,0x3C,0x81,0xAA,0xD9,0x41};
+  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};
 
   WorkflowNodeDetails() : nodeInstanceId("DO_NOT_SET_AT_CLIENTS"), creationTime(0), nodeName("SINGLE_APP_NODE") {
   }
@@ -1715,8 +1737,8 @@ typedef struct _Experiment__isset {
 class Experiment {
  public:
 
-  static const char* ascii_fingerprint; // = "9991CE776AFA4D20B5AA55C2BB0136D4";
-  static const uint8_t binary_fingerprint[16]; // = {0x99,0x91,0xCE,0x77,0x6A,0xFA,0x4D,0x20,0xB5,0xAA,0x55,0xC2,0xBB,0x01,0x36,0xD4};
+  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};
 
   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/b9c9d245/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 f031ddf..7135938 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
@@ -2330,6 +2330,8 @@ class TaskDetails {
   public $creationTime = null;
   public $applicationId = null;
   public $applicationVersion = null;
+  public $hostDescriptorId = null;
+  public $applicationDescriptorId = null;
   public $applicationInputs = null;
   public $applicationOutputs = null;
   public $taskScheduling = null;
@@ -2360,6 +2362,14 @@ class TaskDetails {
           'type' => TType::STRING,
           ),
         5 => array(
+          'var' => 'hostDescriptorId',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'applicationDescriptorId',
+          'type' => TType::STRING,
+          ),
+        7 => array(
           'var' => 'applicationInputs',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2368,7 +2378,7 @@ class TaskDetails {
             'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
             ),
           ),
-        6 => array(
+        8 => array(
           'var' => 'applicationOutputs',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2377,27 +2387,27 @@ class TaskDetails {
             'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
             ),
           ),
-        7 => array(
+        9 => array(
           'var' => 'taskScheduling',
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling',
           ),
-        8 => array(
+        10 => array(
           'var' => 'advancedInputDataHandling',
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Workspace\Experiment\AdvancedInputDataHandling',
           ),
-        9 => array(
+        11 => array(
           'var' => 'advancedOutputDataHandling',
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Workspace\Experiment\AdvancedOutputDataHandling',
           ),
-        10 => array(
+        12 => array(
           'var' => 'taskStatus',
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Workspace\Experiment\TaskStatus',
           ),
-        11 => array(
+        13 => array(
           'var' => 'jobDetailsList',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2406,7 +2416,7 @@ class TaskDetails {
             'class' => '\Airavata\Model\Workspace\Experiment\JobDetails',
             ),
           ),
-        12 => array(
+        14 => array(
           'var' => 'dataTransferDetailsList',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2415,7 +2425,7 @@ class TaskDetails {
             'class' => '\Airavata\Model\Workspace\Experiment\DataTransferDetails',
             ),
           ),
-        13 => array(
+        15 => array(
           'var' => 'errors',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -2439,6 +2449,12 @@ class TaskDetails {
       if (isset($vals['applicationVersion'])) {
         $this->applicationVersion = $vals['applicationVersion'];
       }
+      if (isset($vals['hostDescriptorId'])) {
+        $this->hostDescriptorId = $vals['hostDescriptorId'];
+      }
+      if (isset($vals['applicationDescriptorId'])) {
+        $this->applicationDescriptorId = $vals['applicationDescriptorId'];
+      }
       if (isset($vals['applicationInputs'])) {
         $this->applicationInputs = $vals['applicationInputs'];
       }
@@ -2517,6 +2533,20 @@ class TaskDetails {
           }
           break;
         case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->hostDescriptorId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->applicationDescriptorId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
           if ($ftype == TType::LST) {
             $this->applicationInputs = array();
             $_size14 = 0;
@@ -2534,7 +2564,7 @@ class TaskDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 6:
+        case 8:
           if ($ftype == TType::LST) {
             $this->applicationOutputs = array();
             $_size20 = 0;
@@ -2552,7 +2582,7 @@ class TaskDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 7:
+        case 9:
           if ($ftype == TType::STRUCT) {
             $this->taskScheduling = new \Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling();
             $xfer += $this->taskScheduling->read($input);
@@ -2560,7 +2590,7 @@ class TaskDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 8:
+        case 10:
           if ($ftype == TType::STRUCT) {
             $this->advancedInputDataHandling = new \Airavata\Model\Workspace\Experiment\AdvancedInputDataHandling();
             $xfer += $this->advancedInputDataHandling->read($input);
@@ -2568,7 +2598,7 @@ class TaskDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 9:
+        case 11:
           if ($ftype == TType::STRUCT) {
             $this->advancedOutputDataHandling = new \Airavata\Model\Workspace\Experiment\AdvancedOutputDataHandling();
             $xfer += $this->advancedOutputDataHandling->read($input);
@@ -2576,7 +2606,7 @@ class TaskDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 10:
+        case 12:
           if ($ftype == TType::STRUCT) {
             $this->taskStatus = new \Airavata\Model\Workspace\Experiment\TaskStatus();
             $xfer += $this->taskStatus->read($input);
@@ -2584,7 +2614,7 @@ class TaskDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 11:
+        case 13:
           if ($ftype == TType::LST) {
             $this->jobDetailsList = array();
             $_size26 = 0;
@@ -2602,7 +2632,7 @@ class TaskDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 12:
+        case 14:
           if ($ftype == TType::LST) {
             $this->dataTransferDetailsList = array();
             $_size32 = 0;
@@ -2620,7 +2650,7 @@ class TaskDetails {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 13:
+        case 15:
           if ($ftype == TType::LST) {
             $this->errors = array();
             $_size38 = 0;
@@ -2671,11 +2701,21 @@ class TaskDetails {
       $xfer += $output->writeString($this->applicationVersion);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->hostDescriptorId !== null) {
+      $xfer += $output->writeFieldBegin('hostDescriptorId', TType::STRING, 5);
+      $xfer += $output->writeString($this->hostDescriptorId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->applicationDescriptorId !== null) {
+      $xfer += $output->writeFieldBegin('applicationDescriptorId', TType::STRING, 6);
+      $xfer += $output->writeString($this->applicationDescriptorId);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->applicationInputs !== null) {
       if (!is_array($this->applicationInputs)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('applicationInputs', TType::LST, 5);
+      $xfer += $output->writeFieldBegin('applicationInputs', TType::LST, 7);
       {
         $output->writeListBegin(TType::STRUCT, count($this->applicationInputs));
         {
@@ -2692,7 +2732,7 @@ class TaskDetails {
       if (!is_array($this->applicationOutputs)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('applicationOutputs', TType::LST, 6);
+      $xfer += $output->writeFieldBegin('applicationOutputs', TType::LST, 8);
       {
         $output->writeListBegin(TType::STRUCT, count($this->applicationOutputs));
         {
@@ -2709,7 +2749,7 @@ class TaskDetails {
       if (!is_object($this->taskScheduling)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('taskScheduling', TType::STRUCT, 7);
+      $xfer += $output->writeFieldBegin('taskScheduling', TType::STRUCT, 9);
       $xfer += $this->taskScheduling->write($output);
       $xfer += $output->writeFieldEnd();
     }
@@ -2717,7 +2757,7 @@ class TaskDetails {
       if (!is_object($this->advancedInputDataHandling)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('advancedInputDataHandling', TType::STRUCT, 8);
+      $xfer += $output->writeFieldBegin('advancedInputDataHandling', TType::STRUCT, 10);
       $xfer += $this->advancedInputDataHandling->write($output);
       $xfer += $output->writeFieldEnd();
     }
@@ -2725,7 +2765,7 @@ class TaskDetails {
       if (!is_object($this->advancedOutputDataHandling)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('advancedOutputDataHandling', TType::STRUCT, 9);
+      $xfer += $output->writeFieldBegin('advancedOutputDataHandling', TType::STRUCT, 11);
       $xfer += $this->advancedOutputDataHandling->write($output);
       $xfer += $output->writeFieldEnd();
     }
@@ -2733,7 +2773,7 @@ class TaskDetails {
       if (!is_object($this->taskStatus)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('taskStatus', TType::STRUCT, 10);
+      $xfer += $output->writeFieldBegin('taskStatus', TType::STRUCT, 12);
       $xfer += $this->taskStatus->write($output);
       $xfer += $output->writeFieldEnd();
     }
@@ -2741,7 +2781,7 @@ class TaskDetails {
       if (!is_array($this->jobDetailsList)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('jobDetailsList', TType::LST, 11);
+      $xfer += $output->writeFieldBegin('jobDetailsList', TType::LST, 13);
       {
         $output->writeListBegin(TType::STRUCT, count($this->jobDetailsList));
         {
@@ -2758,7 +2798,7 @@ class TaskDetails {
       if (!is_array($this->dataTransferDetailsList)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('dataTransferDetailsList', TType::LST, 12);
+      $xfer += $output->writeFieldBegin('dataTransferDetailsList', TType::LST, 14);
       {
         $output->writeListBegin(TType::STRUCT, count($this->dataTransferDetailsList));
         {
@@ -2775,7 +2815,7 @@ class TaskDetails {
       if (!is_array($this->errors)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('errors', TType::LST, 13);
+      $xfer += $output->writeFieldBegin('errors', TType::LST, 15);
       {
         $output->writeListBegin(TType::STRUCT, count($this->errors));
         {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b9c9d245/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java
index 21114d0..14fee11 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java
@@ -61,15 +61,17 @@ import org.slf4j.LoggerFactory;
   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 APPLICATION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationId", org.apache.thrift.protocol.TType.STRING, (short)3);
   private static final org.apache.thrift.protocol.TField APPLICATION_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationVersion", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField APPLICATION_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInputs", org.apache.thrift.protocol.TType.LIST, (short)5);
-  private static final org.apache.thrift.protocol.TField APPLICATION_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationOutputs", org.apache.thrift.protocol.TType.LIST, (short)6);
-  private static final org.apache.thrift.protocol.TField TASK_SCHEDULING_FIELD_DESC = new org.apache.thrift.protocol.TField("taskScheduling", org.apache.thrift.protocol.TType.STRUCT, (short)7);
-  private static final org.apache.thrift.protocol.TField ADVANCED_INPUT_DATA_HANDLING_FIELD_DESC = new org.apache.thrift.protocol.TField("advancedInputDataHandling", org.apache.thrift.protocol.TType.STRUCT, (short)8);
-  private static final org.apache.thrift.protocol.TField ADVANCED_OUTPUT_DATA_HANDLING_FIELD_DESC = new org.apache.thrift.protocol.TField("advancedOutputDataHandling", org.apache.thrift.protocol.TType.STRUCT, (short)9);
-  private static final org.apache.thrift.protocol.TField TASK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatus", org.apache.thrift.protocol.TType.STRUCT, (short)10);
-  private static final org.apache.thrift.protocol.TField JOB_DETAILS_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("jobDetailsList", org.apache.thrift.protocol.TType.LIST, (short)11);
-  private static final org.apache.thrift.protocol.TField DATA_TRANSFER_DETAILS_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("dataTransferDetailsList", org.apache.thrift.protocol.TType.LIST, (short)12);
-  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)13);
+  private static final org.apache.thrift.protocol.TField HOST_DESCRIPTOR_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("hostDescriptorId", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField APPLICATION_DESCRIPTOR_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationDescriptorId", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField APPLICATION_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInputs", org.apache.thrift.protocol.TType.LIST, (short)7);
+  private static final org.apache.thrift.protocol.TField APPLICATION_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationOutputs", org.apache.thrift.protocol.TType.LIST, (short)8);
+  private static final org.apache.thrift.protocol.TField TASK_SCHEDULING_FIELD_DESC = new org.apache.thrift.protocol.TField("taskScheduling", org.apache.thrift.protocol.TType.STRUCT, (short)9);
+  private static final org.apache.thrift.protocol.TField ADVANCED_INPUT_DATA_HANDLING_FIELD_DESC = new org.apache.thrift.protocol.TField("advancedInputDataHandling", org.apache.thrift.protocol.TType.STRUCT, (short)10);
+  private static final org.apache.thrift.protocol.TField ADVANCED_OUTPUT_DATA_HANDLING_FIELD_DESC = new org.apache.thrift.protocol.TField("advancedOutputDataHandling", org.apache.thrift.protocol.TType.STRUCT, (short)11);
+  private static final org.apache.thrift.protocol.TField TASK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatus", org.apache.thrift.protocol.TType.STRUCT, (short)12);
+  private static final org.apache.thrift.protocol.TField JOB_DETAILS_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("jobDetailsList", org.apache.thrift.protocol.TType.LIST, (short)13);
+  private static final org.apache.thrift.protocol.TField DATA_TRANSFER_DETAILS_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("dataTransferDetailsList", org.apache.thrift.protocol.TType.LIST, (short)14);
+  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)15);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -81,6 +83,8 @@ import org.slf4j.LoggerFactory;
   private long creationTime; // optional
   private String applicationId; // optional
   private String applicationVersion; // optional
+  private String hostDescriptorId; // optional
+  private String applicationDescriptorId; // optional
   private List<DataObjectType> applicationInputs; // optional
   private List<DataObjectType> applicationOutputs; // optional
   private ComputationalResourceScheduling taskScheduling; // optional
@@ -97,15 +101,17 @@ import org.slf4j.LoggerFactory;
     CREATION_TIME((short)2, "creationTime"),
     APPLICATION_ID((short)3, "applicationId"),
     APPLICATION_VERSION((short)4, "applicationVersion"),
-    APPLICATION_INPUTS((short)5, "applicationInputs"),
-    APPLICATION_OUTPUTS((short)6, "applicationOutputs"),
-    TASK_SCHEDULING((short)7, "taskScheduling"),
-    ADVANCED_INPUT_DATA_HANDLING((short)8, "advancedInputDataHandling"),
-    ADVANCED_OUTPUT_DATA_HANDLING((short)9, "advancedOutputDataHandling"),
-    TASK_STATUS((short)10, "taskStatus"),
-    JOB_DETAILS_LIST((short)11, "jobDetailsList"),
-    DATA_TRANSFER_DETAILS_LIST((short)12, "dataTransferDetailsList"),
-    ERRORS((short)13, "errors");
+    HOST_DESCRIPTOR_ID((short)5, "hostDescriptorId"),
+    APPLICATION_DESCRIPTOR_ID((short)6, "applicationDescriptorId"),
+    APPLICATION_INPUTS((short)7, "applicationInputs"),
+    APPLICATION_OUTPUTS((short)8, "applicationOutputs"),
+    TASK_SCHEDULING((short)9, "taskScheduling"),
+    ADVANCED_INPUT_DATA_HANDLING((short)10, "advancedInputDataHandling"),
+    ADVANCED_OUTPUT_DATA_HANDLING((short)11, "advancedOutputDataHandling"),
+    TASK_STATUS((short)12, "taskStatus"),
+    JOB_DETAILS_LIST((short)13, "jobDetailsList"),
+    DATA_TRANSFER_DETAILS_LIST((short)14, "dataTransferDetailsList"),
+    ERRORS((short)15, "errors");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -128,23 +134,27 @@ import org.slf4j.LoggerFactory;
           return APPLICATION_ID;
         case 4: // APPLICATION_VERSION
           return APPLICATION_VERSION;
-        case 5: // APPLICATION_INPUTS
+        case 5: // HOST_DESCRIPTOR_ID
+          return HOST_DESCRIPTOR_ID;
+        case 6: // APPLICATION_DESCRIPTOR_ID
+          return APPLICATION_DESCRIPTOR_ID;
+        case 7: // APPLICATION_INPUTS
           return APPLICATION_INPUTS;
-        case 6: // APPLICATION_OUTPUTS
+        case 8: // APPLICATION_OUTPUTS
           return APPLICATION_OUTPUTS;
-        case 7: // TASK_SCHEDULING
+        case 9: // TASK_SCHEDULING
           return TASK_SCHEDULING;
-        case 8: // ADVANCED_INPUT_DATA_HANDLING
+        case 10: // ADVANCED_INPUT_DATA_HANDLING
           return ADVANCED_INPUT_DATA_HANDLING;
-        case 9: // ADVANCED_OUTPUT_DATA_HANDLING
+        case 11: // ADVANCED_OUTPUT_DATA_HANDLING
           return ADVANCED_OUTPUT_DATA_HANDLING;
-        case 10: // TASK_STATUS
+        case 12: // TASK_STATUS
           return TASK_STATUS;
-        case 11: // JOB_DETAILS_LIST
+        case 13: // JOB_DETAILS_LIST
           return JOB_DETAILS_LIST;
-        case 12: // DATA_TRANSFER_DETAILS_LIST
+        case 14: // DATA_TRANSFER_DETAILS_LIST
           return DATA_TRANSFER_DETAILS_LIST;
-        case 13: // ERRORS
+        case 15: // ERRORS
           return ERRORS;
         default:
           return null;
@@ -188,7 +198,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.APPLICATION_ID,_Fields.APPLICATION_VERSION,_Fields.APPLICATION_INPUTS,_Fields.APPLICATION_OUTPUTS,_Fields.TASK_SCHEDULING,_Fields.ADVANCED_INPUT_DATA_HANDLING,_Fields.ADVANCED_OUTPUT_DATA_HANDLING,_Fields.TASK_STATUS,_Fields.JOB_DETAILS_LIST,_Fields.DATA_TRANSFER_DETAILS_LIST,_Fields.ERRORS};
+  private _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.APPLICATION_ID,_Fields.APPLICATION_VERSION,_Fields.HOST_DESCRIPTOR_ID,_Fields.APPLICATION_DESCRIPTOR_ID,_Fields.APPLICATION_INPUTS,_Fields.APPLICATION_OUTPUTS,_Fields.TASK_SCHEDULING,_Fields.ADVANCED_INPUT_DATA_HANDLING,_Fields.ADVANCED_OUTPUT_DATA_HANDLING,_Fields.TASK_STATUS,_Fields.JOB_DETAILS_LIST,_Fields.DATA_TRANSFER_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);
@@ -200,6 +210,10 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.APPLICATION_VERSION, new org.apache.thrift.meta_data.FieldMetaData("applicationVersion", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.HOST_DESCRIPTOR_ID, new org.apache.thrift.meta_data.FieldMetaData("hostDescriptorId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APPLICATION_DESCRIPTOR_ID, new org.apache.thrift.meta_data.FieldMetaData("applicationDescriptorId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.APPLICATION_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("applicationInputs", 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))));
@@ -254,6 +268,12 @@ import org.slf4j.LoggerFactory;
     if (other.isSetApplicationVersion()) {
       this.applicationVersion = other.applicationVersion;
     }
+    if (other.isSetHostDescriptorId()) {
+      this.hostDescriptorId = other.hostDescriptorId;
+    }
+    if (other.isSetApplicationDescriptorId()) {
+      this.applicationDescriptorId = other.applicationDescriptorId;
+    }
     if (other.isSetApplicationInputs()) {
       List<DataObjectType> __this__applicationInputs = new ArrayList<DataObjectType>(other.applicationInputs.size());
       for (DataObjectType other_element : other.applicationInputs) {
@@ -315,6 +335,8 @@ import org.slf4j.LoggerFactory;
     this.creationTime = 0;
     this.applicationId = null;
     this.applicationVersion = null;
+    this.hostDescriptorId = null;
+    this.applicationDescriptorId = null;
     this.applicationInputs = null;
     this.applicationOutputs = null;
     this.taskScheduling = null;
@@ -417,6 +439,52 @@ import org.slf4j.LoggerFactory;
     }
   }
 
+  public String getHostDescriptorId() {
+    return this.hostDescriptorId;
+  }
+
+  public void setHostDescriptorId(String hostDescriptorId) {
+    this.hostDescriptorId = hostDescriptorId;
+  }
+
+  public void unsetHostDescriptorId() {
+    this.hostDescriptorId = null;
+  }
+
+  /** Returns true if field hostDescriptorId is set (has been assigned a value) and false otherwise */
+  public boolean isSetHostDescriptorId() {
+    return this.hostDescriptorId != null;
+  }
+
+  public void setHostDescriptorIdIsSet(boolean value) {
+    if (!value) {
+      this.hostDescriptorId = null;
+    }
+  }
+
+  public String getApplicationDescriptorId() {
+    return this.applicationDescriptorId;
+  }
+
+  public void setApplicationDescriptorId(String applicationDescriptorId) {
+    this.applicationDescriptorId = applicationDescriptorId;
+  }
+
+  public void unsetApplicationDescriptorId() {
+    this.applicationDescriptorId = null;
+  }
+
+  /** Returns true if field applicationDescriptorId is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationDescriptorId() {
+    return this.applicationDescriptorId != null;
+  }
+
+  public void setApplicationDescriptorIdIsSet(boolean value) {
+    if (!value) {
+      this.applicationDescriptorId = null;
+    }
+  }
+
   public int getApplicationInputsSize() {
     return (this.applicationInputs == null) ? 0 : this.applicationInputs.size();
   }
@@ -733,6 +801,22 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case HOST_DESCRIPTOR_ID:
+      if (value == null) {
+        unsetHostDescriptorId();
+      } else {
+        setHostDescriptorId((String)value);
+      }
+      break;
+
+    case APPLICATION_DESCRIPTOR_ID:
+      if (value == null) {
+        unsetApplicationDescriptorId();
+      } else {
+        setApplicationDescriptorId((String)value);
+      }
+      break;
+
     case APPLICATION_INPUTS:
       if (value == null) {
         unsetApplicationInputs();
@@ -822,6 +906,12 @@ import org.slf4j.LoggerFactory;
     case APPLICATION_VERSION:
       return getApplicationVersion();
 
+    case HOST_DESCRIPTOR_ID:
+      return getHostDescriptorId();
+
+    case APPLICATION_DESCRIPTOR_ID:
+      return getApplicationDescriptorId();
+
     case APPLICATION_INPUTS:
       return getApplicationInputs();
 
@@ -868,6 +958,10 @@ import org.slf4j.LoggerFactory;
       return isSetApplicationId();
     case APPLICATION_VERSION:
       return isSetApplicationVersion();
+    case HOST_DESCRIPTOR_ID:
+      return isSetHostDescriptorId();
+    case APPLICATION_DESCRIPTOR_ID:
+      return isSetApplicationDescriptorId();
     case APPLICATION_INPUTS:
       return isSetApplicationInputs();
     case APPLICATION_OUTPUTS:
@@ -939,6 +1033,24 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
+    boolean this_present_hostDescriptorId = true && this.isSetHostDescriptorId();
+    boolean that_present_hostDescriptorId = true && that.isSetHostDescriptorId();
+    if (this_present_hostDescriptorId || that_present_hostDescriptorId) {
+      if (!(this_present_hostDescriptorId && that_present_hostDescriptorId))
+        return false;
+      if (!this.hostDescriptorId.equals(that.hostDescriptorId))
+        return false;
+    }
+
+    boolean this_present_applicationDescriptorId = true && this.isSetApplicationDescriptorId();
+    boolean that_present_applicationDescriptorId = true && that.isSetApplicationDescriptorId();
+    if (this_present_applicationDescriptorId || that_present_applicationDescriptorId) {
+      if (!(this_present_applicationDescriptorId && that_present_applicationDescriptorId))
+        return false;
+      if (!this.applicationDescriptorId.equals(that.applicationDescriptorId))
+        return false;
+    }
+
     boolean this_present_applicationInputs = true && this.isSetApplicationInputs();
     boolean that_present_applicationInputs = true && that.isSetApplicationInputs();
     if (this_present_applicationInputs || that_present_applicationInputs) {
@@ -1076,6 +1188,26 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetHostDescriptorId()).compareTo(other.isSetHostDescriptorId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetHostDescriptorId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hostDescriptorId, other.hostDescriptorId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationDescriptorId()).compareTo(other.isSetApplicationDescriptorId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationDescriptorId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationDescriptorId, other.applicationDescriptorId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     lastComparison = Boolean.valueOf(isSetApplicationInputs()).compareTo(other.isSetApplicationInputs());
     if (lastComparison != 0) {
       return lastComparison;
@@ -1219,6 +1351,26 @@ import org.slf4j.LoggerFactory;
       }
       first = false;
     }
+    if (isSetHostDescriptorId()) {
+      if (!first) sb.append(", ");
+      sb.append("hostDescriptorId:");
+      if (this.hostDescriptorId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.hostDescriptorId);
+      }
+      first = false;
+    }
+    if (isSetApplicationDescriptorId()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationDescriptorId:");
+      if (this.applicationDescriptorId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationDescriptorId);
+      }
+      first = false;
+    }
     if (isSetApplicationInputs()) {
       if (!first) sb.append(", ");
       sb.append("applicationInputs:");
@@ -1402,7 +1554,23 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 5: // APPLICATION_INPUTS
+          case 5: // HOST_DESCRIPTOR_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.hostDescriptorId = iprot.readString();
+              struct.setHostDescriptorIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // APPLICATION_DESCRIPTOR_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationDescriptorId = iprot.readString();
+              struct.setApplicationDescriptorIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // APPLICATION_INPUTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list16 = iprot.readListBegin();
@@ -1421,7 +1589,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // APPLICATION_OUTPUTS
+          case 8: // APPLICATION_OUTPUTS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list19 = iprot.readListBegin();
@@ -1440,7 +1608,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 7: // TASK_SCHEDULING
+          case 9: // TASK_SCHEDULING
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.taskScheduling = new ComputationalResourceScheduling();
               struct.taskScheduling.read(iprot);
@@ -1449,7 +1617,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 8: // ADVANCED_INPUT_DATA_HANDLING
+          case 10: // ADVANCED_INPUT_DATA_HANDLING
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.advancedInputDataHandling = new AdvancedInputDataHandling();
               struct.advancedInputDataHandling.read(iprot);
@@ -1458,7 +1626,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 9: // ADVANCED_OUTPUT_DATA_HANDLING
+          case 11: // ADVANCED_OUTPUT_DATA_HANDLING
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.advancedOutputDataHandling = new AdvancedOutputDataHandling();
               struct.advancedOutputDataHandling.read(iprot);
@@ -1467,7 +1635,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 10: // TASK_STATUS
+          case 12: // TASK_STATUS
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.taskStatus = new TaskStatus();
               struct.taskStatus.read(iprot);
@@ -1476,7 +1644,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 11: // JOB_DETAILS_LIST
+          case 13: // JOB_DETAILS_LIST
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list22 = iprot.readListBegin();
@@ -1495,7 +1663,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 12: // DATA_TRANSFER_DETAILS_LIST
+          case 14: // DATA_TRANSFER_DETAILS_LIST
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list25 = iprot.readListBegin();
@@ -1514,7 +1682,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 13: // ERRORS
+          case 15: // ERRORS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list28 = iprot.readListBegin();
@@ -1570,6 +1738,20 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldEnd();
         }
       }
+      if (struct.hostDescriptorId != null) {
+        if (struct.isSetHostDescriptorId()) {
+          oprot.writeFieldBegin(HOST_DESCRIPTOR_ID_FIELD_DESC);
+          oprot.writeString(struct.hostDescriptorId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationDescriptorId != null) {
+        if (struct.isSetApplicationDescriptorId()) {
+          oprot.writeFieldBegin(APPLICATION_DESCRIPTOR_ID_FIELD_DESC);
+          oprot.writeString(struct.applicationDescriptorId);
+          oprot.writeFieldEnd();
+        }
+      }
       if (struct.applicationInputs != null) {
         if (struct.isSetApplicationInputs()) {
           oprot.writeFieldBegin(APPLICATION_INPUTS_FIELD_DESC);
@@ -1696,34 +1878,40 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetApplicationVersion()) {
         optionals.set(2);
       }
-      if (struct.isSetApplicationInputs()) {
+      if (struct.isSetHostDescriptorId()) {
         optionals.set(3);
       }
-      if (struct.isSetApplicationOutputs()) {
+      if (struct.isSetApplicationDescriptorId()) {
         optionals.set(4);
       }
-      if (struct.isSetTaskScheduling()) {
+      if (struct.isSetApplicationInputs()) {
         optionals.set(5);
       }
-      if (struct.isSetAdvancedInputDataHandling()) {
+      if (struct.isSetApplicationOutputs()) {
         optionals.set(6);
       }
-      if (struct.isSetAdvancedOutputDataHandling()) {
+      if (struct.isSetTaskScheduling()) {
         optionals.set(7);
       }
-      if (struct.isSetTaskStatus()) {
+      if (struct.isSetAdvancedInputDataHandling()) {
         optionals.set(8);
       }
-      if (struct.isSetJobDetailsList()) {
+      if (struct.isSetAdvancedOutputDataHandling()) {
         optionals.set(9);
       }
-      if (struct.isSetDataTransferDetailsList()) {
+      if (struct.isSetTaskStatus()) {
         optionals.set(10);
       }
-      if (struct.isSetErrors()) {
+      if (struct.isSetJobDetailsList()) {
         optionals.set(11);
       }
-      oprot.writeBitSet(optionals, 12);
+      if (struct.isSetDataTransferDetailsList()) {
+        optionals.set(12);
+      }
+      if (struct.isSetErrors()) {
+        optionals.set(13);
+      }
+      oprot.writeBitSet(optionals, 14);
       if (struct.isSetCreationTime()) {
         oprot.writeI64(struct.creationTime);
       }
@@ -1733,6 +1921,12 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetApplicationVersion()) {
         oprot.writeString(struct.applicationVersion);
       }
+      if (struct.isSetHostDescriptorId()) {
+        oprot.writeString(struct.hostDescriptorId);
+      }
+      if (struct.isSetApplicationDescriptorId()) {
+        oprot.writeString(struct.applicationDescriptorId);
+      }
       if (struct.isSetApplicationInputs()) {
         {
           oprot.writeI32(struct.applicationInputs.size());
@@ -1797,7 +1991,7 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.taskID = iprot.readString();
       struct.setTaskIDIsSet(true);
-      BitSet incoming = iprot.readBitSet(12);
+      BitSet incoming = iprot.readBitSet(14);
       if (incoming.get(0)) {
         struct.creationTime = iprot.readI64();
         struct.setCreationTimeIsSet(true);
@@ -1811,6 +2005,14 @@ import org.slf4j.LoggerFactory;
         struct.setApplicationVersionIsSet(true);
       }
       if (incoming.get(3)) {
+        struct.hostDescriptorId = iprot.readString();
+        struct.setHostDescriptorIdIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.applicationDescriptorId = iprot.readString();
+        struct.setApplicationDescriptorIdIsSet(true);
+      }
+      if (incoming.get(5)) {
         {
           org.apache.thrift.protocol.TList _list41 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.applicationInputs = new ArrayList<DataObjectType>(_list41.size);
@@ -1824,7 +2026,7 @@ import org.slf4j.LoggerFactory;
         }
         struct.setApplicationInputsIsSet(true);
       }
-      if (incoming.get(4)) {
+      if (incoming.get(6)) {
         {
           org.apache.thrift.protocol.TList _list44 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.applicationOutputs = new ArrayList<DataObjectType>(_list44.size);
@@ -1838,27 +2040,27 @@ import org.slf4j.LoggerFactory;
         }
         struct.setApplicationOutputsIsSet(true);
       }
-      if (incoming.get(5)) {
+      if (incoming.get(7)) {
         struct.taskScheduling = new ComputationalResourceScheduling();
         struct.taskScheduling.read(iprot);
         struct.setTaskSchedulingIsSet(true);
       }
-      if (incoming.get(6)) {
+      if (incoming.get(8)) {
         struct.advancedInputDataHandling = new AdvancedInputDataHandling();
         struct.advancedInputDataHandling.read(iprot);
         struct.setAdvancedInputDataHandlingIsSet(true);
       }
-      if (incoming.get(7)) {
+      if (incoming.get(9)) {
         struct.advancedOutputDataHandling = new AdvancedOutputDataHandling();
         struct.advancedOutputDataHandling.read(iprot);
         struct.setAdvancedOutputDataHandlingIsSet(true);
       }
-      if (incoming.get(8)) {
+      if (incoming.get(10)) {
         struct.taskStatus = new TaskStatus();
         struct.taskStatus.read(iprot);
         struct.setTaskStatusIsSet(true);
       }
-      if (incoming.get(9)) {
+      if (incoming.get(11)) {
         {
           org.apache.thrift.protocol.TList _list47 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.jobDetailsList = new ArrayList<JobDetails>(_list47.size);
@@ -1872,7 +2074,7 @@ import org.slf4j.LoggerFactory;
         }
         struct.setJobDetailsListIsSet(true);
       }
-      if (incoming.get(10)) {
+      if (incoming.get(12)) {
         {
           org.apache.thrift.protocol.TList _list50 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.dataTransferDetailsList = new ArrayList<DataTransferDetails>(_list50.size);
@@ -1886,7 +2088,7 @@ import org.slf4j.LoggerFactory;
         }
         struct.setDataTransferDetailsListIsSet(true);
       }
-      if (incoming.get(11)) {
+      if (incoming.get(13)) {
         {
           org.apache.thrift.protocol.TList _list53 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.errors = new ArrayList<ErrorDetails>(_list53.size);

http://git-wip-us.apache.org/repos/asf/airavata/blob/b9c9d245/airavata-api/generate-thrift-files.sh
----------------------------------------------------------------------
diff --git a/airavata-api/generate-thrift-files.sh b/airavata-api/generate-thrift-files.sh
index bb2aed9..4682e0d 100755
--- a/airavata-api/generate-thrift-files.sh
+++ b/airavata-api/generate-thrift-files.sh
@@ -123,7 +123,7 @@ rm -rf ${JAVA_BEAN_GEN_DIR}
 #   The airavataDataModel.thrift includes rest of data models.
 thrift ${THRIFT_ARGS} --gen java:beans ${THRIFT_IDL_DIR}/airavataDataModel.thrift || fail unable to generate java bean thrift classes on base data model
 
-thrift ${THRIFT_ARGS} --gen java:beans ${THRIFT_IDL_DIR}/applicationCatalogDataModel.thrift || fail unable to generate java bean thrift classes on app catalog data model
+thrift ${THRIFT_ARGS} --gen java:beans ${THRIFT_IDL_DIR}/computeHostModel.thrift || fail unable to generate java bean thrift classes on app catalog data model
 
 # For the generated java beans add the ASF V2 License header
 add_license_header ${JAVA_BEAN_GEN_DIR}