airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From scnakand...@apache.org
Subject [1/2] airavata git commit: adding api changes to get detailed experiment tree
Date Tue, 17 Nov 2015 20:08:38 GMT
Repository: airavata
Updated Branches:
  refs/heads/develop a6de53904 -> 4f7af6a9a


http://git-wip-us.apache.org/repos/asf/airavata/blob/4f7af6a9/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
index fd56220..d01c0d0 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Experiment/Types.php
@@ -355,6 +355,10 @@ class ExperimentModel {
    * @var \Airavata\Model\Commons\ErrorModel[]
    */
   public $errors = null;
+  /**
+   * @var \Airavata\Model\Process\ProcessModel[]
+   */
+  public $processes = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -448,6 +452,15 @@ class ExperimentModel {
             'class' => '\Airavata\Model\Commons\ErrorModel',
             ),
           ),
+        18 => array(
+          'var' => 'processes',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Process\ProcessModel',
+            ),
+          ),
         );
     }
     if (is_array($vals)) {
@@ -502,6 +515,9 @@ class ExperimentModel {
       if (isset($vals['errors'])) {
         $this->errors = $vals['errors'];
       }
+      if (isset($vals['processes'])) {
+        $this->processes = $vals['processes'];
+      }
     }
   }
 
@@ -688,6 +704,24 @@ class ExperimentModel {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 18:
+          if ($ftype == TType::LST) {
+            $this->processes = array();
+            $_size24 = 0;
+            $_etype27 = 0;
+            $xfer += $input->readListBegin($_etype27, $_size24);
+            for ($_i28 = 0; $_i28 < $_size24; ++$_i28)
+            {
+              $elem29 = null;
+              $elem29 = new \Airavata\Model\Process\ProcessModel();
+              $xfer += $elem29->read($input);
+              $this->processes []= $elem29;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -764,9 +798,9 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRING, count($this->emailAddresses));
         {
-          foreach ($this->emailAddresses as $iter24)
+          foreach ($this->emailAddresses as $iter30)
           {
-            $xfer += $output->writeString($iter24);
+            $xfer += $output->writeString($iter30);
           }
         }
         $output->writeListEnd();
@@ -789,9 +823,9 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->experimentInputs));
         {
-          foreach ($this->experimentInputs as $iter25)
+          foreach ($this->experimentInputs as $iter31)
           {
-            $xfer += $iter25->write($output);
+            $xfer += $iter31->write($output);
           }
         }
         $output->writeListEnd();
@@ -806,9 +840,9 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->experimentOutputs));
         {
-          foreach ($this->experimentOutputs as $iter26)
+          foreach ($this->experimentOutputs as $iter32)
           {
-            $xfer += $iter26->write($output);
+            $xfer += $iter32->write($output);
           }
         }
         $output->writeListEnd();
@@ -831,9 +865,26 @@ class ExperimentModel {
       {
         $output->writeListBegin(TType::STRUCT, count($this->errors));
         {
-          foreach ($this->errors as $iter27)
+          foreach ($this->errors as $iter33)
+          {
+            $xfer += $iter33->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->processes !== null) {
+      if (!is_array($this->processes)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('processes', TType::LST, 18);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->processes));
+        {
+          foreach ($this->processes as $iter34)
           {
-            $xfer += $iter27->write($output);
+            $xfer += $iter34->write($output);
           }
         }
         $output->writeListEnd();
@@ -1391,15 +1442,15 @@ class ExperimentStatistics {
         case 7:
           if ($ftype == TType::LST) {
             $this->allExperiments = array();
-            $_size28 = 0;
-            $_etype31 = 0;
-            $xfer += $input->readListBegin($_etype31, $_size28);
-            for ($_i32 = 0; $_i32 < $_size28; ++$_i32)
+            $_size35 = 0;
+            $_etype38 = 0;
+            $xfer += $input->readListBegin($_etype38, $_size35);
+            for ($_i39 = 0; $_i39 < $_size35; ++$_i39)
             {
-              $elem33 = null;
-              $elem33 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem33->read($input);
-              $this->allExperiments []= $elem33;
+              $elem40 = null;
+              $elem40 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem40->read($input);
+              $this->allExperiments []= $elem40;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1409,15 +1460,15 @@ class ExperimentStatistics {
         case 8:
           if ($ftype == TType::LST) {
             $this->completedExperiments = array();
-            $_size34 = 0;
-            $_etype37 = 0;
-            $xfer += $input->readListBegin($_etype37, $_size34);
-            for ($_i38 = 0; $_i38 < $_size34; ++$_i38)
+            $_size41 = 0;
+            $_etype44 = 0;
+            $xfer += $input->readListBegin($_etype44, $_size41);
+            for ($_i45 = 0; $_i45 < $_size41; ++$_i45)
             {
-              $elem39 = null;
-              $elem39 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem39->read($input);
-              $this->completedExperiments []= $elem39;
+              $elem46 = null;
+              $elem46 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem46->read($input);
+              $this->completedExperiments []= $elem46;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1427,15 +1478,15 @@ class ExperimentStatistics {
         case 9:
           if ($ftype == TType::LST) {
             $this->failedExperiments = array();
-            $_size40 = 0;
-            $_etype43 = 0;
-            $xfer += $input->readListBegin($_etype43, $_size40);
-            for ($_i44 = 0; $_i44 < $_size40; ++$_i44)
+            $_size47 = 0;
+            $_etype50 = 0;
+            $xfer += $input->readListBegin($_etype50, $_size47);
+            for ($_i51 = 0; $_i51 < $_size47; ++$_i51)
             {
-              $elem45 = null;
-              $elem45 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem45->read($input);
-              $this->failedExperiments []= $elem45;
+              $elem52 = null;
+              $elem52 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem52->read($input);
+              $this->failedExperiments []= $elem52;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1445,15 +1496,15 @@ class ExperimentStatistics {
         case 10:
           if ($ftype == TType::LST) {
             $this->cancelledExperiments = array();
-            $_size46 = 0;
-            $_etype49 = 0;
-            $xfer += $input->readListBegin($_etype49, $_size46);
-            for ($_i50 = 0; $_i50 < $_size46; ++$_i50)
+            $_size53 = 0;
+            $_etype56 = 0;
+            $xfer += $input->readListBegin($_etype56, $_size53);
+            for ($_i57 = 0; $_i57 < $_size53; ++$_i57)
             {
-              $elem51 = null;
-              $elem51 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem51->read($input);
-              $this->cancelledExperiments []= $elem51;
+              $elem58 = null;
+              $elem58 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem58->read($input);
+              $this->cancelledExperiments []= $elem58;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1463,15 +1514,15 @@ class ExperimentStatistics {
         case 11:
           if ($ftype == TType::LST) {
             $this->createdExperiments = array();
-            $_size52 = 0;
-            $_etype55 = 0;
-            $xfer += $input->readListBegin($_etype55, $_size52);
-            for ($_i56 = 0; $_i56 < $_size52; ++$_i56)
+            $_size59 = 0;
+            $_etype62 = 0;
+            $xfer += $input->readListBegin($_etype62, $_size59);
+            for ($_i63 = 0; $_i63 < $_size59; ++$_i63)
             {
-              $elem57 = null;
-              $elem57 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem57->read($input);
-              $this->createdExperiments []= $elem57;
+              $elem64 = null;
+              $elem64 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem64->read($input);
+              $this->createdExperiments []= $elem64;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1481,15 +1532,15 @@ class ExperimentStatistics {
         case 12:
           if ($ftype == TType::LST) {
             $this->runningExperiments = array();
-            $_size58 = 0;
-            $_etype61 = 0;
-            $xfer += $input->readListBegin($_etype61, $_size58);
-            for ($_i62 = 0; $_i62 < $_size58; ++$_i62)
+            $_size65 = 0;
+            $_etype68 = 0;
+            $xfer += $input->readListBegin($_etype68, $_size65);
+            for ($_i69 = 0; $_i69 < $_size65; ++$_i69)
             {
-              $elem63 = null;
-              $elem63 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem63->read($input);
-              $this->runningExperiments []= $elem63;
+              $elem70 = null;
+              $elem70 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem70->read($input);
+              $this->runningExperiments []= $elem70;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1547,9 +1598,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->allExperiments));
         {
-          foreach ($this->allExperiments as $iter64)
+          foreach ($this->allExperiments as $iter71)
           {
-            $xfer += $iter64->write($output);
+            $xfer += $iter71->write($output);
           }
         }
         $output->writeListEnd();
@@ -1564,9 +1615,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->completedExperiments));
         {
-          foreach ($this->completedExperiments as $iter65)
+          foreach ($this->completedExperiments as $iter72)
           {
-            $xfer += $iter65->write($output);
+            $xfer += $iter72->write($output);
           }
         }
         $output->writeListEnd();
@@ -1581,9 +1632,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->failedExperiments));
         {
-          foreach ($this->failedExperiments as $iter66)
+          foreach ($this->failedExperiments as $iter73)
           {
-            $xfer += $iter66->write($output);
+            $xfer += $iter73->write($output);
           }
         }
         $output->writeListEnd();
@@ -1598,9 +1649,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->cancelledExperiments));
         {
-          foreach ($this->cancelledExperiments as $iter67)
+          foreach ($this->cancelledExperiments as $iter74)
           {
-            $xfer += $iter67->write($output);
+            $xfer += $iter74->write($output);
           }
         }
         $output->writeListEnd();
@@ -1615,9 +1666,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->createdExperiments));
         {
-          foreach ($this->createdExperiments as $iter68)
+          foreach ($this->createdExperiments as $iter75)
           {
-            $xfer += $iter68->write($output);
+            $xfer += $iter75->write($output);
           }
         }
         $output->writeListEnd();
@@ -1632,9 +1683,9 @@ class ExperimentStatistics {
       {
         $output->writeListBegin(TType::STRUCT, count($this->runningExperiments));
         {
-          foreach ($this->runningExperiments as $iter69)
+          foreach ($this->runningExperiments as $iter76)
           {
-            $xfer += $iter69->write($output);
+            $xfer += $iter76->write($output);
           }
         }
         $output->writeListEnd();

http://git-wip-us.apache.org/repos/asf/airavata/blob/4f7af6a9/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 df9e68d..deae011 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
@@ -102,6 +102,10 @@ class TaskModel {
    * @var \Airavata\Model\Commons\ErrorModel
    */
   public $taskError = null;
+  /**
+   * @var \Airavata\Model\Job\JobModel[]
+   */
+  public $jobs = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -144,6 +148,15 @@ class TaskModel {
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Commons\ErrorModel',
           ),
+        10 => array(
+          'var' => 'jobs',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Job\JobModel',
+            ),
+          ),
         );
     }
     if (is_array($vals)) {
@@ -174,6 +187,9 @@ class TaskModel {
       if (isset($vals['taskError'])) {
         $this->taskError = $vals['taskError'];
       }
+      if (isset($vals['jobs'])) {
+        $this->jobs = $vals['jobs'];
+      }
     }
   }
 
@@ -261,6 +277,24 @@ class TaskModel {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 10:
+          if ($ftype == TType::LST) {
+            $this->jobs = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \Airavata\Model\Job\JobModel();
+              $xfer += $elem5->read($input);
+              $this->jobs []= $elem5;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -325,6 +359,23 @@ class TaskModel {
       $xfer += $this->taskError->write($output);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->jobs !== null) {
+      if (!is_array($this->jobs)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('jobs', TType::LST, 10);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->jobs));
+        {
+          foreach ($this->jobs as $iter6)
+          {
+            $xfer += $iter6->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/4f7af6a9/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
index 7330142..96cf8bd 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
@@ -53,6 +53,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('  string createExperiment(AuthzToken authzToken, string gatewayId, ExperimentModel
experiment)')
   print('  bool deleteExperiment(AuthzToken authzToken, string experimentId)')
   print('  ExperimentModel getExperiment(AuthzToken authzToken, string airavataExperimentId)')
+  print('  ExperimentModel getDetailedExperimentTree(AuthzToken authzToken, string airavataExperimentId)')
   print('  void updateExperiment(AuthzToken authzToken, string airavataExperimentId, ExperimentModel
experiment)')
   print('  void updateExperimentConfiguration(AuthzToken authzToken, string airavataExperimentId,
UserConfigurationDataModel userConfiguration)')
   print('  void updateResourceScheduleing(AuthzToken authzToken, string airavataExperimentId,
ComputationalResourceSchedulingModel resourceScheduling)')
@@ -383,6 +384,12 @@ elif cmd == 'getExperiment':
     sys.exit(1)
   pp.pprint(client.getExperiment(eval(args[0]),args[1],))
 
+elif cmd == 'getDetailedExperimentTree':
+  if len(args) != 2:
+    print('getDetailedExperimentTree requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.getDetailedExperimentTree(eval(args[0]),args[1],))
+
 elif cmd == 'updateExperiment':
   if len(args) != 3:
     print('updateExperiment requires 3 args')

http://git-wip-us.apache.org/repos/asf/airavata/blob/4f7af6a9/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
index 779a25a..a447541 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/experiment/ttypes.py
@@ -11,6 +11,7 @@ import apache.airavata.model.application.io.ttypes
 import apache.airavata.model.scheduling.ttypes
 import apache.airavata.model.commons.ttypes
 import apache.airavata.model.status.ttypes
+import apache.airavata.model.process.ttypes
 
 
 from thrift.transport import TTransport
@@ -252,6 +253,7 @@ class ExperimentModel:
    - experimentOutputs
    - experimentStatus
    - errors
+   - processes
   """
 
   thrift_spec = (
@@ -273,9 +275,10 @@ class ExperimentModel:
     (15, TType.LIST, 'experimentOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType,
apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), #
15
     (16, TType.STRUCT, 'experimentStatus', (apache.airavata.model.status.ttypes.ExperimentStatus,
apache.airavata.model.status.ttypes.ExperimentStatus.thrift_spec), None, ), # 16
     (17, TType.LIST, 'errors', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel,
apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 17
+    (18, TType.LIST, 'processes', (TType.STRUCT,(apache.airavata.model.process.ttypes.ProcessModel,
apache.airavata.model.process.ttypes.ProcessModel.thrift_spec)), None, ), # 18
   )
 
-  def __init__(self, experimentId=thrift_spec[1][4], projectId=None, gatewayId=None, experimentType=thrift_spec[4][4],
userName=None, experimentName=None, creationTime=None, description=None, executionId=None,
gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, userConfigurationData=None,
experimentInputs=None, experimentOutputs=None, experimentStatus=None, errors=None,):
+  def __init__(self, experimentId=thrift_spec[1][4], projectId=None, gatewayId=None, experimentType=thrift_spec[4][4],
userName=None, experimentName=None, creationTime=None, description=None, executionId=None,
gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, userConfigurationData=None,
experimentInputs=None, experimentOutputs=None, experimentStatus=None, errors=None, processes=None,):
     self.experimentId = experimentId
     self.projectId = projectId
     self.gatewayId = gatewayId
@@ -293,6 +296,7 @@ class ExperimentModel:
     self.experimentOutputs = experimentOutputs
     self.experimentStatus = experimentStatus
     self.errors = errors
+    self.processes = processes
 
   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:
@@ -413,6 +417,17 @@ class ExperimentModel:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
+      elif fid == 18:
+        if ftype == TType.LIST:
+          self.processes = []
+          (_etype27, _size24) = iprot.readListBegin()
+          for _i28 in xrange(_size24):
+            _elem29 = apache.airavata.model.process.ttypes.ProcessModel()
+            _elem29.read(iprot)
+            self.processes.append(_elem29)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -470,8 +485,8 @@ class ExperimentModel:
     if self.emailAddresses is not None:
       oprot.writeFieldBegin('emailAddresses', TType.LIST, 12)
       oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
-      for iter24 in self.emailAddresses:
-        oprot.writeString(iter24)
+      for iter30 in self.emailAddresses:
+        oprot.writeString(iter30)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.userConfigurationData is not None:
@@ -481,15 +496,15 @@ class ExperimentModel:
     if self.experimentInputs is not None:
       oprot.writeFieldBegin('experimentInputs', TType.LIST, 14)
       oprot.writeListBegin(TType.STRUCT, len(self.experimentInputs))
-      for iter25 in self.experimentInputs:
-        iter25.write(oprot)
+      for iter31 in self.experimentInputs:
+        iter31.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.experimentOutputs is not None:
       oprot.writeFieldBegin('experimentOutputs', TType.LIST, 15)
       oprot.writeListBegin(TType.STRUCT, len(self.experimentOutputs))
-      for iter26 in self.experimentOutputs:
-        iter26.write(oprot)
+      for iter32 in self.experimentOutputs:
+        iter32.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.experimentStatus is not None:
@@ -499,8 +514,15 @@ class ExperimentModel:
     if self.errors is not None:
       oprot.writeFieldBegin('errors', TType.LIST, 17)
       oprot.writeListBegin(TType.STRUCT, len(self.errors))
-      for iter27 in self.errors:
-        iter27.write(oprot)
+      for iter33 in self.errors:
+        iter33.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.processes is not None:
+      oprot.writeFieldBegin('processes', TType.LIST, 18)
+      oprot.writeListBegin(TType.STRUCT, len(self.processes))
+      for iter34 in self.processes:
+        iter34.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -541,6 +563,7 @@ class ExperimentModel:
     value = (value * 31) ^ hash(self.experimentOutputs)
     value = (value * 31) ^ hash(self.experimentStatus)
     value = (value * 31) ^ hash(self.errors)
+    value = (value * 31) ^ hash(self.processes)
     return value
 
   def __repr__(self):
@@ -849,66 +872,66 @@ class ExperimentStatistics:
       elif fid == 7:
         if ftype == TType.LIST:
           self.allExperiments = []
-          (_etype31, _size28) = iprot.readListBegin()
-          for _i32 in xrange(_size28):
-            _elem33 = ExperimentSummaryModel()
-            _elem33.read(iprot)
-            self.allExperiments.append(_elem33)
+          (_etype38, _size35) = iprot.readListBegin()
+          for _i39 in xrange(_size35):
+            _elem40 = ExperimentSummaryModel()
+            _elem40.read(iprot)
+            self.allExperiments.append(_elem40)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.LIST:
           self.completedExperiments = []
-          (_etype37, _size34) = iprot.readListBegin()
-          for _i38 in xrange(_size34):
-            _elem39 = ExperimentSummaryModel()
-            _elem39.read(iprot)
-            self.completedExperiments.append(_elem39)
+          (_etype44, _size41) = iprot.readListBegin()
+          for _i45 in xrange(_size41):
+            _elem46 = ExperimentSummaryModel()
+            _elem46.read(iprot)
+            self.completedExperiments.append(_elem46)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 9:
         if ftype == TType.LIST:
           self.failedExperiments = []
-          (_etype43, _size40) = iprot.readListBegin()
-          for _i44 in xrange(_size40):
-            _elem45 = ExperimentSummaryModel()
-            _elem45.read(iprot)
-            self.failedExperiments.append(_elem45)
+          (_etype50, _size47) = iprot.readListBegin()
+          for _i51 in xrange(_size47):
+            _elem52 = ExperimentSummaryModel()
+            _elem52.read(iprot)
+            self.failedExperiments.append(_elem52)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 10:
         if ftype == TType.LIST:
           self.cancelledExperiments = []
-          (_etype49, _size46) = iprot.readListBegin()
-          for _i50 in xrange(_size46):
-            _elem51 = ExperimentSummaryModel()
-            _elem51.read(iprot)
-            self.cancelledExperiments.append(_elem51)
+          (_etype56, _size53) = iprot.readListBegin()
+          for _i57 in xrange(_size53):
+            _elem58 = ExperimentSummaryModel()
+            _elem58.read(iprot)
+            self.cancelledExperiments.append(_elem58)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 11:
         if ftype == TType.LIST:
           self.createdExperiments = []
-          (_etype55, _size52) = iprot.readListBegin()
-          for _i56 in xrange(_size52):
-            _elem57 = ExperimentSummaryModel()
-            _elem57.read(iprot)
-            self.createdExperiments.append(_elem57)
+          (_etype62, _size59) = iprot.readListBegin()
+          for _i63 in xrange(_size59):
+            _elem64 = ExperimentSummaryModel()
+            _elem64.read(iprot)
+            self.createdExperiments.append(_elem64)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 12:
         if ftype == TType.LIST:
           self.runningExperiments = []
-          (_etype61, _size58) = iprot.readListBegin()
-          for _i62 in xrange(_size58):
-            _elem63 = ExperimentSummaryModel()
-            _elem63.read(iprot)
-            self.runningExperiments.append(_elem63)
+          (_etype68, _size65) = iprot.readListBegin()
+          for _i69 in xrange(_size65):
+            _elem70 = ExperimentSummaryModel()
+            _elem70.read(iprot)
+            self.runningExperiments.append(_elem70)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -949,43 +972,43 @@ class ExperimentStatistics:
     if self.allExperiments is not None:
       oprot.writeFieldBegin('allExperiments', TType.LIST, 7)
       oprot.writeListBegin(TType.STRUCT, len(self.allExperiments))
-      for iter64 in self.allExperiments:
-        iter64.write(oprot)
+      for iter71 in self.allExperiments:
+        iter71.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.completedExperiments is not None:
       oprot.writeFieldBegin('completedExperiments', TType.LIST, 8)
       oprot.writeListBegin(TType.STRUCT, len(self.completedExperiments))
-      for iter65 in self.completedExperiments:
-        iter65.write(oprot)
+      for iter72 in self.completedExperiments:
+        iter72.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.failedExperiments is not None:
       oprot.writeFieldBegin('failedExperiments', TType.LIST, 9)
       oprot.writeListBegin(TType.STRUCT, len(self.failedExperiments))
-      for iter66 in self.failedExperiments:
-        iter66.write(oprot)
+      for iter73 in self.failedExperiments:
+        iter73.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.cancelledExperiments is not None:
       oprot.writeFieldBegin('cancelledExperiments', TType.LIST, 10)
       oprot.writeListBegin(TType.STRUCT, len(self.cancelledExperiments))
-      for iter67 in self.cancelledExperiments:
-        iter67.write(oprot)
+      for iter74 in self.cancelledExperiments:
+        iter74.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.createdExperiments is not None:
       oprot.writeFieldBegin('createdExperiments', TType.LIST, 11)
       oprot.writeListBegin(TType.STRUCT, len(self.createdExperiments))
-      for iter68 in self.createdExperiments:
-        iter68.write(oprot)
+      for iter75 in self.createdExperiments:
+        iter75.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.runningExperiments is not None:
       oprot.writeFieldBegin('runningExperiments', TType.LIST, 12)
       oprot.writeListBegin(TType.STRUCT, len(self.runningExperiments))
-      for iter69 in self.runningExperiments:
-        iter69.write(oprot)
+      for iter76 in self.runningExperiments:
+        iter76.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()

http://git-wip-us.apache.org/repos/asf/airavata/blob/4f7af6a9/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 3582bf2..e6dcb62 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
@@ -11,6 +11,7 @@ import apache.airavata.model.commons.ttypes
 import apache.airavata.model.status.ttypes
 import apache.airavata.model.appcatalog.computeresource.ttypes
 import apache.airavata.model.application.io.ttypes
+import apache.airavata.model.job.ttypes
 
 
 from thrift.transport import TTransport
@@ -93,6 +94,7 @@ class TaskModel:
    - taskDetail
    - subTaskModel
    - taskError
+   - jobs
   """
 
   thrift_spec = (
@@ -106,9 +108,10 @@ class TaskModel:
     (7, TType.STRING, 'taskDetail', None, None, ), # 7
     (8, TType.STRING, 'subTaskModel', None, None, ), # 8
     (9, TType.STRUCT, 'taskError', (apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec),
None, ), # 9
+    (10, TType.LIST, 'jobs', (TType.STRUCT,(apache.airavata.model.job.ttypes.JobModel, apache.airavata.model.job.ttypes.JobModel.thrift_spec)),
None, ), # 10
   )
 
-  def __init__(self, taskId=thrift_spec[1][4], taskType=None, parentProcessId=None, creationTime=None,
lastUpdateTime=None, taskStatus=None, taskDetail=None, subTaskModel=None, taskError=None,):
+  def __init__(self, taskId=thrift_spec[1][4], taskType=None, parentProcessId=None, creationTime=None,
lastUpdateTime=None, taskStatus=None, taskDetail=None, subTaskModel=None, taskError=None,
jobs=None,):
     self.taskId = taskId
     self.taskType = taskType
     self.parentProcessId = parentProcessId
@@ -118,6 +121,7 @@ class TaskModel:
     self.taskDetail = taskDetail
     self.subTaskModel = subTaskModel
     self.taskError = taskError
+    self.jobs = jobs
 
   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:
@@ -175,6 +179,17 @@ class TaskModel:
           self.taskError.read(iprot)
         else:
           iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.LIST:
+          self.jobs = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = apache.airavata.model.job.ttypes.JobModel()
+            _elem5.read(iprot)
+            self.jobs.append(_elem5)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -221,6 +236,13 @@ class TaskModel:
       oprot.writeFieldBegin('taskError', TType.STRUCT, 9)
       self.taskError.write(oprot)
       oprot.writeFieldEnd()
+    if self.jobs is not None:
+      oprot.writeFieldBegin('jobs', TType.LIST, 10)
+      oprot.writeListBegin(TType.STRUCT, len(self.jobs))
+      for iter6 in self.jobs:
+        iter6.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -251,6 +273,7 @@ class TaskModel:
     value = (value * 31) ^ hash(self.taskDetail)
     value = (value * 31) ^ hash(self.subTaskModel)
     value = (value * 31) ^ hash(self.taskError)
+    value = (value * 31) ^ hash(self.jobs)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/4f7af6a9/thrift-interface-descriptions/airavata-api/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-api/airavata_api.thrift b/thrift-interface-descriptions/airavata-api/airavata_api.thrift
index 82830e2..7bce41a 100644
--- a/thrift-interface-descriptions/airavata-api/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-api/airavata_api.thrift
@@ -606,6 +606,50 @@ service Airavata {
             4: airavata_errors.AiravataSystemException ase,
             5: airavata_errors.AuthorizationException ae)
 
+
+  /**
+   * Fetch the completed nested tree structue of previously created experiment metadata which
includes processes ->
+   * tasks -> jobs information.
+   *
+   * @param airavataExperimentId
+   *    The identifier for the requested experiment. This is returned during the create experiment
step.
+   *
+   * @return experimentMetada
+   *   This method will return the previously stored experiment metadata.
+   *
+   * @throws org.apache.airavata.model.error.InvalidRequestException
+   *    For any incorrect forming of the request itself.
+   *
+   * @throws org.apache.airavata.model.error.ExperimentNotFoundException
+   *    If the specified experiment is not previously created, then an Experiment Not Found
Exception is thrown.
+   *
+   * @throws org.apache.airavata.model.error.AiravataClientException
+   *    The following list of exceptions are thrown which Airavata Client can take corrective
actions to resolve:
+   *
+   *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time
administrative
+   *         step, then Airavata Registry will not have a provenance area setup. The client
has to follow
+   *         gateway registration steps and retry this request.
+   *
+   *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+   *         For now this is a place holder.
+   *
+   *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more
robust security hand-shake
+   *         is implemented, the authorization will be more substantial.
+   *
+   * @throws org.apache.airavata.model.error.AiravataSystemException
+   *    This exception will be thrown for any Airavata Server side issues and if the problem
cannot be corrected by the client
+   *       rather an Airavata Administrator will be notified to take corrective action.
+   *
+  */
+  experiment_model.ExperimentModel getDetailedExperimentTree(1: required security_model.AuthzToken
authzToken,
+                                                   2: required string airavataExperimentId)
+      throws (1: airavata_errors.InvalidRequestException ire,
+              2: airavata_errors.ExperimentNotFoundException enf,
+              3: airavata_errors.AiravataClientException ace,
+              4: airavata_errors.AiravataSystemException ase,
+              5: airavata_errors.AuthorizationException ae)
+
+
   /**
    * Configure a previously created experiment with required inputs, scheduling and other
quality of service
    *   parameters. This method only updates the experiment object within the registry. The
experiment has to be launched

http://git-wip-us.apache.org/repos/asf/airavata/blob/4f7af6a9/thrift-interface-descriptions/airavata-api/experiment_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-api/experiment_model.thrift b/thrift-interface-descriptions/airavata-api/experiment_model.thrift
index eeb9b86..fa15459 100644
--- a/thrift-interface-descriptions/airavata-api/experiment_model.thrift
+++ b/thrift-interface-descriptions/airavata-api/experiment_model.thrift
@@ -22,6 +22,7 @@
  include "scheduling_model.thrift"
  include "airavata_commons.thrift"
  include "status_models.thrift"
+ include "process_model.thrift"
 
  namespace java org.apache.airavata.model.experiment
  namespace php Airavata.Model.Experiment
@@ -91,7 +92,8 @@ struct ExperimentModel {
     14: optional list<application_io_models.InputDataObjectType> experimentInputs,
     15: optional list<application_io_models.OutputDataObjectType> experimentOutputs,
     16: optional status_models.ExperimentStatus experimentStatus,
-    17: optional list<airavata_commons.ErrorModel> errors
+    17: optional list<airavata_commons.ErrorModel> errors,
+    18: optional list<process_model.ProcessModel> processes
 }
 
 struct ExperimentSummaryModel {

http://git-wip-us.apache.org/repos/asf/airavata/blob/4f7af6a9/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 798c51d..4dd1d84 100644
--- a/thrift-interface-descriptions/airavata-api/task_model.thrift
+++ b/thrift-interface-descriptions/airavata-api/task_model.thrift
@@ -22,6 +22,7 @@ include "airavata_commons.thrift"
 include "status_models.thrift"
 include "compute_resource_model.thrift"
 include "application_io_models.thrift"
+include "job_model.thrift"
 
 namespace java org.apache.airavata.model.task
 namespace php Airavata.Model.Task
@@ -59,7 +60,8 @@ struct TaskModel {
     6: required status_models.TaskStatus taskStatus,
     7: optional string taskDetail,
     8: optional binary subTaskModel,
-    9: optional airavata_commons.ErrorModel taskError
+    9: optional airavata_commons.ErrorModel taskError,
+    10: optional list<job_model.JobModel> jobs
 }
 
 /**


Mime
View raw message