You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/10/12 23:17:46 UTC

airavata git commit: Adding thrift model changes

Repository: airavata
Updated Branches:
  refs/heads/orchestratorTaskBreakdown af295229a -> 930a222fe


Adding thrift model changes


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

Branch: refs/heads/orchestratorTaskBreakdown
Commit: 930a222fed86365863210283b2cfb6cd8ca1cb06
Parents: af29522
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Mon Oct 12 17:17:35 2015 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Mon Oct 12 17:17:35 2015 -0400

----------------------------------------------------------------------
 .../resources/lib/airavata/task_model_types.cpp | 114 ++++-
 .../resources/lib/airavata/task_model_types.h   |  47 ++-
 .../resources/lib/Airavata/Model/Task/Types.php |  79 +++-
 .../lib/apache/airavata/model/task/ttypes.py    |  69 ++-
 .../model/task/JobSubmissionTaskModel.java      | 118 +++---
 .../airavata/model/task/MonitorTaskModel.java   | 418 +++++++++++++++++++
 .../airavata/common/utils/ThriftUtils.java      |  14 +-
 .../airavata-api/task_model.thrift              |   4 +
 8 files changed, 780 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/930a222f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
index f152671..f93ac6c 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
@@ -659,8 +659,8 @@ JobSubmissionTaskModel::~JobSubmissionTaskModel() throw() {
 }
 
 
-void JobSubmissionTaskModel::__set_monitorMode(const  ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type val) {
-  this->monitorMode = val;
+void JobSubmissionTaskModel::__set_jobSubmissionProtocol(const  ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type val) {
+  this->jobSubmissionProtocol = val;
 }
 
 const char* JobSubmissionTaskModel::ascii_fingerprint = "8BBB3D0C3B370CB38F2D1340BB79F0AA";
@@ -677,7 +677,7 @@ uint32_t JobSubmissionTaskModel::read(::apache::thrift::protocol::TProtocol* ipr
 
   using ::apache::thrift::protocol::TProtocolException;
 
-  bool isset_monitorMode = false;
+  bool isset_jobSubmissionProtocol = false;
 
   while (true)
   {
@@ -691,8 +691,8 @@ uint32_t JobSubmissionTaskModel::read(::apache::thrift::protocol::TProtocol* ipr
         if (ftype == ::apache::thrift::protocol::T_I32) {
           int32_t ecast9;
           xfer += iprot->readI32(ecast9);
-          this->monitorMode = ( ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type)ecast9;
-          isset_monitorMode = true;
+          this->jobSubmissionProtocol = ( ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type)ecast9;
+          isset_jobSubmissionProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -706,7 +706,7 @@ uint32_t JobSubmissionTaskModel::read(::apache::thrift::protocol::TProtocol* ipr
 
   xfer += iprot->readStructEnd();
 
-  if (!isset_monitorMode)
+  if (!isset_jobSubmissionProtocol)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
@@ -716,8 +716,8 @@ uint32_t JobSubmissionTaskModel::write(::apache::thrift::protocol::TProtocol* op
   oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("JobSubmissionTaskModel");
 
-  xfer += oprot->writeFieldBegin("monitorMode", ::apache::thrift::protocol::T_I32, 1);
-  xfer += oprot->writeI32((int32_t)this->monitorMode);
+  xfer += oprot->writeFieldBegin("jobSubmissionProtocol", ::apache::thrift::protocol::T_I32, 1);
+  xfer += oprot->writeI32((int32_t)this->jobSubmissionProtocol);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -728,19 +728,111 @@ uint32_t JobSubmissionTaskModel::write(::apache::thrift::protocol::TProtocol* op
 
 void swap(JobSubmissionTaskModel &a, JobSubmissionTaskModel &b) {
   using ::std::swap;
-  swap(a.monitorMode, b.monitorMode);
+  swap(a.jobSubmissionProtocol, b.jobSubmissionProtocol);
 }
 
 JobSubmissionTaskModel::JobSubmissionTaskModel(const JobSubmissionTaskModel& other10) {
-  monitorMode = other10.monitorMode;
+  jobSubmissionProtocol = other10.jobSubmissionProtocol;
 }
 JobSubmissionTaskModel& JobSubmissionTaskModel::operator=(const JobSubmissionTaskModel& other11) {
-  monitorMode = other11.monitorMode;
+  jobSubmissionProtocol = other11.jobSubmissionProtocol;
   return *this;
 }
 std::ostream& operator<<(std::ostream& out, const JobSubmissionTaskModel& obj) {
   using apache::thrift::to_string;
   out << "JobSubmissionTaskModel(";
+  out << "jobSubmissionProtocol=" << to_string(obj.jobSubmissionProtocol);
+  out << ")";
+  return out;
+}
+
+
+MonitorTaskModel::~MonitorTaskModel() throw() {
+}
+
+
+void MonitorTaskModel::__set_monitorMode(const  ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type val) {
+  this->monitorMode = val;
+}
+
+const char* MonitorTaskModel::ascii_fingerprint = "8BBB3D0C3B370CB38F2D1340BB79F0AA";
+const uint8_t MonitorTaskModel::binary_fingerprint[16] = {0x8B,0xBB,0x3D,0x0C,0x3B,0x37,0x0C,0xB3,0x8F,0x2D,0x13,0x40,0xBB,0x79,0xF0,0xAA};
+
+uint32_t MonitorTaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_monitorMode = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast12;
+          xfer += iprot->readI32(ecast12);
+          this->monitorMode = ( ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type)ecast12;
+          isset_monitorMode = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_monitorMode)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t MonitorTaskModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("MonitorTaskModel");
+
+  xfer += oprot->writeFieldBegin("monitorMode", ::apache::thrift::protocol::T_I32, 1);
+  xfer += oprot->writeI32((int32_t)this->monitorMode);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+void swap(MonitorTaskModel &a, MonitorTaskModel &b) {
+  using ::std::swap;
+  swap(a.monitorMode, b.monitorMode);
+}
+
+MonitorTaskModel::MonitorTaskModel(const MonitorTaskModel& other13) {
+  monitorMode = other13.monitorMode;
+}
+MonitorTaskModel& MonitorTaskModel::operator=(const MonitorTaskModel& other14) {
+  monitorMode = other14.monitorMode;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const MonitorTaskModel& obj) {
+  using apache::thrift::to_string;
+  out << "MonitorTaskModel(";
   out << "monitorMode=" << to_string(obj.monitorMode);
   out << ")";
   return out;

http://git-wip-us.apache.org/repos/asf/airavata/blob/930a222f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
index aa353e1..b7218be 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
@@ -68,6 +68,8 @@ class EnvironmentSetupTaskModel;
 
 class JobSubmissionTaskModel;
 
+class MonitorTaskModel;
+
 typedef struct _TaskModel__isset {
   _TaskModel__isset() : taskDetail(false), subTaskModel(false), taskError(false) {}
   bool taskDetail :1;
@@ -286,17 +288,17 @@ class JobSubmissionTaskModel {
 
   JobSubmissionTaskModel(const JobSubmissionTaskModel&);
   JobSubmissionTaskModel& operator=(const JobSubmissionTaskModel&);
-  JobSubmissionTaskModel() : monitorMode(( ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type)0) {
+  JobSubmissionTaskModel() : jobSubmissionProtocol(( ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type)0) {
   }
 
   virtual ~JobSubmissionTaskModel() throw();
-   ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type monitorMode;
+   ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type jobSubmissionProtocol;
 
-  void __set_monitorMode(const  ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type val);
+  void __set_jobSubmissionProtocol(const  ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type val);
 
   bool operator == (const JobSubmissionTaskModel & rhs) const
   {
-    if (!(monitorMode == rhs.monitorMode))
+    if (!(jobSubmissionProtocol == rhs.jobSubmissionProtocol))
       return false;
     return true;
   }
@@ -314,6 +316,43 @@ class JobSubmissionTaskModel {
 
 void swap(JobSubmissionTaskModel &a, JobSubmissionTaskModel &b);
 
+
+class MonitorTaskModel {
+ public:
+
+  static const char* ascii_fingerprint; // = "8BBB3D0C3B370CB38F2D1340BB79F0AA";
+  static const uint8_t binary_fingerprint[16]; // = {0x8B,0xBB,0x3D,0x0C,0x3B,0x37,0x0C,0xB3,0x8F,0x2D,0x13,0x40,0xBB,0x79,0xF0,0xAA};
+
+  MonitorTaskModel(const MonitorTaskModel&);
+  MonitorTaskModel& operator=(const MonitorTaskModel&);
+  MonitorTaskModel() : monitorMode(( ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type)0) {
+  }
+
+  virtual ~MonitorTaskModel() throw();
+   ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type monitorMode;
+
+  void __set_monitorMode(const  ::apache::airavata::model::appcatalog::computeresource::MonitorMode::type val);
+
+  bool operator == (const MonitorTaskModel & rhs) const
+  {
+    if (!(monitorMode == rhs.monitorMode))
+      return false;
+    return true;
+  }
+  bool operator != (const MonitorTaskModel &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const MonitorTaskModel & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const MonitorTaskModel& obj);
+};
+
+void swap(MonitorTaskModel &a, MonitorTaskModel &b);
+
 }}}} // namespace
 
 #endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/930a222f/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
index 704b406..0393d7a 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
@@ -628,6 +628,81 @@ class JobSubmissionTaskModel {
   /**
    * @var int
    */
+  public $jobSubmissionProtocol = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'jobSubmissionProtocol',
+          'type' => TType::I32,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['jobSubmissionProtocol'])) {
+        $this->jobSubmissionProtocol = $vals['jobSubmissionProtocol'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'JobSubmissionTaskModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->jobSubmissionProtocol);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('JobSubmissionTaskModel');
+    if ($this->jobSubmissionProtocol !== null) {
+      $xfer += $output->writeFieldBegin('jobSubmissionProtocol', TType::I32, 1);
+      $xfer += $output->writeI32($this->jobSubmissionProtocol);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class MonitorTaskModel {
+  static $_TSPEC;
+
+  /**
+   * @var int
+   */
   public $monitorMode = null;
 
   public function __construct($vals=null) {
@@ -647,7 +722,7 @@ class JobSubmissionTaskModel {
   }
 
   public function getName() {
-    return 'JobSubmissionTaskModel';
+    return 'MonitorTaskModel';
   }
 
   public function read($input)
@@ -684,7 +759,7 @@ class JobSubmissionTaskModel {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('JobSubmissionTaskModel');
+    $xfer += $output->writeStructBegin('MonitorTaskModel');
     if ($this->monitorMode !== null) {
       $xfer += $output->writeFieldBegin('monitorMode', TType::I32, 1);
       $xfer += $output->writeI32($this->monitorMode);

http://git-wip-us.apache.org/repos/asf/airavata/blob/930a222f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
index 8833e7e..fe37a7c 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
@@ -484,6 +484,73 @@ class EnvironmentSetupTaskModel:
 class JobSubmissionTaskModel:
   """
   Attributes:
+   - jobSubmissionProtocol
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.I32, 'jobSubmissionProtocol', None, None, ), # 1
+  )
+
+  def __init__(self, jobSubmissionProtocol=None,):
+    self.jobSubmissionProtocol = jobSubmissionProtocol
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.I32:
+          self.jobSubmissionProtocol = iprot.readI32();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('JobSubmissionTaskModel')
+    if self.jobSubmissionProtocol is not None:
+      oprot.writeFieldBegin('jobSubmissionProtocol', TType.I32, 1)
+      oprot.writeI32(self.jobSubmissionProtocol)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.jobSubmissionProtocol is None:
+      raise TProtocol.TProtocolException(message='Required field jobSubmissionProtocol is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.jobSubmissionProtocol)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class MonitorTaskModel:
+  """
+  Attributes:
    - monitorMode
   """
 
@@ -518,7 +585,7 @@ class JobSubmissionTaskModel:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('JobSubmissionTaskModel')
+    oprot.writeStructBegin('MonitorTaskModel')
     if self.monitorMode is not None:
       oprot.writeFieldBegin('monitorMode', TType.I32, 1)
       oprot.writeI32(self.monitorMode)

http://git-wip-us.apache.org/repos/asf/airavata/blob/930a222f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
index c33209d..54c0b04 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
 public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel");
 
-  private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionProtocol", org.apache.thrift.protocol.TType.I32, (short)1);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -63,15 +63,15 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
     schemes.put(TupleScheme.class, new JobSubmissionTaskModelTupleSchemeFactory());
   }
 
-  private org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode; // required
+  private org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol jobSubmissionProtocol; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     /**
      * 
-     * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+     * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
      */
-    MONITOR_MODE((short)1, "monitorMode");
+    JOB_SUBMISSION_PROTOCOL((short)1, "jobSubmissionProtocol");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -86,8 +86,8 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
      */
     public static _Fields findByThriftId(int fieldId) {
       switch(fieldId) {
-        case 1: // MONITOR_MODE
-          return MONITOR_MODE;
+        case 1: // JOB_SUBMISSION_PROTOCOL
+          return JOB_SUBMISSION_PROTOCOL;
         default:
           return null;
       }
@@ -131,8 +131,8 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.appcatalog.computeresource.MonitorMode.class)));
+    tmpMap.put(_Fields.JOB_SUBMISSION_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.class)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobSubmissionTaskModel.class, metaDataMap);
   }
@@ -141,18 +141,18 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
   }
 
   public JobSubmissionTaskModel(
-    org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode)
+    org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol jobSubmissionProtocol)
   {
     this();
-    this.monitorMode = monitorMode;
+    this.jobSubmissionProtocol = jobSubmissionProtocol;
   }
 
   /**
    * Performs a deep copy on <i>other</i>.
    */
   public JobSubmissionTaskModel(JobSubmissionTaskModel other) {
-    if (other.isSetMonitorMode()) {
-      this.monitorMode = other.monitorMode;
+    if (other.isSetJobSubmissionProtocol()) {
+      this.jobSubmissionProtocol = other.jobSubmissionProtocol;
     }
   }
 
@@ -162,47 +162,47 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
 
   @Override
   public void clear() {
-    this.monitorMode = null;
+    this.jobSubmissionProtocol = null;
   }
 
   /**
    * 
-   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
    */
-  public org.apache.airavata.model.appcatalog.computeresource.MonitorMode getMonitorMode() {
-    return this.monitorMode;
+  public org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol getJobSubmissionProtocol() {
+    return this.jobSubmissionProtocol;
   }
 
   /**
    * 
-   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
    */
-  public void setMonitorMode(org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode) {
-    this.monitorMode = monitorMode;
+  public void setJobSubmissionProtocol(org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol jobSubmissionProtocol) {
+    this.jobSubmissionProtocol = jobSubmissionProtocol;
   }
 
-  public void unsetMonitorMode() {
-    this.monitorMode = null;
+  public void unsetJobSubmissionProtocol() {
+    this.jobSubmissionProtocol = null;
   }
 
-  /** Returns true if field monitorMode is set (has been assigned a value) and false otherwise */
-  public boolean isSetMonitorMode() {
-    return this.monitorMode != null;
+  /** Returns true if field jobSubmissionProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionProtocol() {
+    return this.jobSubmissionProtocol != null;
   }
 
-  public void setMonitorModeIsSet(boolean value) {
+  public void setJobSubmissionProtocolIsSet(boolean value) {
     if (!value) {
-      this.monitorMode = null;
+      this.jobSubmissionProtocol = null;
     }
   }
 
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
-    case MONITOR_MODE:
+    case JOB_SUBMISSION_PROTOCOL:
       if (value == null) {
-        unsetMonitorMode();
+        unsetJobSubmissionProtocol();
       } else {
-        setMonitorMode((org.apache.airavata.model.appcatalog.computeresource.MonitorMode)value);
+        setJobSubmissionProtocol((org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol)value);
       }
       break;
 
@@ -211,8 +211,8 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
 
   public Object getFieldValue(_Fields field) {
     switch (field) {
-    case MONITOR_MODE:
-      return getMonitorMode();
+    case JOB_SUBMISSION_PROTOCOL:
+      return getJobSubmissionProtocol();
 
     }
     throw new IllegalStateException();
@@ -225,8 +225,8 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
     }
 
     switch (field) {
-    case MONITOR_MODE:
-      return isSetMonitorMode();
+    case JOB_SUBMISSION_PROTOCOL:
+      return isSetJobSubmissionProtocol();
     }
     throw new IllegalStateException();
   }
@@ -244,12 +244,12 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
     if (that == null)
       return false;
 
-    boolean this_present_monitorMode = true && this.isSetMonitorMode();
-    boolean that_present_monitorMode = true && that.isSetMonitorMode();
-    if (this_present_monitorMode || that_present_monitorMode) {
-      if (!(this_present_monitorMode && that_present_monitorMode))
+    boolean this_present_jobSubmissionProtocol = true && this.isSetJobSubmissionProtocol();
+    boolean that_present_jobSubmissionProtocol = true && that.isSetJobSubmissionProtocol();
+    if (this_present_jobSubmissionProtocol || that_present_jobSubmissionProtocol) {
+      if (!(this_present_jobSubmissionProtocol && that_present_jobSubmissionProtocol))
         return false;
-      if (!this.monitorMode.equals(that.monitorMode))
+      if (!this.jobSubmissionProtocol.equals(that.jobSubmissionProtocol))
         return false;
     }
 
@@ -260,10 +260,10 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
   public int hashCode() {
     List<Object> list = new ArrayList<Object>();
 
-    boolean present_monitorMode = true && (isSetMonitorMode());
-    list.add(present_monitorMode);
-    if (present_monitorMode)
-      list.add(monitorMode.getValue());
+    boolean present_jobSubmissionProtocol = true && (isSetJobSubmissionProtocol());
+    list.add(present_jobSubmissionProtocol);
+    if (present_jobSubmissionProtocol)
+      list.add(jobSubmissionProtocol.getValue());
 
     return list.hashCode();
   }
@@ -276,12 +276,12 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
 
     int lastComparison = 0;
 
-    lastComparison = Boolean.valueOf(isSetMonitorMode()).compareTo(other.isSetMonitorMode());
+    lastComparison = Boolean.valueOf(isSetJobSubmissionProtocol()).compareTo(other.isSetJobSubmissionProtocol());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetMonitorMode()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.monitorMode, other.monitorMode);
+    if (isSetJobSubmissionProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionProtocol, other.jobSubmissionProtocol);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -306,11 +306,11 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
     StringBuilder sb = new StringBuilder("JobSubmissionTaskModel(");
     boolean first = true;
 
-    sb.append("monitorMode:");
-    if (this.monitorMode == null) {
+    sb.append("jobSubmissionProtocol:");
+    if (this.jobSubmissionProtocol == null) {
       sb.append("null");
     } else {
-      sb.append(this.monitorMode);
+      sb.append(this.jobSubmissionProtocol);
     }
     first = false;
     sb.append(")");
@@ -319,8 +319,8 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
 
   public void validate() throws org.apache.thrift.TException {
     // check for required fields
-    if (!isSetMonitorMode()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'monitorMode' is unset! Struct:" + toString());
+    if (!isSetJobSubmissionProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionProtocol' is unset! Struct:" + toString());
     }
 
     // check for sub-struct validity
@@ -360,10 +360,10 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
           break;
         }
         switch (schemeField.id) {
-          case 1: // MONITOR_MODE
+          case 1: // JOB_SUBMISSION_PROTOCOL
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
-              struct.setMonitorModeIsSet(true);
+              struct.jobSubmissionProtocol = org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.findByValue(iprot.readI32());
+              struct.setJobSubmissionProtocolIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -381,9 +381,9 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
       struct.validate();
 
       oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.monitorMode != null) {
-        oprot.writeFieldBegin(MONITOR_MODE_FIELD_DESC);
-        oprot.writeI32(struct.monitorMode.getValue());
+      if (struct.jobSubmissionProtocol != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.jobSubmissionProtocol.getValue());
         oprot.writeFieldEnd();
       }
       oprot.writeFieldStop();
@@ -403,14 +403,14 @@ public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmis
     @Override
     public void write(org.apache.thrift.protocol.TProtocol prot, JobSubmissionTaskModel struct) throws org.apache.thrift.TException {
       TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeI32(struct.monitorMode.getValue());
+      oprot.writeI32(struct.jobSubmissionProtocol.getValue());
     }
 
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, JobSubmissionTaskModel struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
-      struct.setMonitorModeIsSet(true);
+      struct.jobSubmissionProtocol = org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.findByValue(iprot.readI32());
+      struct.setJobSubmissionProtocolIsSet(true);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/930a222f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
new file mode 100644
index 0000000..0a7b812
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@ -0,0 +1,418 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.task;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-10-12")
+public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel");
+
+  private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.I32, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new MonitorTaskModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new MonitorTaskModelTupleSchemeFactory());
+  }
+
+  private org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+     */
+    MONITOR_MODE((short)1, "monitorMode");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // MONITOR_MODE
+          return MONITOR_MODE;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.appcatalog.computeresource.MonitorMode.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(MonitorTaskModel.class, metaDataMap);
+  }
+
+  public MonitorTaskModel() {
+  }
+
+  public MonitorTaskModel(
+    org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode)
+  {
+    this();
+    this.monitorMode = monitorMode;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public MonitorTaskModel(MonitorTaskModel other) {
+    if (other.isSetMonitorMode()) {
+      this.monitorMode = other.monitorMode;
+    }
+  }
+
+  public MonitorTaskModel deepCopy() {
+    return new MonitorTaskModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.monitorMode = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.MonitorMode getMonitorMode() {
+    return this.monitorMode;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   */
+  public void setMonitorMode(org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode) {
+    this.monitorMode = monitorMode;
+  }
+
+  public void unsetMonitorMode() {
+    this.monitorMode = null;
+  }
+
+  /** Returns true if field monitorMode is set (has been assigned a value) and false otherwise */
+  public boolean isSetMonitorMode() {
+    return this.monitorMode != null;
+  }
+
+  public void setMonitorModeIsSet(boolean value) {
+    if (!value) {
+      this.monitorMode = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case MONITOR_MODE:
+      if (value == null) {
+        unsetMonitorMode();
+      } else {
+        setMonitorMode((org.apache.airavata.model.appcatalog.computeresource.MonitorMode)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case MONITOR_MODE:
+      return getMonitorMode();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case MONITOR_MODE:
+      return isSetMonitorMode();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof MonitorTaskModel)
+      return this.equals((MonitorTaskModel)that);
+    return false;
+  }
+
+  public boolean equals(MonitorTaskModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_monitorMode = true && this.isSetMonitorMode();
+    boolean that_present_monitorMode = true && that.isSetMonitorMode();
+    if (this_present_monitorMode || that_present_monitorMode) {
+      if (!(this_present_monitorMode && that_present_monitorMode))
+        return false;
+      if (!this.monitorMode.equals(that.monitorMode))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_monitorMode = true && (isSetMonitorMode());
+    list.add(present_monitorMode);
+    if (present_monitorMode)
+      list.add(monitorMode.getValue());
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(MonitorTaskModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMonitorMode()).compareTo(other.isSetMonitorMode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMonitorMode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.monitorMode, other.monitorMode);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("MonitorTaskModel(");
+    boolean first = true;
+
+    sb.append("monitorMode:");
+    if (this.monitorMode == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.monitorMode);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetMonitorMode()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'monitorMode' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class MonitorTaskModelStandardSchemeFactory implements SchemeFactory {
+    public MonitorTaskModelStandardScheme getScheme() {
+      return new MonitorTaskModelStandardScheme();
+    }
+  }
+
+  private static class MonitorTaskModelStandardScheme extends StandardScheme<MonitorTaskModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, MonitorTaskModel struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // MONITOR_MODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
+              struct.setMonitorModeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, MonitorTaskModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.monitorMode != null) {
+        oprot.writeFieldBegin(MONITOR_MODE_FIELD_DESC);
+        oprot.writeI32(struct.monitorMode.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class MonitorTaskModelTupleSchemeFactory implements SchemeFactory {
+    public MonitorTaskModelTupleScheme getScheme() {
+      return new MonitorTaskModelTupleScheme();
+    }
+  }
+
+  private static class MonitorTaskModelTupleScheme extends TupleScheme<MonitorTaskModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, MonitorTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.monitorMode.getValue());
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, MonitorTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
+      struct.setMonitorModeIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/930a222f/modules/commons/src/main/java/org/apache/airavata/common/utils/ThriftUtils.java
----------------------------------------------------------------------
diff --git a/modules/commons/src/main/java/org/apache/airavata/common/utils/ThriftUtils.java b/modules/commons/src/main/java/org/apache/airavata/common/utils/ThriftUtils.java
index 7b3189d..c30527e 100644
--- a/modules/commons/src/main/java/org/apache/airavata/common/utils/ThriftUtils.java
+++ b/modules/commons/src/main/java/org/apache/airavata/common/utils/ThriftUtils.java
@@ -21,9 +21,7 @@
 
 package org.apache.airavata.common.utils;
 
-import org.apache.airavata.model.task.DataStagingTaskModel;
-import org.apache.airavata.model.task.EnvironmentSetupTaskModel;
-import org.apache.airavata.model.task.TaskModel;
+import org.apache.airavata.model.task.*;
 import org.apache.thrift.TBase;
 import org.apache.thrift.TDeserializer;
 import org.apache.thrift.TException;
@@ -49,9 +47,13 @@ public class ThriftUtils {
                 ThriftUtils.createThriftFromBytes(taskModel.getSubTaskModel(), environmentSetupTaskModel);
                 return environmentSetupTaskModel;
 			case JOB_SUBMISSION:
-				// TODO return Job Submission task model
-			case MONITORING:
-				// TODO return Job Monitoring task model
+                JobSubmissionTaskModel jobSubmissionTaskModel = new JobSubmissionTaskModel();
+                ThriftUtils.createThriftFromBytes(taskModel.getSubTaskModel(), jobSubmissionTaskModel);
+                return jobSubmissionTaskModel;
+            case MONITORING:
+                MonitorTaskModel monitorTaskModel = new MonitorTaskModel();
+                ThriftUtils.createThriftFromBytes(taskModel.getSubTaskModel(), monitorTaskModel);
+                return monitorTaskModel;
 			case ENV_CLEANUP:
 				// TODO return Environment Clean up task  model
 			default:

http://git-wip-us.apache.org/repos/asf/airavata/blob/930a222f/thrift-interface-descriptions/airavata-api/task_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-api/task_model.thrift b/thrift-interface-descriptions/airavata-api/task_model.thrift
index c4051ac..8f5982c 100644
--- a/thrift-interface-descriptions/airavata-api/task_model.thrift
+++ b/thrift-interface-descriptions/airavata-api/task_model.thrift
@@ -92,5 +92,9 @@ struct EnvironmentSetupTaskModel {
 
 
 struct JobSubmissionTaskModel {
+	1: required compute_resource_model.JobSubmissionProtocol jobSubmissionProtocol
+}
+
+struct MonitorTaskModel {
 	1: required compute_resource_model.MonitorMode monitorMode
 }
\ No newline at end of file