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/03/19 20:11:24 UTC

[06/50] [abbrv] airavata git commit: adding chassisName for compute resource scheduling

adding chassisName for compute resource scheduling


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

Branch: refs/heads/new-workflow-design
Commit: 7c10349962bdce8c06f6905f226da488017c4930
Parents: 9d960f7
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Fri Mar 6 10:23:07 2015 -0500
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Fri Mar 6 10:23:07 2015 -0500

----------------------------------------------------------------------
 .../lib/airavata/experimentModel_types.cpp      |  34 ++++--
 .../lib/airavata/experimentModel_types.h        |  35 ++++--
 .../Model/Workspace/Experiment/Types.php        |  20 ++++
 .../ComputationalResourceScheduling.java        | 109 ++++++++++++++++++-
 .../experimentModel.thrift                      |   3 +-
 5 files changed, 174 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/7c103499/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
index d6e6b07..2f1d21b 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
@@ -719,8 +719,8 @@ void swap(ApplicationStatus &a, ApplicationStatus &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* ComputationalResourceScheduling::ascii_fingerprint = "32AC7AC41AD3753A7224A32FD6EB4B5D";
-const uint8_t ComputationalResourceScheduling::binary_fingerprint[16] = {0x32,0xAC,0x7A,0xC4,0x1A,0xD3,0x75,0x3A,0x72,0x24,0xA3,0x2F,0xD6,0xEB,0x4B,0x5D};
+const char* ComputationalResourceScheduling::ascii_fingerprint = "F43E914A611D39345BCC729678C1C696";
+const uint8_t ComputationalResourceScheduling::binary_fingerprint[16] = {0xF4,0x3E,0x91,0x4A,0x61,0x1D,0x39,0x34,0x5B,0xCC,0x72,0x96,0x78,0xC1,0xC6,0x96};
 
 uint32_t ComputationalResourceScheduling::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -814,6 +814,14 @@ uint32_t ComputationalResourceScheduling::read(::apache::thrift::protocol::TProt
           xfer += iprot->skip(ftype);
         }
         break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->chassisName);
+          this->__isset.chassisName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -875,6 +883,11 @@ uint32_t ComputationalResourceScheduling::write(::apache::thrift::protocol::TPro
     xfer += oprot->writeString(this->computationalProjectAccount);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.chassisName) {
+    xfer += oprot->writeFieldBegin("chassisName", ::apache::thrift::protocol::T_STRING, 10);
+    xfer += oprot->writeString(this->chassisName);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -891,6 +904,7 @@ void swap(ComputationalResourceScheduling &a, ComputationalResourceScheduling &b
   swap(a.jobStartTime, b.jobStartTime);
   swap(a.totalPhysicalMemory, b.totalPhysicalMemory);
   swap(a.computationalProjectAccount, b.computationalProjectAccount);
+  swap(a.chassisName, b.chassisName);
   swap(a.__isset, b.__isset);
 }
 
@@ -1181,8 +1195,8 @@ void swap(QualityOfServiceParams &a, QualityOfServiceParams &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* UserConfigurationData::ascii_fingerprint = "4E5EF84AE34A2F52BCD6617A229780E0";
-const uint8_t UserConfigurationData::binary_fingerprint[16] = {0x4E,0x5E,0xF8,0x4A,0xE3,0x4A,0x2F,0x52,0xBC,0xD6,0x61,0x7A,0x22,0x97,0x80,0xE0};
+const char* UserConfigurationData::ascii_fingerprint = "A39B8E6345C677771D939D170C65720F";
+const uint8_t UserConfigurationData::binary_fingerprint[16] = {0xA3,0x9B,0x8E,0x63,0x45,0xC6,0x77,0x77,0x1D,0x93,0x9D,0x17,0x0C,0x65,0x72,0x0F};
 
 uint32_t UserConfigurationData::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -1843,8 +1857,8 @@ void swap(DataTransferDetails &a, DataTransferDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* TaskDetails::ascii_fingerprint = "6EAEEB62655ECD5CA7A24BFDE46F678C";
-const uint8_t TaskDetails::binary_fingerprint[16] = {0x6E,0xAE,0xEB,0x62,0x65,0x5E,0xCD,0x5C,0xA7,0xA2,0x4B,0xFD,0xE4,0x6F,0x67,0x8C};
+const char* TaskDetails::ascii_fingerprint = "88276CFCC9B30CA0B93A5931F93CACC4";
+const uint8_t TaskDetails::binary_fingerprint[16] = {0x88,0x27,0x6C,0xFC,0xC9,0xB3,0x0C,0xA0,0xB9,0x3A,0x59,0x31,0xF9,0x3C,0xAC,0xC4};
 
 uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2238,8 +2252,8 @@ void swap(TaskDetails &a, TaskDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* WorkflowNodeDetails::ascii_fingerprint = "CDDA44A784FD60829B4F4EAA67D71C72";
-const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0xCD,0xDA,0x44,0xA7,0x84,0xFD,0x60,0x82,0x9B,0x4F,0x4E,0xAA,0x67,0xD7,0x1C,0x72};
+const char* WorkflowNodeDetails::ascii_fingerprint = "940AB958A2909A83261C2016BD466838";
+const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0x94,0x0A,0xB9,0x58,0xA2,0x90,0x9A,0x83,0x26,0x1C,0x20,0x16,0xBD,0x46,0x68,0x38};
 
 uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2694,8 +2708,8 @@ void swap(ValidationResults &a, ValidationResults &b) {
   swap(a.validationResultList, b.validationResultList);
 }
 
-const char* Experiment::ascii_fingerprint = "145D3134FA7C46D3D99051850C4984FF";
-const uint8_t Experiment::binary_fingerprint[16] = {0x14,0x5D,0x31,0x34,0xFA,0x7C,0x46,0xD3,0xD9,0x90,0x51,0x85,0x0C,0x49,0x84,0xFF};
+const char* Experiment::ascii_fingerprint = "C610216A34DE0B4389362B3D5236F6F6";
+const uint8_t Experiment::binary_fingerprint[16] = {0xC6,0x10,0x21,0x6A,0x34,0xDE,0x0B,0x43,0x89,0x36,0x2B,0x3D,0x52,0x36,0xF6,0xF6};
 
 uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c103499/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
index 1b5306e..15c0d4c 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
@@ -495,7 +495,7 @@ class ApplicationStatus {
 void swap(ApplicationStatus &a, ApplicationStatus &b);
 
 typedef struct _ComputationalResourceScheduling__isset {
-  _ComputationalResourceScheduling__isset() : resourceHostId(false), totalCPUCount(false), nodeCount(false), numberOfThreads(false), queueName(false), wallTimeLimit(false), jobStartTime(false), totalPhysicalMemory(false), computationalProjectAccount(false) {}
+  _ComputationalResourceScheduling__isset() : resourceHostId(false), totalCPUCount(false), nodeCount(false), numberOfThreads(false), queueName(false), wallTimeLimit(false), jobStartTime(false), totalPhysicalMemory(false), computationalProjectAccount(false), chassisName(false) {}
   bool resourceHostId;
   bool totalCPUCount;
   bool nodeCount;
@@ -505,15 +505,16 @@ typedef struct _ComputationalResourceScheduling__isset {
   bool jobStartTime;
   bool totalPhysicalMemory;
   bool computationalProjectAccount;
+  bool chassisName;
 } _ComputationalResourceScheduling__isset;
 
 class ComputationalResourceScheduling {
  public:
 
-  static const char* ascii_fingerprint; // = "32AC7AC41AD3753A7224A32FD6EB4B5D";
-  static const uint8_t binary_fingerprint[16]; // = {0x32,0xAC,0x7A,0xC4,0x1A,0xD3,0x75,0x3A,0x72,0x24,0xA3,0x2F,0xD6,0xEB,0x4B,0x5D};
+  static const char* ascii_fingerprint; // = "F43E914A611D39345BCC729678C1C696";
+  static const uint8_t binary_fingerprint[16]; // = {0xF4,0x3E,0x91,0x4A,0x61,0x1D,0x39,0x34,0x5B,0xCC,0x72,0x96,0x78,0xC1,0xC6,0x96};
 
-  ComputationalResourceScheduling() : resourceHostId(), totalCPUCount(0), nodeCount(0), numberOfThreads(0), queueName(), wallTimeLimit(0), jobStartTime(0), totalPhysicalMemory(0), computationalProjectAccount() {
+  ComputationalResourceScheduling() : resourceHostId(), totalCPUCount(0), nodeCount(0), numberOfThreads(0), queueName(), wallTimeLimit(0), jobStartTime(0), totalPhysicalMemory(0), computationalProjectAccount(), chassisName() {
   }
 
   virtual ~ComputationalResourceScheduling() throw() {}
@@ -527,6 +528,7 @@ class ComputationalResourceScheduling {
   int32_t jobStartTime;
   int32_t totalPhysicalMemory;
   std::string computationalProjectAccount;
+  std::string chassisName;
 
   _ComputationalResourceScheduling__isset __isset;
 
@@ -575,6 +577,11 @@ class ComputationalResourceScheduling {
     __isset.computationalProjectAccount = true;
   }
 
+  void __set_chassisName(const std::string& val) {
+    chassisName = val;
+    __isset.chassisName = true;
+  }
+
   bool operator == (const ComputationalResourceScheduling & rhs) const
   {
     if (__isset.resourceHostId != rhs.__isset.resourceHostId)
@@ -613,6 +620,10 @@ class ComputationalResourceScheduling {
       return false;
     else if (__isset.computationalProjectAccount && !(computationalProjectAccount == rhs.computationalProjectAccount))
       return false;
+    if (__isset.chassisName != rhs.__isset.chassisName)
+      return false;
+    else if (__isset.chassisName && !(chassisName == rhs.chassisName))
+      return false;
     return true;
   }
   bool operator != (const ComputationalResourceScheduling &rhs) const {
@@ -856,8 +867,8 @@ typedef struct _UserConfigurationData__isset {
 class UserConfigurationData {
  public:
 
-  static const char* ascii_fingerprint; // = "4E5EF84AE34A2F52BCD6617A229780E0";
-  static const uint8_t binary_fingerprint[16]; // = {0x4E,0x5E,0xF8,0x4A,0xE3,0x4A,0x2F,0x52,0xBC,0xD6,0x61,0x7A,0x22,0x97,0x80,0xE0};
+  static const char* ascii_fingerprint; // = "A39B8E6345C677771D939D170C65720F";
+  static const uint8_t binary_fingerprint[16]; // = {0xA3,0x9B,0x8E,0x63,0x45,0xC6,0x77,0x77,0x1D,0x93,0x9D,0x17,0x0C,0x65,0x72,0x0F};
 
   UserConfigurationData() : airavataAutoSchedule(false), overrideManualScheduledParams(false), shareExperimentPublicly(false), throttleResources(false) {
   }
@@ -1296,8 +1307,8 @@ typedef struct _TaskDetails__isset {
 class TaskDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "6EAEEB62655ECD5CA7A24BFDE46F678C";
-  static const uint8_t binary_fingerprint[16]; // = {0x6E,0xAE,0xEB,0x62,0x65,0x5E,0xCD,0x5C,0xA7,0xA2,0x4B,0xFD,0xE4,0x6F,0x67,0x8C};
+  static const char* ascii_fingerprint; // = "88276CFCC9B30CA0B93A5931F93CACC4";
+  static const uint8_t binary_fingerprint[16]; // = {0x88,0x27,0x6C,0xFC,0xC9,0xB3,0x0C,0xA0,0xB9,0x3A,0x59,0x31,0xF9,0x3C,0xAC,0xC4};
 
   TaskDetails() : taskID("DO_NOT_SET_AT_CLIENTS"), creationTime(0), applicationId(), applicationVersion(), applicationDeploymentId(), enableEmailNotification(0) {
   }
@@ -1495,8 +1506,8 @@ typedef struct _WorkflowNodeDetails__isset {
 class WorkflowNodeDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "CDDA44A784FD60829B4F4EAA67D71C72";
-  static const uint8_t binary_fingerprint[16]; // = {0xCD,0xDA,0x44,0xA7,0x84,0xFD,0x60,0x82,0x9B,0x4F,0x4E,0xAA,0x67,0xD7,0x1C,0x72};
+  static const char* ascii_fingerprint; // = "940AB958A2909A83261C2016BD466838";
+  static const uint8_t binary_fingerprint[16]; // = {0x94,0x0A,0xB9,0x58,0xA2,0x90,0x9A,0x83,0x26,0x1C,0x20,0x16,0xBD,0x46,0x68,0x38};
 
   WorkflowNodeDetails() : nodeInstanceId("DO_NOT_SET_AT_CLIENTS"), creationTime(0), nodeName("SINGLE_APP_NODE"), executionUnit((ExecutionUnit::type)1), executionUnitData() {
     executionUnit = (ExecutionUnit::type)1;
@@ -1736,8 +1747,8 @@ typedef struct _Experiment__isset {
 class Experiment {
  public:
 
-  static const char* ascii_fingerprint; // = "145D3134FA7C46D3D99051850C4984FF";
-  static const uint8_t binary_fingerprint[16]; // = {0x14,0x5D,0x31,0x34,0xFA,0x7C,0x46,0xD3,0xD9,0x90,0x51,0x85,0x0C,0x49,0x84,0xFF};
+  static const char* ascii_fingerprint; // = "C610216A34DE0B4389362B3D5236F6F6";
+  static const uint8_t binary_fingerprint[16]; // = {0xC6,0x10,0x21,0x6A,0x34,0xDE,0x0B,0x43,0x89,0x36,0x2B,0x3D,0x52,0x36,0xF6,0xF6};
 
   Experiment() : experimentID("DO_NOT_SET_AT_CLIENTS"), projectID("DEFAULT"), creationTime(0), userName(), name(), description(), applicationId(), applicationVersion(), workflowTemplateId(), workflowTemplateVersion(), enableEmailNotification(0), workflowExecutionInstanceId() {
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c103499/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 1fbcd0b..ea7aa19 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
@@ -780,6 +780,7 @@ class ComputationalResourceScheduling {
   public $jobStartTime = null;
   public $totalPhysicalMemory = null;
   public $computationalProjectAccount = null;
+  public $chassisName = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -820,6 +821,10 @@ class ComputationalResourceScheduling {
           'var' => 'computationalProjectAccount',
           'type' => TType::STRING,
           ),
+        10 => array(
+          'var' => 'chassisName',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -850,6 +855,9 @@ class ComputationalResourceScheduling {
       if (isset($vals['computationalProjectAccount'])) {
         $this->computationalProjectAccount = $vals['computationalProjectAccount'];
       }
+      if (isset($vals['chassisName'])) {
+        $this->chassisName = $vals['chassisName'];
+      }
     }
   }
 
@@ -935,6 +943,13 @@ class ComputationalResourceScheduling {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 10:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->chassisName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -993,6 +1008,11 @@ class ComputationalResourceScheduling {
       $xfer += $output->writeString($this->computationalProjectAccount);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->chassisName !== null) {
+      $xfer += $output->writeFieldBegin('chassisName', TType::STRING, 10);
+      $xfer += $output->writeString($this->chassisName);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c103499/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ComputationalResourceScheduling.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ComputationalResourceScheduling.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ComputationalResourceScheduling.java
index fb6e0f6..51ef625 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ComputationalResourceScheduling.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/ComputationalResourceScheduling.java
@@ -65,6 +65,7 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TField JOB_START_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStartTime", org.apache.thrift.protocol.TType.I32, (short)7);
   private static final org.apache.thrift.protocol.TField TOTAL_PHYSICAL_MEMORY_FIELD_DESC = new org.apache.thrift.protocol.TField("totalPhysicalMemory", org.apache.thrift.protocol.TType.I32, (short)8);
   private static final org.apache.thrift.protocol.TField COMPUTATIONAL_PROJECT_ACCOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("computationalProjectAccount", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField CHASSIS_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("chassisName", org.apache.thrift.protocol.TType.STRING, (short)10);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -81,6 +82,7 @@ import org.slf4j.LoggerFactory;
   private int jobStartTime; // optional
   private int totalPhysicalMemory; // optional
   private String computationalProjectAccount; // optional
+  private String chassisName; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -92,7 +94,8 @@ import org.slf4j.LoggerFactory;
     WALL_TIME_LIMIT((short)6, "wallTimeLimit"),
     JOB_START_TIME((short)7, "jobStartTime"),
     TOTAL_PHYSICAL_MEMORY((short)8, "totalPhysicalMemory"),
-    COMPUTATIONAL_PROJECT_ACCOUNT((short)9, "computationalProjectAccount");
+    COMPUTATIONAL_PROJECT_ACCOUNT((short)9, "computationalProjectAccount"),
+    CHASSIS_NAME((short)10, "chassisName");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -125,6 +128,8 @@ import org.slf4j.LoggerFactory;
           return TOTAL_PHYSICAL_MEMORY;
         case 9: // COMPUTATIONAL_PROJECT_ACCOUNT
           return COMPUTATIONAL_PROJECT_ACCOUNT;
+        case 10: // CHASSIS_NAME
+          return CHASSIS_NAME;
         default:
           return null;
       }
@@ -172,7 +177,7 @@ import org.slf4j.LoggerFactory;
   private static final int __JOBSTARTTIME_ISSET_ID = 4;
   private static final int __TOTALPHYSICALMEMORY_ISSET_ID = 5;
   private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.RESOURCE_HOST_ID,_Fields.TOTAL_CPUCOUNT,_Fields.NODE_COUNT,_Fields.NUMBER_OF_THREADS,_Fields.QUEUE_NAME,_Fields.WALL_TIME_LIMIT,_Fields.JOB_START_TIME,_Fields.TOTAL_PHYSICAL_MEMORY,_Fields.COMPUTATIONAL_PROJECT_ACCOUNT};
+  private _Fields optionals[] = {_Fields.RESOURCE_HOST_ID,_Fields.TOTAL_CPUCOUNT,_Fields.NODE_COUNT,_Fields.NUMBER_OF_THREADS,_Fields.QUEUE_NAME,_Fields.WALL_TIME_LIMIT,_Fields.JOB_START_TIME,_Fields.TOTAL_PHYSICAL_MEMORY,_Fields.COMPUTATIONAL_PROJECT_ACCOUNT,_Fields.CHASSIS_NAME};
   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);
@@ -194,6 +199,8 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     tmpMap.put(_Fields.COMPUTATIONAL_PROJECT_ACCOUNT, new org.apache.thrift.meta_data.FieldMetaData("computationalProjectAccount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CHASSIS_NAME, new org.apache.thrift.meta_data.FieldMetaData("chassisName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputationalResourceScheduling.class, metaDataMap);
   }
@@ -221,6 +228,9 @@ import org.slf4j.LoggerFactory;
     if (other.isSetComputationalProjectAccount()) {
       this.computationalProjectAccount = other.computationalProjectAccount;
     }
+    if (other.isSetChassisName()) {
+      this.chassisName = other.chassisName;
+    }
   }
 
   public ComputationalResourceScheduling deepCopy() {
@@ -244,6 +254,7 @@ import org.slf4j.LoggerFactory;
     setTotalPhysicalMemoryIsSet(false);
     this.totalPhysicalMemory = 0;
     this.computationalProjectAccount = null;
+    this.chassisName = null;
   }
 
   public String getResourceHostId() {
@@ -447,6 +458,29 @@ import org.slf4j.LoggerFactory;
     }
   }
 
+  public String getChassisName() {
+    return this.chassisName;
+  }
+
+  public void setChassisName(String chassisName) {
+    this.chassisName = chassisName;
+  }
+
+  public void unsetChassisName() {
+    this.chassisName = null;
+  }
+
+  /** Returns true if field chassisName is set (has been assigned a value) and false otherwise */
+  public boolean isSetChassisName() {
+    return this.chassisName != null;
+  }
+
+  public void setChassisNameIsSet(boolean value) {
+    if (!value) {
+      this.chassisName = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case RESOURCE_HOST_ID:
@@ -521,6 +555,14 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case CHASSIS_NAME:
+      if (value == null) {
+        unsetChassisName();
+      } else {
+        setChassisName((String)value);
+      }
+      break;
+
     }
   }
 
@@ -553,6 +595,9 @@ import org.slf4j.LoggerFactory;
     case COMPUTATIONAL_PROJECT_ACCOUNT:
       return getComputationalProjectAccount();
 
+    case CHASSIS_NAME:
+      return getChassisName();
+
     }
     throw new IllegalStateException();
   }
@@ -582,6 +627,8 @@ import org.slf4j.LoggerFactory;
       return isSetTotalPhysicalMemory();
     case COMPUTATIONAL_PROJECT_ACCOUNT:
       return isSetComputationalProjectAccount();
+    case CHASSIS_NAME:
+      return isSetChassisName();
     }
     throw new IllegalStateException();
   }
@@ -680,6 +727,15 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
+    boolean this_present_chassisName = true && this.isSetChassisName();
+    boolean that_present_chassisName = true && that.isSetChassisName();
+    if (this_present_chassisName || that_present_chassisName) {
+      if (!(this_present_chassisName && that_present_chassisName))
+        return false;
+      if (!this.chassisName.equals(that.chassisName))
+        return false;
+    }
+
     return true;
   }
 
@@ -786,6 +842,16 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetChassisName()).compareTo(other.isSetChassisName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetChassisName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.chassisName, other.chassisName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -871,6 +937,16 @@ import org.slf4j.LoggerFactory;
       }
       first = false;
     }
+    if (isSetChassisName()) {
+      if (!first) sb.append(", ");
+      sb.append("chassisName:");
+      if (this.chassisName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.chassisName);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -988,6 +1064,14 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 10: // CHASSIS_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.chassisName = iprot.readString();
+              struct.setChassisNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -1052,6 +1136,13 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldEnd();
         }
       }
+      if (struct.chassisName != null) {
+        if (struct.isSetChassisName()) {
+          oprot.writeFieldBegin(CHASSIS_NAME_FIELD_DESC);
+          oprot.writeString(struct.chassisName);
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -1097,7 +1188,10 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetComputationalProjectAccount()) {
         optionals.set(8);
       }
-      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetChassisName()) {
+        optionals.set(9);
+      }
+      oprot.writeBitSet(optionals, 10);
       if (struct.isSetResourceHostId()) {
         oprot.writeString(struct.resourceHostId);
       }
@@ -1125,12 +1219,15 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetComputationalProjectAccount()) {
         oprot.writeString(struct.computationalProjectAccount);
       }
+      if (struct.isSetChassisName()) {
+        oprot.writeString(struct.chassisName);
+      }
     }
 
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, ComputationalResourceScheduling struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(9);
+      BitSet incoming = iprot.readBitSet(10);
       if (incoming.get(0)) {
         struct.resourceHostId = iprot.readString();
         struct.setResourceHostIdIsSet(true);
@@ -1167,6 +1264,10 @@ import org.slf4j.LoggerFactory;
         struct.computationalProjectAccount = iprot.readString();
         struct.setComputationalProjectAccountIsSet(true);
       }
+      if (incoming.get(9)) {
+        struct.chassisName = iprot.readString();
+        struct.setChassisNameIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c103499/airavata-api/thrift-interface-descriptions/experimentModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/experimentModel.thrift b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
index 93a961a..0801695 100644
--- a/airavata-api/thrift-interface-descriptions/experimentModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
@@ -197,7 +197,8 @@ struct ComputationalResourceScheduling {
     6: optional i32 wallTimeLimit,
     7: optional i32 jobStartTime,
     8: optional i32 totalPhysicalMemory,
-    9: optional string computationalProjectAccount
+    9: optional string computationalProjectAccount,
+    10: optional string chassisName
 }
 
 /**