You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2016/02/26 16:27:39 UTC

[4/5] airavata git commit: adding parallelism as a seperate enum

adding parallelism as a seperate enum


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

Branch: refs/heads/develop
Commit: 4363669c1fa170d175e185ad3576c23f382c2db7
Parents: 91ef607
Author: smarru <sm...@apache.org>
Authored: Fri Feb 26 10:27:04 2016 -0500
Committer: smarru <sm...@apache.org>
Committed: Fri Feb 26 10:27:04 2016 -0500

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |   2 +-
 .../application_deployment_model_types.cpp      |  22 +-
 .../application_deployment_model_types.h        |  22 +-
 .../airavata/compute_resource_model_types.cpp   | 546 ++++++++++---------
 .../lib/airavata/compute_resource_model_types.h |  11 +-
 .../airavata/parallelism_model_constants.cpp    |  34 ++
 .../lib/airavata/parallelism_model_constants.h  |  41 ++
 .../lib/airavata/parallelism_model_types.cpp    |  51 ++
 .../lib/airavata/parallelism_model_types.h      |  54 ++
 .../Model/AppCatalog/AppDeployment/Types.php    |  33 --
 .../Model/AppCatalog/ComputeResource/Types.php  | 221 +++++---
 .../Model/AppCatalog/Parallelism/Types.php      |  53 ++
 .../model/appcatalog/appdeployment/ttypes.py    |  43 +-
 .../model/appcatalog/computeresource/ttypes.py  | 138 +++--
 .../model/appcatalog/parallelism/__init__.py    |   1 +
 .../model/appcatalog/parallelism/constants.py   |  11 +
 .../model/appcatalog/parallelism/ttypes.py      |  60 ++
 .../apache/airavata/model/ComponentStatus.java  |   2 +-
 .../org/apache/airavata/model/EdgeModel.java    |   2 +-
 .../org/apache/airavata/model/NodeModel.java    |   2 +-
 .../org/apache/airavata/model/PortModel.java    |   2 +-
 .../apache/airavata/model/WorkflowModel.java    |   2 +-
 .../apache/airavata/model/WorkflowStatus.java   |   2 +-
 .../ApplicationDeploymentDescription.java       |  28 +-
 .../appdeployment/ApplicationModule.java        |   2 +-
 .../appcatalog/appdeployment/CommandObject.java |   2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |   2 +-
 .../ApplicationInterfaceDescription.java        |   2 +-
 .../appcatalog/computeresource/BatchQueue.java  |   2 +-
 .../computeresource/CloudJobSubmission.java     |   2 +-
 .../ComputeResourceDescription.java             | 218 ++++----
 .../computeresource/GlobusJobSubmission.java    |  34 +-
 .../computeresource/JobSubmissionInterface.java |   2 +-
 .../computeresource/LOCALSubmission.java        |   2 +-
 .../computeresource/ResourceJobManager.java     | 207 ++++++-
 .../computeresource/SSHJobSubmission.java       |  34 +-
 .../computeresource/UnicoreJobSubmission.java   |   2 +-
 .../ComputeResourcePreference.java              |   2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |   2 +-
 .../gatewayprofile/StoragePreference.java       |   2 +-
 .../StorageResourceDescription.java             |   2 +-
 .../application/io/InputDataObjectType.java     |   2 +-
 .../application/io/OutputDataObjectType.java    |   2 +-
 .../airavata/model/commons/ErrorModel.java      |   2 +-
 .../model/commons/ValidationResults.java        |   2 +-
 .../airavata/model/commons/ValidatorResult.java |   2 +-
 .../data/movement/DataMovementInterface.java    |   2 +-
 .../data/movement/GridFTPDataMovement.java      |   2 +-
 .../model/data/movement/LOCALDataMovement.java  |   2 +-
 .../model/data/movement/SCPDataMovement.java    |   2 +-
 .../data/movement/UnicoreDataMovement.java      |   2 +-
 .../data/resource/DataReplicaLocationModel.java |   2 +-
 .../model/data/resource/DataResourceModel.java  |   2 +-
 .../model/error/AiravataClientException.java    |   2 +-
 .../model/error/AiravataSystemException.java    |   2 +-
 .../model/error/AuthenticationException.java    |   2 +-
 .../model/error/AuthorizationException.java     |   2 +-
 .../error/ExperimentNotFoundException.java      |   2 +-
 .../model/error/InvalidRequestException.java    |   2 +-
 .../model/error/LaunchValidationException.java  |   2 +-
 .../model/error/ProjectNotFoundException.java   |   2 +-
 .../airavata/model/error/TimedOutException.java |   2 +-
 .../airavata/model/error/ValidationResults.java |   2 +-
 .../airavata/model/error/ValidatorResult.java   |   2 +-
 .../model/experiment/ExperimentModel.java       |   2 +-
 .../model/experiment/ExperimentStatistics.java  |   2 +-
 .../experiment/ExperimentSummaryModel.java      |   2 +-
 .../experiment/UserConfigurationDataModel.java  |   2 +-
 .../org/apache/airavata/model/job/JobModel.java |   2 +-
 .../event/ExperimentStatusChangeEvent.java      |   2 +-
 .../model/messaging/event/JobIdentifier.java    |   2 +-
 .../messaging/event/JobStatusChangeEvent.java   |   2 +-
 .../event/JobStatusChangeRequestEvent.java      |   2 +-
 .../airavata/model/messaging/event/Message.java |   2 +-
 .../messaging/event/ProcessIdentifier.java      |   2 +-
 .../event/ProcessStatusChangeEvent.java         |   2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |   2 +-
 .../messaging/event/ProcessSubmitEvent.java     |   2 +-
 .../messaging/event/ProcessTerminateEvent.java  |   2 +-
 .../model/messaging/event/TaskIdentifier.java   |   2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |   2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |   2 +-
 .../event/TaskStatusChangeRequestEvent.java     |   2 +-
 .../parallelism/ApplicationParallelismType.java |  90 +++
 .../airavata/model/process/ProcessModel.java    |   2 +-
 .../ComputationalResourceSchedulingModel.java   |   2 +-
 .../airavata/model/security/AuthzToken.java     |   2 +-
 .../airavata/model/status/ExperimentStatus.java |   2 +-
 .../apache/airavata/model/status/JobStatus.java |   2 +-
 .../airavata/model/status/ProcessStatus.java    |   2 +-
 .../airavata/model/status/TaskStatus.java       |   2 +-
 .../model/task/DataStagingTaskModel.java        |   2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |   2 +-
 .../model/task/JobSubmissionTaskModel.java      |   2 +-
 .../airavata/model/task/MonitorTaskModel.java   |   2 +-
 .../apache/airavata/model/task/TaskModel.java   |   2 +-
 .../airavata/model/workspace/Gateway.java       |   2 +-
 .../apache/airavata/model/workspace/Group.java  |   2 +-
 .../airavata/model/workspace/Project.java       |   2 +-
 .../apache/airavata/model/workspace/User.java   |   2 +-
 .../application_deployment_model.thrift         |  28 +-
 .../app-catalog-models/parallelism_model.thrift |  54 ++
 .../compute_resource_model.thrift               |   4 +-
 103 files changed, 1412 insertions(+), 782 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 9f1ebc4..efdd315 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-24")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-26")
 public class Airavata {
 
   public interface Iface {

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.cpp
index 07ba64f..d465140 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.cpp
@@ -30,24 +30,6 @@
 
 namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace appdeployment {
 
-int _kApplicationParallelismTypeValues[] = {
-  ApplicationParallelismType::SERIAL,
-  ApplicationParallelismType::MPI,
-  ApplicationParallelismType::OPENMP,
-  ApplicationParallelismType::OPENMP_MPI,
-  ApplicationParallelismType::CCM,
-  ApplicationParallelismType::CRAY_MPI
-};
-const char* _kApplicationParallelismTypeNames[] = {
-  "SERIAL",
-  "MPI",
-  "OPENMP",
-  "OPENMP_MPI",
-  "CCM",
-  "CRAY_MPI"
-};
-const std::map<int, const char*> _ApplicationParallelismType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(6, _kApplicationParallelismTypeValues, _kApplicationParallelismTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
-
 
 SetEnvPaths::~SetEnvPaths() throw() {
 }
@@ -470,7 +452,7 @@ void ApplicationDeploymentDescription::__set_executablePath(const std::string& v
   this->executablePath = val;
 }
 
-void ApplicationDeploymentDescription::__set_parallelism(const ApplicationParallelismType::type val) {
+void ApplicationDeploymentDescription::__set_parallelism(const  ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type val) {
   this->parallelism = val;
 }
 
@@ -571,7 +553,7 @@ uint32_t ApplicationDeploymentDescription::read(::apache::thrift::protocol::TPro
         if (ftype == ::apache::thrift::protocol::T_I32) {
           int32_t ecast6;
           xfer += iprot->readI32(ecast6);
-          this->parallelism = (ApplicationParallelismType::type)ecast6;
+          this->parallelism = ( ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type)ecast6;
           isset_parallelism = true;
         } else {
           xfer += iprot->skip(ftype);

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.h
index 7723122..5409805 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/application_deployment_model_types.h
@@ -33,23 +33,11 @@
 
 #include <thrift/cxxfunctional.h>
 #include "airavata_commons_types.h"
+#include "parallelism_model_types.h"
 
 
 namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace appdeployment {
 
-struct ApplicationParallelismType {
-  enum type {
-    SERIAL = 0,
-    MPI = 1,
-    OPENMP = 2,
-    OPENMP_MPI = 3,
-    CCM = 4,
-    CRAY_MPI = 5
-  };
-};
-
-extern const std::map<int, const char*> _ApplicationParallelismType_VALUES_TO_NAMES;
-
 class SetEnvPaths;
 
 class CommandObject;
@@ -251,8 +239,8 @@ class ApplicationDeploymentDescription {
 
   ApplicationDeploymentDescription(const ApplicationDeploymentDescription&);
   ApplicationDeploymentDescription& operator=(const ApplicationDeploymentDescription&);
-  ApplicationDeploymentDescription() : appDeploymentId("DO_NOT_SET_AT_CLIENTS"), appModuleId(), computeHostId(), executablePath(), parallelism((ApplicationParallelismType::type)0), appDeploymentDescription() {
-    parallelism = (ApplicationParallelismType::type)0;
+  ApplicationDeploymentDescription() : appDeploymentId("DO_NOT_SET_AT_CLIENTS"), appModuleId(), computeHostId(), executablePath(), parallelism(( ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type)0), appDeploymentDescription() {
+    parallelism = ( ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type)0;
 
   }
 
@@ -261,7 +249,7 @@ class ApplicationDeploymentDescription {
   std::string appModuleId;
   std::string computeHostId;
   std::string executablePath;
-  ApplicationParallelismType::type parallelism;
+   ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type parallelism;
   std::string appDeploymentDescription;
   std::vector<CommandObject>  moduleLoadCmds;
   std::vector<SetEnvPaths>  libPrependPaths;
@@ -280,7 +268,7 @@ class ApplicationDeploymentDescription {
 
   void __set_executablePath(const std::string& val);
 
-  void __set_parallelism(const ApplicationParallelismType::type val);
+  void __set_parallelism(const  ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type val);
 
   void __set_appDeploymentDescription(const std::string& val);
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp
index 506bfa0..0b81761 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.cpp
@@ -166,6 +166,11 @@ void ResourceJobManager::__set_jobManagerCommands(const std::map<JobManagerComma
 __isset.jobManagerCommands = true;
 }
 
+void ResourceJobManager::__set_parallalisimPrefix(const std::map< ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type, std::string> & val) {
+  this->parallalisimPrefix = val;
+__isset.parallalisimPrefix = true;
+}
+
 uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -248,6 +253,31 @@ uint32_t ResourceJobManager::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->parallalisimPrefix.clear();
+            uint32_t _size9;
+            ::apache::thrift::protocol::TType _ktype10;
+            ::apache::thrift::protocol::TType _vtype11;
+            xfer += iprot->readMapBegin(_ktype10, _vtype11, _size9);
+            uint32_t _i13;
+            for (_i13 = 0; _i13 < _size9; ++_i13)
+            {
+               ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type _key14;
+              int32_t ecast16;
+              xfer += iprot->readI32(ecast16);
+              _key14 = ( ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type)ecast16;
+              std::string& _val15 = this->parallalisimPrefix[_key14];
+              xfer += iprot->readString(_val15);
+            }
+            xfer += iprot->readMapEnd();
+          }
+          this->__isset.parallalisimPrefix = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -291,11 +321,25 @@ uint32_t ResourceJobManager::write(::apache::thrift::protocol::TProtocol* oprot)
     xfer += oprot->writeFieldBegin("jobManagerCommands", ::apache::thrift::protocol::T_MAP, 5);
     {
       xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_I32, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->jobManagerCommands.size()));
-      std::map<JobManagerCommand::type, std::string> ::const_iterator _iter9;
-      for (_iter9 = this->jobManagerCommands.begin(); _iter9 != this->jobManagerCommands.end(); ++_iter9)
+      std::map<JobManagerCommand::type, std::string> ::const_iterator _iter17;
+      for (_iter17 = this->jobManagerCommands.begin(); _iter17 != this->jobManagerCommands.end(); ++_iter17)
       {
-        xfer += oprot->writeI32((int32_t)_iter9->first);
-        xfer += oprot->writeString(_iter9->second);
+        xfer += oprot->writeI32((int32_t)_iter17->first);
+        xfer += oprot->writeString(_iter17->second);
+      }
+      xfer += oprot->writeMapEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.parallalisimPrefix) {
+    xfer += oprot->writeFieldBegin("parallalisimPrefix", ::apache::thrift::protocol::T_MAP, 6);
+    {
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_I32, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->parallalisimPrefix.size()));
+      std::map< ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type, std::string> ::const_iterator _iter18;
+      for (_iter18 = this->parallalisimPrefix.begin(); _iter18 != this->parallalisimPrefix.end(); ++_iter18)
+      {
+        xfer += oprot->writeI32((int32_t)_iter18->first);
+        xfer += oprot->writeString(_iter18->second);
       }
       xfer += oprot->writeMapEnd();
     }
@@ -313,24 +357,27 @@ void swap(ResourceJobManager &a, ResourceJobManager &b) {
   swap(a.pushMonitoringEndpoint, b.pushMonitoringEndpoint);
   swap(a.jobManagerBinPath, b.jobManagerBinPath);
   swap(a.jobManagerCommands, b.jobManagerCommands);
+  swap(a.parallalisimPrefix, b.parallalisimPrefix);
   swap(a.__isset, b.__isset);
 }
 
-ResourceJobManager::ResourceJobManager(const ResourceJobManager& other10) {
-  resourceJobManagerId = other10.resourceJobManagerId;
-  resourceJobManagerType = other10.resourceJobManagerType;
-  pushMonitoringEndpoint = other10.pushMonitoringEndpoint;
-  jobManagerBinPath = other10.jobManagerBinPath;
-  jobManagerCommands = other10.jobManagerCommands;
-  __isset = other10.__isset;
-}
-ResourceJobManager& ResourceJobManager::operator=(const ResourceJobManager& other11) {
-  resourceJobManagerId = other11.resourceJobManagerId;
-  resourceJobManagerType = other11.resourceJobManagerType;
-  pushMonitoringEndpoint = other11.pushMonitoringEndpoint;
-  jobManagerBinPath = other11.jobManagerBinPath;
-  jobManagerCommands = other11.jobManagerCommands;
-  __isset = other11.__isset;
+ResourceJobManager::ResourceJobManager(const ResourceJobManager& other19) {
+  resourceJobManagerId = other19.resourceJobManagerId;
+  resourceJobManagerType = other19.resourceJobManagerType;
+  pushMonitoringEndpoint = other19.pushMonitoringEndpoint;
+  jobManagerBinPath = other19.jobManagerBinPath;
+  jobManagerCommands = other19.jobManagerCommands;
+  parallalisimPrefix = other19.parallalisimPrefix;
+  __isset = other19.__isset;
+}
+ResourceJobManager& ResourceJobManager::operator=(const ResourceJobManager& other20) {
+  resourceJobManagerId = other20.resourceJobManagerId;
+  resourceJobManagerType = other20.resourceJobManagerType;
+  pushMonitoringEndpoint = other20.pushMonitoringEndpoint;
+  jobManagerBinPath = other20.jobManagerBinPath;
+  jobManagerCommands = other20.jobManagerCommands;
+  parallalisimPrefix = other20.parallalisimPrefix;
+  __isset = other20.__isset;
   return *this;
 }
 void ResourceJobManager::printTo(std::ostream& out) const {
@@ -341,6 +388,7 @@ void ResourceJobManager::printTo(std::ostream& out) const {
   out << ", " << "pushMonitoringEndpoint="; (__isset.pushMonitoringEndpoint ? (out << to_string(pushMonitoringEndpoint)) : (out << "<null>"));
   out << ", " << "jobManagerBinPath="; (__isset.jobManagerBinPath ? (out << to_string(jobManagerBinPath)) : (out << "<null>"));
   out << ", " << "jobManagerCommands="; (__isset.jobManagerCommands ? (out << to_string(jobManagerCommands)) : (out << "<null>"));
+  out << ", " << "parallalisimPrefix="; (__isset.parallalisimPrefix ? (out << to_string(parallalisimPrefix)) : (out << "<null>"));
   out << ")";
 }
 
@@ -531,25 +579,25 @@ void swap(BatchQueue &a, BatchQueue &b) {
   swap(a.__isset, b.__isset);
 }
 
-BatchQueue::BatchQueue(const BatchQueue& other12) {
-  queueName = other12.queueName;
-  queueDescription = other12.queueDescription;
-  maxRunTime = other12.maxRunTime;
-  maxNodes = other12.maxNodes;
-  maxProcessors = other12.maxProcessors;
-  maxJobsInQueue = other12.maxJobsInQueue;
-  maxMemory = other12.maxMemory;
-  __isset = other12.__isset;
-}
-BatchQueue& BatchQueue::operator=(const BatchQueue& other13) {
-  queueName = other13.queueName;
-  queueDescription = other13.queueDescription;
-  maxRunTime = other13.maxRunTime;
-  maxNodes = other13.maxNodes;
-  maxProcessors = other13.maxProcessors;
-  maxJobsInQueue = other13.maxJobsInQueue;
-  maxMemory = other13.maxMemory;
-  __isset = other13.__isset;
+BatchQueue::BatchQueue(const BatchQueue& other21) {
+  queueName = other21.queueName;
+  queueDescription = other21.queueDescription;
+  maxRunTime = other21.maxRunTime;
+  maxNodes = other21.maxNodes;
+  maxProcessors = other21.maxProcessors;
+  maxJobsInQueue = other21.maxJobsInQueue;
+  maxMemory = other21.maxMemory;
+  __isset = other21.__isset;
+}
+BatchQueue& BatchQueue::operator=(const BatchQueue& other22) {
+  queueName = other22.queueName;
+  queueDescription = other22.queueDescription;
+  maxRunTime = other22.maxRunTime;
+  maxNodes = other22.maxNodes;
+  maxProcessors = other22.maxProcessors;
+  maxJobsInQueue = other22.maxJobsInQueue;
+  maxMemory = other22.maxMemory;
+  __isset = other22.__isset;
   return *this;
 }
 void BatchQueue::printTo(std::ostream& out) const {
@@ -616,9 +664,9 @@ uint32_t LOCALSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast14;
-          xfer += iprot->readI32(ecast14);
-          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast14;
+          int32_t ecast23;
+          xfer += iprot->readI32(ecast23);
+          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast23;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -679,15 +727,15 @@ void swap(LOCALSubmission &a, LOCALSubmission &b) {
   swap(a.resourceJobManager, b.resourceJobManager);
 }
 
-LOCALSubmission::LOCALSubmission(const LOCALSubmission& other15) {
-  jobSubmissionInterfaceId = other15.jobSubmissionInterfaceId;
-  securityProtocol = other15.securityProtocol;
-  resourceJobManager = other15.resourceJobManager;
+LOCALSubmission::LOCALSubmission(const LOCALSubmission& other24) {
+  jobSubmissionInterfaceId = other24.jobSubmissionInterfaceId;
+  securityProtocol = other24.securityProtocol;
+  resourceJobManager = other24.resourceJobManager;
 }
-LOCALSubmission& LOCALSubmission::operator=(const LOCALSubmission& other16) {
-  jobSubmissionInterfaceId = other16.jobSubmissionInterfaceId;
-  securityProtocol = other16.securityProtocol;
-  resourceJobManager = other16.resourceJobManager;
+LOCALSubmission& LOCALSubmission::operator=(const LOCALSubmission& other25) {
+  jobSubmissionInterfaceId = other25.jobSubmissionInterfaceId;
+  securityProtocol = other25.securityProtocol;
+  resourceJobManager = other25.resourceJobManager;
   return *this;
 }
 void LOCALSubmission::printTo(std::ostream& out) const {
@@ -770,9 +818,9 @@ uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast17;
-          xfer += iprot->readI32(ecast17);
-          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast17;
+          int32_t ecast26;
+          xfer += iprot->readI32(ecast26);
+          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast26;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -804,9 +852,9 @@ uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 6:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast18;
-          xfer += iprot->readI32(ecast18);
-          this->monitorMode = (MonitorMode::type)ecast18;
+          int32_t ecast27;
+          xfer += iprot->readI32(ecast27);
+          this->monitorMode = (MonitorMode::type)ecast27;
           this->__isset.monitorMode = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -816,14 +864,14 @@ uint32_t SSHJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->batchQueueEmailSenders.clear();
-            uint32_t _size19;
-            ::apache::thrift::protocol::TType _etype22;
-            xfer += iprot->readListBegin(_etype22, _size19);
-            this->batchQueueEmailSenders.resize(_size19);
-            uint32_t _i23;
-            for (_i23 = 0; _i23 < _size19; ++_i23)
+            uint32_t _size28;
+            ::apache::thrift::protocol::TType _etype31;
+            xfer += iprot->readListBegin(_etype31, _size28);
+            this->batchQueueEmailSenders.resize(_size28);
+            uint32_t _i32;
+            for (_i32 = 0; _i32 < _size28; ++_i32)
             {
-              xfer += iprot->readString(this->batchQueueEmailSenders[_i23]);
+              xfer += iprot->readString(this->batchQueueEmailSenders[_i32]);
             }
             xfer += iprot->readListEnd();
           }
@@ -886,10 +934,10 @@ uint32_t SSHJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot) c
     xfer += oprot->writeFieldBegin("batchQueueEmailSenders", ::apache::thrift::protocol::T_LIST, 7);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->batchQueueEmailSenders.size()));
-      std::vector<std::string> ::const_iterator _iter24;
-      for (_iter24 = this->batchQueueEmailSenders.begin(); _iter24 != this->batchQueueEmailSenders.end(); ++_iter24)
+      std::vector<std::string> ::const_iterator _iter33;
+      for (_iter33 = this->batchQueueEmailSenders.begin(); _iter33 != this->batchQueueEmailSenders.end(); ++_iter33)
       {
-        xfer += oprot->writeString((*_iter24));
+        xfer += oprot->writeString((*_iter33));
       }
       xfer += oprot->writeListEnd();
     }
@@ -912,25 +960,25 @@ void swap(SSHJobSubmission &a, SSHJobSubmission &b) {
   swap(a.__isset, b.__isset);
 }
 
-SSHJobSubmission::SSHJobSubmission(const SSHJobSubmission& other25) {
-  jobSubmissionInterfaceId = other25.jobSubmissionInterfaceId;
-  securityProtocol = other25.securityProtocol;
-  resourceJobManager = other25.resourceJobManager;
-  alternativeSSHHostName = other25.alternativeSSHHostName;
-  sshPort = other25.sshPort;
-  monitorMode = other25.monitorMode;
-  batchQueueEmailSenders = other25.batchQueueEmailSenders;
-  __isset = other25.__isset;
-}
-SSHJobSubmission& SSHJobSubmission::operator=(const SSHJobSubmission& other26) {
-  jobSubmissionInterfaceId = other26.jobSubmissionInterfaceId;
-  securityProtocol = other26.securityProtocol;
-  resourceJobManager = other26.resourceJobManager;
-  alternativeSSHHostName = other26.alternativeSSHHostName;
-  sshPort = other26.sshPort;
-  monitorMode = other26.monitorMode;
-  batchQueueEmailSenders = other26.batchQueueEmailSenders;
-  __isset = other26.__isset;
+SSHJobSubmission::SSHJobSubmission(const SSHJobSubmission& other34) {
+  jobSubmissionInterfaceId = other34.jobSubmissionInterfaceId;
+  securityProtocol = other34.securityProtocol;
+  resourceJobManager = other34.resourceJobManager;
+  alternativeSSHHostName = other34.alternativeSSHHostName;
+  sshPort = other34.sshPort;
+  monitorMode = other34.monitorMode;
+  batchQueueEmailSenders = other34.batchQueueEmailSenders;
+  __isset = other34.__isset;
+}
+SSHJobSubmission& SSHJobSubmission::operator=(const SSHJobSubmission& other35) {
+  jobSubmissionInterfaceId = other35.jobSubmissionInterfaceId;
+  securityProtocol = other35.securityProtocol;
+  resourceJobManager = other35.resourceJobManager;
+  alternativeSSHHostName = other35.alternativeSSHHostName;
+  sshPort = other35.sshPort;
+  monitorMode = other35.monitorMode;
+  batchQueueEmailSenders = other35.batchQueueEmailSenders;
+  __isset = other35.__isset;
   return *this;
 }
 void SSHJobSubmission::printTo(std::ostream& out) const {
@@ -997,9 +1045,9 @@ uint32_t GlobusJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast27;
-          xfer += iprot->readI32(ecast27);
-          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast27;
+          int32_t ecast36;
+          xfer += iprot->readI32(ecast36);
+          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast36;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1009,14 +1057,14 @@ uint32_t GlobusJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->globusGateKeeperEndPoint.clear();
-            uint32_t _size28;
-            ::apache::thrift::protocol::TType _etype31;
-            xfer += iprot->readListBegin(_etype31, _size28);
-            this->globusGateKeeperEndPoint.resize(_size28);
-            uint32_t _i32;
-            for (_i32 = 0; _i32 < _size28; ++_i32)
+            uint32_t _size37;
+            ::apache::thrift::protocol::TType _etype40;
+            xfer += iprot->readListBegin(_etype40, _size37);
+            this->globusGateKeeperEndPoint.resize(_size37);
+            uint32_t _i41;
+            for (_i41 = 0; _i41 < _size37; ++_i41)
             {
-              xfer += iprot->readString(this->globusGateKeeperEndPoint[_i32]);
+              xfer += iprot->readString(this->globusGateKeeperEndPoint[_i41]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1058,10 +1106,10 @@ uint32_t GlobusJobSubmission::write(::apache::thrift::protocol::TProtocol* oprot
     xfer += oprot->writeFieldBegin("globusGateKeeperEndPoint", ::apache::thrift::protocol::T_LIST, 3);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->globusGateKeeperEndPoint.size()));
-      std::vector<std::string> ::const_iterator _iter33;
-      for (_iter33 = this->globusGateKeeperEndPoint.begin(); _iter33 != this->globusGateKeeperEndPoint.end(); ++_iter33)
+      std::vector<std::string> ::const_iterator _iter42;
+      for (_iter42 = this->globusGateKeeperEndPoint.begin(); _iter42 != this->globusGateKeeperEndPoint.end(); ++_iter42)
       {
-        xfer += oprot->writeString((*_iter33));
+        xfer += oprot->writeString((*_iter42));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1080,17 +1128,17 @@ void swap(GlobusJobSubmission &a, GlobusJobSubmission &b) {
   swap(a.__isset, b.__isset);
 }
 
-GlobusJobSubmission::GlobusJobSubmission(const GlobusJobSubmission& other34) {
-  jobSubmissionInterfaceId = other34.jobSubmissionInterfaceId;
-  securityProtocol = other34.securityProtocol;
-  globusGateKeeperEndPoint = other34.globusGateKeeperEndPoint;
-  __isset = other34.__isset;
+GlobusJobSubmission::GlobusJobSubmission(const GlobusJobSubmission& other43) {
+  jobSubmissionInterfaceId = other43.jobSubmissionInterfaceId;
+  securityProtocol = other43.securityProtocol;
+  globusGateKeeperEndPoint = other43.globusGateKeeperEndPoint;
+  __isset = other43.__isset;
 }
-GlobusJobSubmission& GlobusJobSubmission::operator=(const GlobusJobSubmission& other35) {
-  jobSubmissionInterfaceId = other35.jobSubmissionInterfaceId;
-  securityProtocol = other35.securityProtocol;
-  globusGateKeeperEndPoint = other35.globusGateKeeperEndPoint;
-  __isset = other35.__isset;
+GlobusJobSubmission& GlobusJobSubmission::operator=(const GlobusJobSubmission& other44) {
+  jobSubmissionInterfaceId = other44.jobSubmissionInterfaceId;
+  securityProtocol = other44.securityProtocol;
+  globusGateKeeperEndPoint = other44.globusGateKeeperEndPoint;
+  __isset = other44.__isset;
   return *this;
 }
 void GlobusJobSubmission::printTo(std::ostream& out) const {
@@ -1153,9 +1201,9 @@ uint32_t UnicoreJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast36;
-          xfer += iprot->readI32(ecast36);
-          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast36;
+          int32_t ecast45;
+          xfer += iprot->readI32(ecast45);
+          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast45;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1216,15 +1264,15 @@ void swap(UnicoreJobSubmission &a, UnicoreJobSubmission &b) {
   swap(a.unicoreEndPointURL, b.unicoreEndPointURL);
 }
 
-UnicoreJobSubmission::UnicoreJobSubmission(const UnicoreJobSubmission& other37) {
-  jobSubmissionInterfaceId = other37.jobSubmissionInterfaceId;
-  securityProtocol = other37.securityProtocol;
-  unicoreEndPointURL = other37.unicoreEndPointURL;
+UnicoreJobSubmission::UnicoreJobSubmission(const UnicoreJobSubmission& other46) {
+  jobSubmissionInterfaceId = other46.jobSubmissionInterfaceId;
+  securityProtocol = other46.securityProtocol;
+  unicoreEndPointURL = other46.unicoreEndPointURL;
 }
-UnicoreJobSubmission& UnicoreJobSubmission::operator=(const UnicoreJobSubmission& other38) {
-  jobSubmissionInterfaceId = other38.jobSubmissionInterfaceId;
-  securityProtocol = other38.securityProtocol;
-  unicoreEndPointURL = other38.unicoreEndPointURL;
+UnicoreJobSubmission& UnicoreJobSubmission::operator=(const UnicoreJobSubmission& other47) {
+  jobSubmissionInterfaceId = other47.jobSubmissionInterfaceId;
+  securityProtocol = other47.securityProtocol;
+  unicoreEndPointURL = other47.unicoreEndPointURL;
   return *this;
 }
 void UnicoreJobSubmission::printTo(std::ostream& out) const {
@@ -1302,9 +1350,9 @@ uint32_t CloudJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast39;
-          xfer += iprot->readI32(ecast39);
-          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast39;
+          int32_t ecast48;
+          xfer += iprot->readI32(ecast48);
+          this->securityProtocol = ( ::apache::airavata::model::data::movement::SecurityProtocol::type)ecast48;
           isset_securityProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1328,9 +1376,9 @@ uint32_t CloudJobSubmission::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 5:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast40;
-          xfer += iprot->readI32(ecast40);
-          this->providerName = (ProviderName::type)ecast40;
+          int32_t ecast49;
+          xfer += iprot->readI32(ecast49);
+          this->providerName = (ProviderName::type)ecast49;
           isset_providerName = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1412,21 +1460,21 @@ void swap(CloudJobSubmission &a, CloudJobSubmission &b) {
   swap(a.userAccountName, b.userAccountName);
 }
 
-CloudJobSubmission::CloudJobSubmission(const CloudJobSubmission& other41) {
-  jobSubmissionInterfaceId = other41.jobSubmissionInterfaceId;
-  securityProtocol = other41.securityProtocol;
-  nodeId = other41.nodeId;
-  executableType = other41.executableType;
-  providerName = other41.providerName;
-  userAccountName = other41.userAccountName;
-}
-CloudJobSubmission& CloudJobSubmission::operator=(const CloudJobSubmission& other42) {
-  jobSubmissionInterfaceId = other42.jobSubmissionInterfaceId;
-  securityProtocol = other42.securityProtocol;
-  nodeId = other42.nodeId;
-  executableType = other42.executableType;
-  providerName = other42.providerName;
-  userAccountName = other42.userAccountName;
+CloudJobSubmission::CloudJobSubmission(const CloudJobSubmission& other50) {
+  jobSubmissionInterfaceId = other50.jobSubmissionInterfaceId;
+  securityProtocol = other50.securityProtocol;
+  nodeId = other50.nodeId;
+  executableType = other50.executableType;
+  providerName = other50.providerName;
+  userAccountName = other50.userAccountName;
+}
+CloudJobSubmission& CloudJobSubmission::operator=(const CloudJobSubmission& other51) {
+  jobSubmissionInterfaceId = other51.jobSubmissionInterfaceId;
+  securityProtocol = other51.securityProtocol;
+  nodeId = other51.nodeId;
+  executableType = other51.executableType;
+  providerName = other51.providerName;
+  userAccountName = other51.userAccountName;
   return *this;
 }
 void CloudJobSubmission::printTo(std::ostream& out) const {
@@ -1492,9 +1540,9 @@ uint32_t JobSubmissionInterface::read(::apache::thrift::protocol::TProtocol* ipr
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast43;
-          xfer += iprot->readI32(ecast43);
-          this->jobSubmissionProtocol = (JobSubmissionProtocol::type)ecast43;
+          int32_t ecast52;
+          xfer += iprot->readI32(ecast52);
+          this->jobSubmissionProtocol = (JobSubmissionProtocol::type)ecast52;
           isset_jobSubmissionProtocol = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1555,15 +1603,15 @@ void swap(JobSubmissionInterface &a, JobSubmissionInterface &b) {
   swap(a.priorityOrder, b.priorityOrder);
 }
 
-JobSubmissionInterface::JobSubmissionInterface(const JobSubmissionInterface& other44) {
-  jobSubmissionInterfaceId = other44.jobSubmissionInterfaceId;
-  jobSubmissionProtocol = other44.jobSubmissionProtocol;
-  priorityOrder = other44.priorityOrder;
+JobSubmissionInterface::JobSubmissionInterface(const JobSubmissionInterface& other53) {
+  jobSubmissionInterfaceId = other53.jobSubmissionInterfaceId;
+  jobSubmissionProtocol = other53.jobSubmissionProtocol;
+  priorityOrder = other53.priorityOrder;
 }
-JobSubmissionInterface& JobSubmissionInterface::operator=(const JobSubmissionInterface& other45) {
-  jobSubmissionInterfaceId = other45.jobSubmissionInterfaceId;
-  jobSubmissionProtocol = other45.jobSubmissionProtocol;
-  priorityOrder = other45.priorityOrder;
+JobSubmissionInterface& JobSubmissionInterface::operator=(const JobSubmissionInterface& other54) {
+  jobSubmissionInterfaceId = other54.jobSubmissionInterfaceId;
+  jobSubmissionProtocol = other54.jobSubmissionProtocol;
+  priorityOrder = other54.priorityOrder;
   return *this;
 }
 void JobSubmissionInterface::printTo(std::ostream& out) const {
@@ -1691,14 +1739,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->hostAliases.clear();
-            uint32_t _size46;
-            ::apache::thrift::protocol::TType _etype49;
-            xfer += iprot->readListBegin(_etype49, _size46);
-            this->hostAliases.resize(_size46);
-            uint32_t _i50;
-            for (_i50 = 0; _i50 < _size46; ++_i50)
+            uint32_t _size55;
+            ::apache::thrift::protocol::TType _etype58;
+            xfer += iprot->readListBegin(_etype58, _size55);
+            this->hostAliases.resize(_size55);
+            uint32_t _i59;
+            for (_i59 = 0; _i59 < _size55; ++_i59)
             {
-              xfer += iprot->readString(this->hostAliases[_i50]);
+              xfer += iprot->readString(this->hostAliases[_i59]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1711,14 +1759,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->ipAddresses.clear();
-            uint32_t _size51;
-            ::apache::thrift::protocol::TType _etype54;
-            xfer += iprot->readListBegin(_etype54, _size51);
-            this->ipAddresses.resize(_size51);
-            uint32_t _i55;
-            for (_i55 = 0; _i55 < _size51; ++_i55)
+            uint32_t _size60;
+            ::apache::thrift::protocol::TType _etype63;
+            xfer += iprot->readListBegin(_etype63, _size60);
+            this->ipAddresses.resize(_size60);
+            uint32_t _i64;
+            for (_i64 = 0; _i64 < _size60; ++_i64)
             {
-              xfer += iprot->readString(this->ipAddresses[_i55]);
+              xfer += iprot->readString(this->ipAddresses[_i64]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1747,14 +1795,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->batchQueues.clear();
-            uint32_t _size56;
-            ::apache::thrift::protocol::TType _etype59;
-            xfer += iprot->readListBegin(_etype59, _size56);
-            this->batchQueues.resize(_size56);
-            uint32_t _i60;
-            for (_i60 = 0; _i60 < _size56; ++_i60)
+            uint32_t _size65;
+            ::apache::thrift::protocol::TType _etype68;
+            xfer += iprot->readListBegin(_etype68, _size65);
+            this->batchQueues.resize(_size65);
+            uint32_t _i69;
+            for (_i69 = 0; _i69 < _size65; ++_i69)
             {
-              xfer += this->batchQueues[_i60].read(iprot);
+              xfer += this->batchQueues[_i69].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1767,19 +1815,19 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->fileSystems.clear();
-            uint32_t _size61;
-            ::apache::thrift::protocol::TType _ktype62;
-            ::apache::thrift::protocol::TType _vtype63;
-            xfer += iprot->readMapBegin(_ktype62, _vtype63, _size61);
-            uint32_t _i65;
-            for (_i65 = 0; _i65 < _size61; ++_i65)
+            uint32_t _size70;
+            ::apache::thrift::protocol::TType _ktype71;
+            ::apache::thrift::protocol::TType _vtype72;
+            xfer += iprot->readMapBegin(_ktype71, _vtype72, _size70);
+            uint32_t _i74;
+            for (_i74 = 0; _i74 < _size70; ++_i74)
             {
-              FileSystems::type _key66;
-              int32_t ecast68;
-              xfer += iprot->readI32(ecast68);
-              _key66 = (FileSystems::type)ecast68;
-              std::string& _val67 = this->fileSystems[_key66];
-              xfer += iprot->readString(_val67);
+              FileSystems::type _key75;
+              int32_t ecast77;
+              xfer += iprot->readI32(ecast77);
+              _key75 = (FileSystems::type)ecast77;
+              std::string& _val76 = this->fileSystems[_key75];
+              xfer += iprot->readString(_val76);
             }
             xfer += iprot->readMapEnd();
           }
@@ -1792,14 +1840,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->jobSubmissionInterfaces.clear();
-            uint32_t _size69;
-            ::apache::thrift::protocol::TType _etype72;
-            xfer += iprot->readListBegin(_etype72, _size69);
-            this->jobSubmissionInterfaces.resize(_size69);
-            uint32_t _i73;
-            for (_i73 = 0; _i73 < _size69; ++_i73)
+            uint32_t _size78;
+            ::apache::thrift::protocol::TType _etype81;
+            xfer += iprot->readListBegin(_etype81, _size78);
+            this->jobSubmissionInterfaces.resize(_size78);
+            uint32_t _i82;
+            for (_i82 = 0; _i82 < _size78; ++_i82)
             {
-              xfer += this->jobSubmissionInterfaces[_i73].read(iprot);
+              xfer += this->jobSubmissionInterfaces[_i82].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1812,14 +1860,14 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->dataMovementInterfaces.clear();
-            uint32_t _size74;
-            ::apache::thrift::protocol::TType _etype77;
-            xfer += iprot->readListBegin(_etype77, _size74);
-            this->dataMovementInterfaces.resize(_size74);
-            uint32_t _i78;
-            for (_i78 = 0; _i78 < _size74; ++_i78)
+            uint32_t _size83;
+            ::apache::thrift::protocol::TType _etype86;
+            xfer += iprot->readListBegin(_etype86, _size83);
+            this->dataMovementInterfaces.resize(_size83);
+            uint32_t _i87;
+            for (_i87 = 0; _i87 < _size83; ++_i87)
             {
-              xfer += this->dataMovementInterfaces[_i78].read(iprot);
+              xfer += this->dataMovementInterfaces[_i87].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1893,10 +1941,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("hostAliases", ::apache::thrift::protocol::T_LIST, 3);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->hostAliases.size()));
-      std::vector<std::string> ::const_iterator _iter79;
-      for (_iter79 = this->hostAliases.begin(); _iter79 != this->hostAliases.end(); ++_iter79)
+      std::vector<std::string> ::const_iterator _iter88;
+      for (_iter88 = this->hostAliases.begin(); _iter88 != this->hostAliases.end(); ++_iter88)
       {
-        xfer += oprot->writeString((*_iter79));
+        xfer += oprot->writeString((*_iter88));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1906,10 +1954,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("ipAddresses", ::apache::thrift::protocol::T_LIST, 4);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->ipAddresses.size()));
-      std::vector<std::string> ::const_iterator _iter80;
-      for (_iter80 = this->ipAddresses.begin(); _iter80 != this->ipAddresses.end(); ++_iter80)
+      std::vector<std::string> ::const_iterator _iter89;
+      for (_iter89 = this->ipAddresses.begin(); _iter89 != this->ipAddresses.end(); ++_iter89)
       {
-        xfer += oprot->writeString((*_iter80));
+        xfer += oprot->writeString((*_iter89));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1929,10 +1977,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("batchQueues", ::apache::thrift::protocol::T_LIST, 7);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->batchQueues.size()));
-      std::vector<BatchQueue> ::const_iterator _iter81;
-      for (_iter81 = this->batchQueues.begin(); _iter81 != this->batchQueues.end(); ++_iter81)
+      std::vector<BatchQueue> ::const_iterator _iter90;
+      for (_iter90 = this->batchQueues.begin(); _iter90 != this->batchQueues.end(); ++_iter90)
       {
-        xfer += (*_iter81).write(oprot);
+        xfer += (*_iter90).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1942,11 +1990,11 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("fileSystems", ::apache::thrift::protocol::T_MAP, 8);
     {
       xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_I32, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->fileSystems.size()));
-      std::map<FileSystems::type, std::string> ::const_iterator _iter82;
-      for (_iter82 = this->fileSystems.begin(); _iter82 != this->fileSystems.end(); ++_iter82)
+      std::map<FileSystems::type, std::string> ::const_iterator _iter91;
+      for (_iter91 = this->fileSystems.begin(); _iter91 != this->fileSystems.end(); ++_iter91)
       {
-        xfer += oprot->writeI32((int32_t)_iter82->first);
-        xfer += oprot->writeString(_iter82->second);
+        xfer += oprot->writeI32((int32_t)_iter91->first);
+        xfer += oprot->writeString(_iter91->second);
       }
       xfer += oprot->writeMapEnd();
     }
@@ -1956,10 +2004,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("jobSubmissionInterfaces", ::apache::thrift::protocol::T_LIST, 9);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobSubmissionInterfaces.size()));
-      std::vector<JobSubmissionInterface> ::const_iterator _iter83;
-      for (_iter83 = this->jobSubmissionInterfaces.begin(); _iter83 != this->jobSubmissionInterfaces.end(); ++_iter83)
+      std::vector<JobSubmissionInterface> ::const_iterator _iter92;
+      for (_iter92 = this->jobSubmissionInterfaces.begin(); _iter92 != this->jobSubmissionInterfaces.end(); ++_iter92)
       {
-        xfer += (*_iter83).write(oprot);
+        xfer += (*_iter92).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1969,10 +2017,10 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("dataMovementInterfaces", ::apache::thrift::protocol::T_LIST, 10);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->dataMovementInterfaces.size()));
-      std::vector< ::apache::airavata::model::data::movement::DataMovementInterface> ::const_iterator _iter84;
-      for (_iter84 = this->dataMovementInterfaces.begin(); _iter84 != this->dataMovementInterfaces.end(); ++_iter84)
+      std::vector< ::apache::airavata::model::data::movement::DataMovementInterface> ::const_iterator _iter93;
+      for (_iter93 = this->dataMovementInterfaces.begin(); _iter93 != this->dataMovementInterfaces.end(); ++_iter93)
       {
-        xfer += (*_iter84).write(oprot);
+        xfer += (*_iter93).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2022,39 +2070,39 @@ void swap(ComputeResourceDescription &a, ComputeResourceDescription &b) {
   swap(a.__isset, b.__isset);
 }
 
-ComputeResourceDescription::ComputeResourceDescription(const ComputeResourceDescription& other85) {
-  computeResourceId = other85.computeResourceId;
-  hostName = other85.hostName;
-  hostAliases = other85.hostAliases;
-  ipAddresses = other85.ipAddresses;
-  resourceDescription = other85.resourceDescription;
-  enabled = other85.enabled;
-  batchQueues = other85.batchQueues;
-  fileSystems = other85.fileSystems;
-  jobSubmissionInterfaces = other85.jobSubmissionInterfaces;
-  dataMovementInterfaces = other85.dataMovementInterfaces;
-  maxMemoryPerNode = other85.maxMemoryPerNode;
-  gatewayUsageReporting = other85.gatewayUsageReporting;
-  gatewayUsageModuleLoadCommand = other85.gatewayUsageModuleLoadCommand;
-  gatewayUsageExecutable = other85.gatewayUsageExecutable;
-  __isset = other85.__isset;
-}
-ComputeResourceDescription& ComputeResourceDescription::operator=(const ComputeResourceDescription& other86) {
-  computeResourceId = other86.computeResourceId;
-  hostName = other86.hostName;
-  hostAliases = other86.hostAliases;
-  ipAddresses = other86.ipAddresses;
-  resourceDescription = other86.resourceDescription;
-  enabled = other86.enabled;
-  batchQueues = other86.batchQueues;
-  fileSystems = other86.fileSystems;
-  jobSubmissionInterfaces = other86.jobSubmissionInterfaces;
-  dataMovementInterfaces = other86.dataMovementInterfaces;
-  maxMemoryPerNode = other86.maxMemoryPerNode;
-  gatewayUsageReporting = other86.gatewayUsageReporting;
-  gatewayUsageModuleLoadCommand = other86.gatewayUsageModuleLoadCommand;
-  gatewayUsageExecutable = other86.gatewayUsageExecutable;
-  __isset = other86.__isset;
+ComputeResourceDescription::ComputeResourceDescription(const ComputeResourceDescription& other94) {
+  computeResourceId = other94.computeResourceId;
+  hostName = other94.hostName;
+  hostAliases = other94.hostAliases;
+  ipAddresses = other94.ipAddresses;
+  resourceDescription = other94.resourceDescription;
+  enabled = other94.enabled;
+  batchQueues = other94.batchQueues;
+  fileSystems = other94.fileSystems;
+  jobSubmissionInterfaces = other94.jobSubmissionInterfaces;
+  dataMovementInterfaces = other94.dataMovementInterfaces;
+  maxMemoryPerNode = other94.maxMemoryPerNode;
+  gatewayUsageReporting = other94.gatewayUsageReporting;
+  gatewayUsageModuleLoadCommand = other94.gatewayUsageModuleLoadCommand;
+  gatewayUsageExecutable = other94.gatewayUsageExecutable;
+  __isset = other94.__isset;
+}
+ComputeResourceDescription& ComputeResourceDescription::operator=(const ComputeResourceDescription& other95) {
+  computeResourceId = other95.computeResourceId;
+  hostName = other95.hostName;
+  hostAliases = other95.hostAliases;
+  ipAddresses = other95.ipAddresses;
+  resourceDescription = other95.resourceDescription;
+  enabled = other95.enabled;
+  batchQueues = other95.batchQueues;
+  fileSystems = other95.fileSystems;
+  jobSubmissionInterfaces = other95.jobSubmissionInterfaces;
+  dataMovementInterfaces = other95.dataMovementInterfaces;
+  maxMemoryPerNode = other95.maxMemoryPerNode;
+  gatewayUsageReporting = other95.gatewayUsageReporting;
+  gatewayUsageModuleLoadCommand = other95.gatewayUsageModuleLoadCommand;
+  gatewayUsageExecutable = other95.gatewayUsageExecutable;
+  __isset = other95.__isset;
   return *this;
 }
 void ComputeResourceDescription::printTo(std::ostream& out) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h
index 2d64916..3a1b23a 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/compute_resource_model_types.h
@@ -33,6 +33,7 @@
 
 #include <thrift/cxxfunctional.h>
 #include "airavata_commons_types.h"
+#include "parallelism_model_types.h"
 #include "data_movement_models_types.h"
 
 
@@ -139,10 +140,11 @@ class JobSubmissionInterface;
 class ComputeResourceDescription;
 
 typedef struct _ResourceJobManager__isset {
-  _ResourceJobManager__isset() : pushMonitoringEndpoint(false), jobManagerBinPath(false), jobManagerCommands(false) {}
+  _ResourceJobManager__isset() : pushMonitoringEndpoint(false), jobManagerBinPath(false), jobManagerCommands(false), parallalisimPrefix(false) {}
   bool pushMonitoringEndpoint :1;
   bool jobManagerBinPath :1;
   bool jobManagerCommands :1;
+  bool parallalisimPrefix :1;
 } _ResourceJobManager__isset;
 
 class ResourceJobManager {
@@ -159,6 +161,7 @@ class ResourceJobManager {
   std::string pushMonitoringEndpoint;
   std::string jobManagerBinPath;
   std::map<JobManagerCommand::type, std::string>  jobManagerCommands;
+  std::map< ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type, std::string>  parallalisimPrefix;
 
   _ResourceJobManager__isset __isset;
 
@@ -172,6 +175,8 @@ class ResourceJobManager {
 
   void __set_jobManagerCommands(const std::map<JobManagerCommand::type, std::string> & val);
 
+  void __set_parallalisimPrefix(const std::map< ::apache::airavata::model::appcatalog::parallelism::ApplicationParallelismType::type, std::string> & val);
+
   bool operator == (const ResourceJobManager & rhs) const
   {
     if (!(resourceJobManagerId == rhs.resourceJobManagerId))
@@ -190,6 +195,10 @@ class ResourceJobManager {
       return false;
     else if (__isset.jobManagerCommands && !(jobManagerCommands == rhs.jobManagerCommands))
       return false;
+    if (__isset.parallalisimPrefix != rhs.__isset.parallalisimPrefix)
+      return false;
+    else if (__isset.parallalisimPrefix && !(parallalisimPrefix == rhs.parallalisimPrefix))
+      return false;
     return true;
   }
   bool operator != (const ResourceJobManager &rhs) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_constants.cpp
new file mode 100644
index 0000000..d87ebe0
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_constants.cpp
@@ -0,0 +1,34 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "parallelism_model_constants.h"
+
+namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace parallelism {
+
+const parallelism_modelConstants g_parallelism_model_constants;
+
+parallelism_modelConstants::parallelism_modelConstants() {
+}
+
+}}}}} // namespace
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_constants.h
new file mode 100644
index 0000000..7069c90
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_constants.h
@@ -0,0 +1,41 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef parallelism_model_CONSTANTS_H
+#define parallelism_model_CONSTANTS_H
+
+#include "parallelism_model_types.h"
+
+namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace parallelism {
+
+class parallelism_modelConstants {
+ public:
+  parallelism_modelConstants();
+
+};
+
+extern const parallelism_modelConstants g_parallelism_model_constants;
+
+}}}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_types.cpp
new file mode 100644
index 0000000..554914e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_types.cpp
@@ -0,0 +1,51 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "parallelism_model_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace parallelism {
+
+int _kApplicationParallelismTypeValues[] = {
+  ApplicationParallelismType::SERIAL,
+  ApplicationParallelismType::MPI,
+  ApplicationParallelismType::OPENMP,
+  ApplicationParallelismType::OPENMP_MPI,
+  ApplicationParallelismType::CCM,
+  ApplicationParallelismType::CRAY_MPI
+};
+const char* _kApplicationParallelismTypeNames[] = {
+  "SERIAL",
+  "MPI",
+  "OPENMP",
+  "OPENMP_MPI",
+  "CCM",
+  "CRAY_MPI"
+};
+const std::map<int, const char*> _ApplicationParallelismType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(6, _kApplicationParallelismTypeValues, _kApplicationParallelismTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+}}}}} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_types.h
new file mode 100644
index 0000000..c123c08
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/parallelism_model_types.h
@@ -0,0 +1,54 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef parallelism_model_TYPES_H
+#define parallelism_model_TYPES_H
+
+#include <iosfwd>
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+
+
+namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace parallelism {
+
+struct ApplicationParallelismType {
+  enum type {
+    SERIAL = 0,
+    MPI = 1,
+    OPENMP = 2,
+    OPENMP_MPI = 3,
+    CCM = 4,
+    CRAY_MPI = 5
+  };
+};
+
+extern const std::map<int, const char*> _ApplicationParallelismType_VALUES_TO_NAMES;
+
+}}}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppDeployment/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppDeployment/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppDeployment/Types.php
index ab599e6..29965e7 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppDeployment/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppDeployment/Types.php
@@ -18,39 +18,6 @@ use Thrift\Exception\TApplicationException;
 
 
 /**
- * Enumeration of application parallelism supported by Airavata
- * 
- * SERIAL:
- *  Single processor applications without any parallelization.
- * 
- * MPI:
- *  Messaging Passing Interface.
- * 
- * OPENMP:
- *  Shared Memory Implementtaion.
- * 
- * OPENMP_MPI:
- *  Hybrid Applications.
- * 
- */
-final class ApplicationParallelismType {
-  const SERIAL = 0;
-  const MPI = 1;
-  const OPENMP = 2;
-  const OPENMP_MPI = 3;
-  const CCM = 4;
-  const CRAY_MPI = 5;
-  static public $__names = array(
-    0 => 'SERIAL',
-    1 => 'MPI',
-    2 => 'OPENMP',
-    3 => 'OPENMP_MPI',
-    4 => 'CCM',
-    5 => 'CRAY_MPI',
-  );
-}
-
-/**
  * Key Value pairs to be used to set environments
  * 
  * name:

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
index 5b79870..f99923d 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
@@ -246,6 +246,10 @@ class ResourceJobManager {
    * @var array
    */
   public $jobManagerCommands = null;
+  /**
+   * @var array
+   */
+  public $parallalisimPrefix = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -278,6 +282,18 @@ class ResourceJobManager {
             'type' => TType::STRING,
             ),
           ),
+        6 => array(
+          'var' => 'parallalisimPrefix',
+          'type' => TType::MAP,
+          'ktype' => TType::I32,
+          'vtype' => TType::STRING,
+          'key' => array(
+            'type' => TType::I32,
+          ),
+          'val' => array(
+            'type' => TType::STRING,
+            ),
+          ),
         );
     }
     if (is_array($vals)) {
@@ -296,6 +312,9 @@ class ResourceJobManager {
       if (isset($vals['jobManagerCommands'])) {
         $this->jobManagerCommands = $vals['jobManagerCommands'];
       }
+      if (isset($vals['parallalisimPrefix'])) {
+        $this->parallalisimPrefix = $vals['parallalisimPrefix'];
+      }
     }
   }
 
@@ -366,6 +385,26 @@ class ResourceJobManager {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 6:
+          if ($ftype == TType::MAP) {
+            $this->parallalisimPrefix = array();
+            $_size7 = 0;
+            $_ktype8 = 0;
+            $_vtype9 = 0;
+            $xfer += $input->readMapBegin($_ktype8, $_vtype9, $_size7);
+            for ($_i11 = 0; $_i11 < $_size7; ++$_i11)
+            {
+              $key12 = 0;
+              $val13 = '';
+              $xfer += $input->readI32($key12);
+              $xfer += $input->readString($val13);
+              $this->parallalisimPrefix[$key12] = $val13;
+            }
+            $xfer += $input->readMapEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -407,10 +446,28 @@ class ResourceJobManager {
       {
         $output->writeMapBegin(TType::I32, TType::STRING, count($this->jobManagerCommands));
         {
-          foreach ($this->jobManagerCommands as $kiter7 => $viter8)
+          foreach ($this->jobManagerCommands as $kiter14 => $viter15)
+          {
+            $xfer += $output->writeI32($kiter14);
+            $xfer += $output->writeString($viter15);
+          }
+        }
+        $output->writeMapEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->parallalisimPrefix !== null) {
+      if (!is_array($this->parallalisimPrefix)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('parallalisimPrefix', TType::MAP, 6);
+      {
+        $output->writeMapBegin(TType::I32, TType::STRING, count($this->parallalisimPrefix));
+        {
+          foreach ($this->parallalisimPrefix as $kiter16 => $viter17)
           {
-            $xfer += $output->writeI32($kiter7);
-            $xfer += $output->writeString($viter8);
+            $xfer += $output->writeI32($kiter16);
+            $xfer += $output->writeString($viter17);
           }
         }
         $output->writeMapEnd();
@@ -954,14 +1011,14 @@ class SSHJobSubmission {
         case 7:
           if ($ftype == TType::LST) {
             $this->batchQueueEmailSenders = array();
-            $_size9 = 0;
-            $_etype12 = 0;
-            $xfer += $input->readListBegin($_etype12, $_size9);
-            for ($_i13 = 0; $_i13 < $_size9; ++$_i13)
+            $_size18 = 0;
+            $_etype21 = 0;
+            $xfer += $input->readListBegin($_etype21, $_size18);
+            for ($_i22 = 0; $_i22 < $_size18; ++$_i22)
             {
-              $elem14 = null;
-              $xfer += $input->readString($elem14);
-              $this->batchQueueEmailSenders []= $elem14;
+              $elem23 = null;
+              $xfer += $input->readString($elem23);
+              $this->batchQueueEmailSenders []= $elem23;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1022,9 +1079,9 @@ class SSHJobSubmission {
       {
         $output->writeListBegin(TType::STRING, count($this->batchQueueEmailSenders));
         {
-          foreach ($this->batchQueueEmailSenders as $iter15)
+          foreach ($this->batchQueueEmailSenders as $iter24)
           {
-            $xfer += $output->writeString($iter15);
+            $xfer += $output->writeString($iter24);
           }
         }
         $output->writeListEnd();
@@ -1124,14 +1181,14 @@ class GlobusJobSubmission {
         case 3:
           if ($ftype == TType::LST) {
             $this->globusGateKeeperEndPoint = array();
-            $_size16 = 0;
-            $_etype19 = 0;
-            $xfer += $input->readListBegin($_etype19, $_size16);
-            for ($_i20 = 0; $_i20 < $_size16; ++$_i20)
+            $_size25 = 0;
+            $_etype28 = 0;
+            $xfer += $input->readListBegin($_etype28, $_size25);
+            for ($_i29 = 0; $_i29 < $_size25; ++$_i29)
             {
-              $elem21 = null;
-              $xfer += $input->readString($elem21);
-              $this->globusGateKeeperEndPoint []= $elem21;
+              $elem30 = null;
+              $xfer += $input->readString($elem30);
+              $this->globusGateKeeperEndPoint []= $elem30;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1169,9 +1226,9 @@ class GlobusJobSubmission {
       {
         $output->writeListBegin(TType::STRING, count($this->globusGateKeeperEndPoint));
         {
-          foreach ($this->globusGateKeeperEndPoint as $iter22)
+          foreach ($this->globusGateKeeperEndPoint as $iter31)
           {
-            $xfer += $output->writeString($iter22);
+            $xfer += $output->writeString($iter31);
           }
         }
         $output->writeListEnd();
@@ -1903,14 +1960,14 @@ class ComputeResourceDescription {
         case 3:
           if ($ftype == TType::LST) {
             $this->hostAliases = array();
-            $_size23 = 0;
-            $_etype26 = 0;
-            $xfer += $input->readListBegin($_etype26, $_size23);
-            for ($_i27 = 0; $_i27 < $_size23; ++$_i27)
+            $_size32 = 0;
+            $_etype35 = 0;
+            $xfer += $input->readListBegin($_etype35, $_size32);
+            for ($_i36 = 0; $_i36 < $_size32; ++$_i36)
             {
-              $elem28 = null;
-              $xfer += $input->readString($elem28);
-              $this->hostAliases []= $elem28;
+              $elem37 = null;
+              $xfer += $input->readString($elem37);
+              $this->hostAliases []= $elem37;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1920,14 +1977,14 @@ class ComputeResourceDescription {
         case 4:
           if ($ftype == TType::LST) {
             $this->ipAddresses = array();
-            $_size29 = 0;
-            $_etype32 = 0;
-            $xfer += $input->readListBegin($_etype32, $_size29);
-            for ($_i33 = 0; $_i33 < $_size29; ++$_i33)
+            $_size38 = 0;
+            $_etype41 = 0;
+            $xfer += $input->readListBegin($_etype41, $_size38);
+            for ($_i42 = 0; $_i42 < $_size38; ++$_i42)
             {
-              $elem34 = null;
-              $xfer += $input->readString($elem34);
-              $this->ipAddresses []= $elem34;
+              $elem43 = null;
+              $xfer += $input->readString($elem43);
+              $this->ipAddresses []= $elem43;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1951,15 +2008,15 @@ class ComputeResourceDescription {
         case 7:
           if ($ftype == TType::LST) {
             $this->batchQueues = array();
-            $_size35 = 0;
-            $_etype38 = 0;
-            $xfer += $input->readListBegin($_etype38, $_size35);
-            for ($_i39 = 0; $_i39 < $_size35; ++$_i39)
+            $_size44 = 0;
+            $_etype47 = 0;
+            $xfer += $input->readListBegin($_etype47, $_size44);
+            for ($_i48 = 0; $_i48 < $_size44; ++$_i48)
             {
-              $elem40 = null;
-              $elem40 = new \Airavata\Model\AppCatalog\ComputeResource\BatchQueue();
-              $xfer += $elem40->read($input);
-              $this->batchQueues []= $elem40;
+              $elem49 = null;
+              $elem49 = new \Airavata\Model\AppCatalog\ComputeResource\BatchQueue();
+              $xfer += $elem49->read($input);
+              $this->batchQueues []= $elem49;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1969,17 +2026,17 @@ class ComputeResourceDescription {
         case 8:
           if ($ftype == TType::MAP) {
             $this->fileSystems = array();
-            $_size41 = 0;
-            $_ktype42 = 0;
-            $_vtype43 = 0;
-            $xfer += $input->readMapBegin($_ktype42, $_vtype43, $_size41);
-            for ($_i45 = 0; $_i45 < $_size41; ++$_i45)
+            $_size50 = 0;
+            $_ktype51 = 0;
+            $_vtype52 = 0;
+            $xfer += $input->readMapBegin($_ktype51, $_vtype52, $_size50);
+            for ($_i54 = 0; $_i54 < $_size50; ++$_i54)
             {
-              $key46 = 0;
-              $val47 = '';
-              $xfer += $input->readI32($key46);
-              $xfer += $input->readString($val47);
-              $this->fileSystems[$key46] = $val47;
+              $key55 = 0;
+              $val56 = '';
+              $xfer += $input->readI32($key55);
+              $xfer += $input->readString($val56);
+              $this->fileSystems[$key55] = $val56;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -1989,15 +2046,15 @@ class ComputeResourceDescription {
         case 9:
           if ($ftype == TType::LST) {
             $this->jobSubmissionInterfaces = array();
-            $_size48 = 0;
-            $_etype51 = 0;
-            $xfer += $input->readListBegin($_etype51, $_size48);
-            for ($_i52 = 0; $_i52 < $_size48; ++$_i52)
+            $_size57 = 0;
+            $_etype60 = 0;
+            $xfer += $input->readListBegin($_etype60, $_size57);
+            for ($_i61 = 0; $_i61 < $_size57; ++$_i61)
             {
-              $elem53 = null;
-              $elem53 = new \Airavata\Model\AppCatalog\ComputeResource\JobSubmissionInterface();
-              $xfer += $elem53->read($input);
-              $this->jobSubmissionInterfaces []= $elem53;
+              $elem62 = null;
+              $elem62 = new \Airavata\Model\AppCatalog\ComputeResource\JobSubmissionInterface();
+              $xfer += $elem62->read($input);
+              $this->jobSubmissionInterfaces []= $elem62;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -2007,15 +2064,15 @@ class ComputeResourceDescription {
         case 10:
           if ($ftype == TType::LST) {
             $this->dataMovementInterfaces = array();
-            $_size54 = 0;
-            $_etype57 = 0;
-            $xfer += $input->readListBegin($_etype57, $_size54);
-            for ($_i58 = 0; $_i58 < $_size54; ++$_i58)
+            $_size63 = 0;
+            $_etype66 = 0;
+            $xfer += $input->readListBegin($_etype66, $_size63);
+            for ($_i67 = 0; $_i67 < $_size63; ++$_i67)
             {
-              $elem59 = null;
-              $elem59 = new \Airavata\Model\Data\Movement\DataMovementInterface();
-              $xfer += $elem59->read($input);
-              $this->dataMovementInterfaces []= $elem59;
+              $elem68 = null;
+              $elem68 = new \Airavata\Model\Data\Movement\DataMovementInterface();
+              $xfer += $elem68->read($input);
+              $this->dataMovementInterfaces []= $elem68;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -2081,9 +2138,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRING, count($this->hostAliases));
         {
-          foreach ($this->hostAliases as $iter60)
+          foreach ($this->hostAliases as $iter69)
           {
-            $xfer += $output->writeString($iter60);
+            $xfer += $output->writeString($iter69);
           }
         }
         $output->writeListEnd();
@@ -2098,9 +2155,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRING, count($this->ipAddresses));
         {
-          foreach ($this->ipAddresses as $iter61)
+          foreach ($this->ipAddresses as $iter70)
           {
-            $xfer += $output->writeString($iter61);
+            $xfer += $output->writeString($iter70);
           }
         }
         $output->writeListEnd();
@@ -2125,9 +2182,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRUCT, count($this->batchQueues));
         {
-          foreach ($this->batchQueues as $iter62)
+          foreach ($this->batchQueues as $iter71)
           {
-            $xfer += $iter62->write($output);
+            $xfer += $iter71->write($output);
           }
         }
         $output->writeListEnd();
@@ -2142,10 +2199,10 @@ class ComputeResourceDescription {
       {
         $output->writeMapBegin(TType::I32, TType::STRING, count($this->fileSystems));
         {
-          foreach ($this->fileSystems as $kiter63 => $viter64)
+          foreach ($this->fileSystems as $kiter72 => $viter73)
           {
-            $xfer += $output->writeI32($kiter63);
-            $xfer += $output->writeString($viter64);
+            $xfer += $output->writeI32($kiter72);
+            $xfer += $output->writeString($viter73);
           }
         }
         $output->writeMapEnd();
@@ -2160,9 +2217,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRUCT, count($this->jobSubmissionInterfaces));
         {
-          foreach ($this->jobSubmissionInterfaces as $iter65)
+          foreach ($this->jobSubmissionInterfaces as $iter74)
           {
-            $xfer += $iter65->write($output);
+            $xfer += $iter74->write($output);
           }
         }
         $output->writeListEnd();
@@ -2177,9 +2234,9 @@ class ComputeResourceDescription {
       {
         $output->writeListBegin(TType::STRUCT, count($this->dataMovementInterfaces));
         {
-          foreach ($this->dataMovementInterfaces as $iter66)
+          foreach ($this->dataMovementInterfaces as $iter75)
           {
-            $xfer += $iter66->write($output);
+            $xfer += $iter75->write($output);
           }
         }
         $output->writeListEnd();

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/Parallelism/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/Parallelism/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/Parallelism/Types.php
new file mode 100644
index 0000000..e633a53
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/Parallelism/Types.php
@@ -0,0 +1,53 @@
+<?php
+namespace Airavata\Model\AppCatalog\Parallelism;
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
+
+
+/**
+ * Enumeration of application parallelism supported by Airavata
+ * 
+ * SERIAL:
+ *  Single processor applications without any parallelization.
+ * 
+ * MPI:
+ *  Messaging Passing Interface.
+ * 
+ * OPENMP:
+ *  Shared Memory Implementtaion.
+ * 
+ * OPENMP_MPI:
+ *  Hybrid Applications.
+ * 
+ */
+final class ApplicationParallelismType {
+  const SERIAL = 0;
+  const MPI = 1;
+  const OPENMP = 2;
+  const OPENMP_MPI = 3;
+  const CCM = 4;
+  const CRAY_MPI = 5;
+  static public $__names = array(
+    0 => 'SERIAL',
+    1 => 'MPI',
+    2 => 'OPENMP',
+    3 => 'OPENMP_MPI',
+    4 => 'CCM',
+    5 => 'CRAY_MPI',
+  );
+}
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/4363669c/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/appdeployment/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/appdeployment/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/appdeployment/ttypes.py
index aca79ea..14fdbfa 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/appdeployment/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/appdeployment/ttypes.py
@@ -8,6 +8,7 @@
 
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 import apache.airavata.model.commons.ttypes
+import apache.airavata.model.appcatalog.parallelism.ttypes
 
 
 from thrift.transport import TTransport
@@ -18,48 +19,6 @@ except:
   fastbinary = None
 
 
-class ApplicationParallelismType:
-  """
-  Enumeration of application parallelism supported by Airavata
-
-  SERIAL:
-   Single processor applications without any parallelization.
-
-  MPI:
-   Messaging Passing Interface.
-
-  OPENMP:
-   Shared Memory Implementtaion.
-
-  OPENMP_MPI:
-   Hybrid Applications.
-
-  """
-  SERIAL = 0
-  MPI = 1
-  OPENMP = 2
-  OPENMP_MPI = 3
-  CCM = 4
-  CRAY_MPI = 5
-
-  _VALUES_TO_NAMES = {
-    0: "SERIAL",
-    1: "MPI",
-    2: "OPENMP",
-    3: "OPENMP_MPI",
-    4: "CCM",
-    5: "CRAY_MPI",
-  }
-
-  _NAMES_TO_VALUES = {
-    "SERIAL": 0,
-    "MPI": 1,
-    "OPENMP": 2,
-    "OPENMP_MPI": 3,
-    "CCM": 4,
-    "CRAY_MPI": 5,
-  }
-
 
 class SetEnvPaths:
   """