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/23 20:59:29 UTC

[3/3] airavata git commit: adding gateway usage reporting AIRAVATA-1895

adding gateway usage reporting AIRAVATA-1895


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

Branch: refs/heads/develop
Commit: dad110bcd4a3d0469aacbabffdc76c7408666beb
Parents: c72a90e
Author: smarru <sm...@apache.org>
Authored: Tue Feb 23 14:59:15 2016 -0500
Committer: smarru <sm...@apache.org>
Committed: Tue Feb 23 14:59:15 2016 -0500

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |   2 +-
 .../airavata/compute_resource_model_types.cpp   |  66 ++++
 .../lib/airavata/compute_resource_model_types.h |  28 +-
 .../gateway_resource_profile_model_types.cpp    |  22 ++
 .../gateway_resource_profile_model_types.h      |  12 +-
 .../Model/AppCatalog/ComputeResource/Types.php  |  69 ++++
 .../Model/AppCatalog/GatewayProfile/Types.php   |  23 ++
 .../model/appcatalog/computeresource/ttypes.py  |  41 ++-
 .../model/appcatalog/gatewayprofile/ttypes.py   |  15 +-
 .../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       |   2 +-
 .../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             | 321 ++++++++++++++++++-
 .../computeresource/GlobusJobSubmission.java    |   2 +-
 .../computeresource/JobSubmissionInterface.java |   2 +-
 .../computeresource/LOCALSubmission.java        |   2 +-
 .../computeresource/ResourceJobManager.java     |   2 +-
 .../computeresource/SSHJobSubmission.java       |   2 +-
 .../computeresource/UnicoreJobSubmission.java   |   2 +-
 .../ComputeResourcePreference.java              |   2 +-
 .../gatewayprofile/GatewayResourceProfile.java  | 116 ++++++-
 .../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 +-
 .../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 +-
 .../compute_resource_model.thrift               |   7 +-
 .../gateway_resource_profile_model.thrift       |   5 +-
 93 files changed, 785 insertions(+), 102 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/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 d666e2f..828c8b4 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-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class Airavata {
 
   public interface Iface {

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/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 ca207ca..13bdf38 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
@@ -1633,6 +1633,21 @@ void ComputeResourceDescription::__set_maxMemoryPerNode(const int32_t val) {
 __isset.maxMemoryPerNode = true;
 }
 
+void ComputeResourceDescription::__set_xsedeGatewayUsageReporting(const bool val) {
+  this->xsedeGatewayUsageReporting = val;
+__isset.xsedeGatewayUsageReporting = true;
+}
+
+void ComputeResourceDescription::__set_gatewayUsageModuleLoadCommand(const std::string& val) {
+  this->gatewayUsageModuleLoadCommand = val;
+__isset.gatewayUsageModuleLoadCommand = true;
+}
+
+void ComputeResourceDescription::__set_gatewayUsageExecutable(const std::string& val) {
+  this->gatewayUsageExecutable = val;
+__isset.gatewayUsageExecutable = true;
+}
+
 uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -1821,6 +1836,30 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
+      case 12:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->xsedeGatewayUsageReporting);
+          this->__isset.xsedeGatewayUsageReporting = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 13:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayUsageModuleLoadCommand);
+          this->__isset.gatewayUsageModuleLoadCommand = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 14:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayUsageExecutable);
+          this->__isset.gatewayUsageExecutable = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -1944,6 +1983,21 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeI32(this->maxMemoryPerNode);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.xsedeGatewayUsageReporting) {
+    xfer += oprot->writeFieldBegin("xsedeGatewayUsageReporting", ::apache::thrift::protocol::T_BOOL, 12);
+    xfer += oprot->writeBool(this->xsedeGatewayUsageReporting);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.gatewayUsageModuleLoadCommand) {
+    xfer += oprot->writeFieldBegin("gatewayUsageModuleLoadCommand", ::apache::thrift::protocol::T_STRING, 13);
+    xfer += oprot->writeString(this->gatewayUsageModuleLoadCommand);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.gatewayUsageExecutable) {
+    xfer += oprot->writeFieldBegin("gatewayUsageExecutable", ::apache::thrift::protocol::T_STRING, 14);
+    xfer += oprot->writeString(this->gatewayUsageExecutable);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -1962,6 +2016,9 @@ void swap(ComputeResourceDescription &a, ComputeResourceDescription &b) {
   swap(a.jobSubmissionInterfaces, b.jobSubmissionInterfaces);
   swap(a.dataMovementInterfaces, b.dataMovementInterfaces);
   swap(a.maxMemoryPerNode, b.maxMemoryPerNode);
+  swap(a.xsedeGatewayUsageReporting, b.xsedeGatewayUsageReporting);
+  swap(a.gatewayUsageModuleLoadCommand, b.gatewayUsageModuleLoadCommand);
+  swap(a.gatewayUsageExecutable, b.gatewayUsageExecutable);
   swap(a.__isset, b.__isset);
 }
 
@@ -1977,6 +2034,9 @@ ComputeResourceDescription::ComputeResourceDescription(const ComputeResourceDesc
   jobSubmissionInterfaces = other85.jobSubmissionInterfaces;
   dataMovementInterfaces = other85.dataMovementInterfaces;
   maxMemoryPerNode = other85.maxMemoryPerNode;
+  xsedeGatewayUsageReporting = other85.xsedeGatewayUsageReporting;
+  gatewayUsageModuleLoadCommand = other85.gatewayUsageModuleLoadCommand;
+  gatewayUsageExecutable = other85.gatewayUsageExecutable;
   __isset = other85.__isset;
 }
 ComputeResourceDescription& ComputeResourceDescription::operator=(const ComputeResourceDescription& other86) {
@@ -1991,6 +2051,9 @@ ComputeResourceDescription& ComputeResourceDescription::operator=(const ComputeR
   jobSubmissionInterfaces = other86.jobSubmissionInterfaces;
   dataMovementInterfaces = other86.dataMovementInterfaces;
   maxMemoryPerNode = other86.maxMemoryPerNode;
+  xsedeGatewayUsageReporting = other86.xsedeGatewayUsageReporting;
+  gatewayUsageModuleLoadCommand = other86.gatewayUsageModuleLoadCommand;
+  gatewayUsageExecutable = other86.gatewayUsageExecutable;
   __isset = other86.__isset;
   return *this;
 }
@@ -2008,6 +2071,9 @@ void ComputeResourceDescription::printTo(std::ostream& out) const {
   out << ", " << "jobSubmissionInterfaces="; (__isset.jobSubmissionInterfaces ? (out << to_string(jobSubmissionInterfaces)) : (out << "<null>"));
   out << ", " << "dataMovementInterfaces="; (__isset.dataMovementInterfaces ? (out << to_string(dataMovementInterfaces)) : (out << "<null>"));
   out << ", " << "maxMemoryPerNode="; (__isset.maxMemoryPerNode ? (out << to_string(maxMemoryPerNode)) : (out << "<null>"));
+  out << ", " << "xsedeGatewayUsageReporting="; (__isset.xsedeGatewayUsageReporting ? (out << to_string(xsedeGatewayUsageReporting)) : (out << "<null>"));
+  out << ", " << "gatewayUsageModuleLoadCommand="; (__isset.gatewayUsageModuleLoadCommand ? (out << to_string(gatewayUsageModuleLoadCommand)) : (out << "<null>"));
+  out << ", " << "gatewayUsageExecutable="; (__isset.gatewayUsageExecutable ? (out << to_string(gatewayUsageExecutable)) : (out << "<null>"));
   out << ")";
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/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 5457284..82ffc70 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
@@ -666,7 +666,7 @@ inline std::ostream& operator<<(std::ostream& out, const JobSubmissionInterface&
 }
 
 typedef struct _ComputeResourceDescription__isset {
-  _ComputeResourceDescription__isset() : hostAliases(false), ipAddresses(false), resourceDescription(false), enabled(false), batchQueues(false), fileSystems(false), jobSubmissionInterfaces(false), dataMovementInterfaces(false), maxMemoryPerNode(false) {}
+  _ComputeResourceDescription__isset() : hostAliases(false), ipAddresses(false), resourceDescription(false), enabled(false), batchQueues(false), fileSystems(false), jobSubmissionInterfaces(false), dataMovementInterfaces(false), maxMemoryPerNode(false), xsedeGatewayUsageReporting(false), gatewayUsageModuleLoadCommand(false), gatewayUsageExecutable(false) {}
   bool hostAliases :1;
   bool ipAddresses :1;
   bool resourceDescription :1;
@@ -676,6 +676,9 @@ typedef struct _ComputeResourceDescription__isset {
   bool jobSubmissionInterfaces :1;
   bool dataMovementInterfaces :1;
   bool maxMemoryPerNode :1;
+  bool xsedeGatewayUsageReporting :1;
+  bool gatewayUsageModuleLoadCommand :1;
+  bool gatewayUsageExecutable :1;
 } _ComputeResourceDescription__isset;
 
 class ComputeResourceDescription {
@@ -683,7 +686,7 @@ class ComputeResourceDescription {
 
   ComputeResourceDescription(const ComputeResourceDescription&);
   ComputeResourceDescription& operator=(const ComputeResourceDescription&);
-  ComputeResourceDescription() : computeResourceId("DO_NOT_SET_AT_CLIENTS"), hostName(), resourceDescription(), enabled(0), maxMemoryPerNode(0) {
+  ComputeResourceDescription() : computeResourceId("DO_NOT_SET_AT_CLIENTS"), hostName(), resourceDescription(), enabled(0), maxMemoryPerNode(0), xsedeGatewayUsageReporting(0), gatewayUsageModuleLoadCommand(), gatewayUsageExecutable() {
   }
 
   virtual ~ComputeResourceDescription() throw();
@@ -698,6 +701,9 @@ class ComputeResourceDescription {
   std::vector<JobSubmissionInterface>  jobSubmissionInterfaces;
   std::vector< ::apache::airavata::model::data::movement::DataMovementInterface>  dataMovementInterfaces;
   int32_t maxMemoryPerNode;
+  bool xsedeGatewayUsageReporting;
+  std::string gatewayUsageModuleLoadCommand;
+  std::string gatewayUsageExecutable;
 
   _ComputeResourceDescription__isset __isset;
 
@@ -723,6 +729,12 @@ class ComputeResourceDescription {
 
   void __set_maxMemoryPerNode(const int32_t val);
 
+  void __set_xsedeGatewayUsageReporting(const bool val);
+
+  void __set_gatewayUsageModuleLoadCommand(const std::string& val);
+
+  void __set_gatewayUsageExecutable(const std::string& val);
+
   bool operator == (const ComputeResourceDescription & rhs) const
   {
     if (!(computeResourceId == rhs.computeResourceId))
@@ -765,6 +777,18 @@ class ComputeResourceDescription {
       return false;
     else if (__isset.maxMemoryPerNode && !(maxMemoryPerNode == rhs.maxMemoryPerNode))
       return false;
+    if (__isset.xsedeGatewayUsageReporting != rhs.__isset.xsedeGatewayUsageReporting)
+      return false;
+    else if (__isset.xsedeGatewayUsageReporting && !(xsedeGatewayUsageReporting == rhs.xsedeGatewayUsageReporting))
+      return false;
+    if (__isset.gatewayUsageModuleLoadCommand != rhs.__isset.gatewayUsageModuleLoadCommand)
+      return false;
+    else if (__isset.gatewayUsageModuleLoadCommand && !(gatewayUsageModuleLoadCommand == rhs.gatewayUsageModuleLoadCommand))
+      return false;
+    if (__isset.gatewayUsageExecutable != rhs.__isset.gatewayUsageExecutable)
+      return false;
+    else if (__isset.gatewayUsageExecutable && !(gatewayUsageExecutable == rhs.gatewayUsageExecutable))
+      return false;
     return true;
   }
   bool operator != (const ComputeResourceDescription &rhs) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
index b395c16..761c232 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
@@ -479,6 +479,11 @@ void GatewayResourceProfile::__set_storagePreferences(const std::vector<StorageP
 __isset.storagePreferences = true;
 }
 
+void GatewayResourceProfile::__set_xsedeUsageReportingGatewayId(const std::string& val) {
+  this->xsedeUsageReportingGatewayId = val;
+__isset.xsedeUsageReportingGatewayId = true;
+}
+
 uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -557,6 +562,14 @@ uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* ipr
           xfer += iprot->skip(ftype);
         }
         break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->xsedeUsageReportingGatewayId);
+          this->__isset.xsedeUsageReportingGatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -611,6 +624,11 @@ uint32_t GatewayResourceProfile::write(::apache::thrift::protocol::TProtocol* op
     }
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.xsedeUsageReportingGatewayId) {
+    xfer += oprot->writeFieldBegin("xsedeUsageReportingGatewayId", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->xsedeUsageReportingGatewayId);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -622,6 +640,7 @@ void swap(GatewayResourceProfile &a, GatewayResourceProfile &b) {
   swap(a.credentialStoreToken, b.credentialStoreToken);
   swap(a.computeResourcePreferences, b.computeResourcePreferences);
   swap(a.storagePreferences, b.storagePreferences);
+  swap(a.xsedeUsageReportingGatewayId, b.xsedeUsageReportingGatewayId);
   swap(a.__isset, b.__isset);
 }
 
@@ -630,6 +649,7 @@ GatewayResourceProfile::GatewayResourceProfile(const GatewayResourceProfile& oth
   credentialStoreToken = other18.credentialStoreToken;
   computeResourcePreferences = other18.computeResourcePreferences;
   storagePreferences = other18.storagePreferences;
+  xsedeUsageReportingGatewayId = other18.xsedeUsageReportingGatewayId;
   __isset = other18.__isset;
 }
 GatewayResourceProfile& GatewayResourceProfile::operator=(const GatewayResourceProfile& other19) {
@@ -637,6 +657,7 @@ GatewayResourceProfile& GatewayResourceProfile::operator=(const GatewayResourceP
   credentialStoreToken = other19.credentialStoreToken;
   computeResourcePreferences = other19.computeResourcePreferences;
   storagePreferences = other19.storagePreferences;
+  xsedeUsageReportingGatewayId = other19.xsedeUsageReportingGatewayId;
   __isset = other19.__isset;
   return *this;
 }
@@ -647,6 +668,7 @@ void GatewayResourceProfile::printTo(std::ostream& out) const {
   out << ", " << "credentialStoreToken="; (__isset.credentialStoreToken ? (out << to_string(credentialStoreToken)) : (out << "<null>"));
   out << ", " << "computeResourcePreferences="; (__isset.computeResourcePreferences ? (out << to_string(computeResourcePreferences)) : (out << "<null>"));
   out << ", " << "storagePreferences="; (__isset.storagePreferences ? (out << to_string(storagePreferences)) : (out << "<null>"));
+  out << ", " << "xsedeUsageReportingGatewayId="; (__isset.xsedeUsageReportingGatewayId ? (out << to_string(xsedeUsageReportingGatewayId)) : (out << "<null>"));
   out << ")";
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
index cd52776..c858a90 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
@@ -220,10 +220,11 @@ inline std::ostream& operator<<(std::ostream& out, const StoragePreference& obj)
 }
 
 typedef struct _GatewayResourceProfile__isset {
-  _GatewayResourceProfile__isset() : credentialStoreToken(false), computeResourcePreferences(false), storagePreferences(false) {}
+  _GatewayResourceProfile__isset() : credentialStoreToken(false), computeResourcePreferences(false), storagePreferences(false), xsedeUsageReportingGatewayId(false) {}
   bool credentialStoreToken :1;
   bool computeResourcePreferences :1;
   bool storagePreferences :1;
+  bool xsedeUsageReportingGatewayId :1;
 } _GatewayResourceProfile__isset;
 
 class GatewayResourceProfile {
@@ -231,7 +232,7 @@ class GatewayResourceProfile {
 
   GatewayResourceProfile(const GatewayResourceProfile&);
   GatewayResourceProfile& operator=(const GatewayResourceProfile&);
-  GatewayResourceProfile() : gatewayID(), credentialStoreToken() {
+  GatewayResourceProfile() : gatewayID(), credentialStoreToken(), xsedeUsageReportingGatewayId() {
   }
 
   virtual ~GatewayResourceProfile() throw();
@@ -239,6 +240,7 @@ class GatewayResourceProfile {
   std::string credentialStoreToken;
   std::vector<ComputeResourcePreference>  computeResourcePreferences;
   std::vector<StoragePreference>  storagePreferences;
+  std::string xsedeUsageReportingGatewayId;
 
   _GatewayResourceProfile__isset __isset;
 
@@ -250,6 +252,8 @@ class GatewayResourceProfile {
 
   void __set_storagePreferences(const std::vector<StoragePreference> & val);
 
+  void __set_xsedeUsageReportingGatewayId(const std::string& val);
+
   bool operator == (const GatewayResourceProfile & rhs) const
   {
     if (!(gatewayID == rhs.gatewayID))
@@ -266,6 +270,10 @@ class GatewayResourceProfile {
       return false;
     else if (__isset.storagePreferences && !(storagePreferences == rhs.storagePreferences))
       return false;
+    if (__isset.xsedeUsageReportingGatewayId != rhs.__isset.xsedeUsageReportingGatewayId)
+      return false;
+    else if (__isset.xsedeUsageReportingGatewayId && !(xsedeUsageReportingGatewayId == rhs.xsedeUsageReportingGatewayId))
+      return false;
     return true;
   }
   bool operator != (const GatewayResourceProfile &rhs) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/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 00f7e6c..85d77e7 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
@@ -1716,6 +1716,18 @@ class ComputeResourceDescription {
    * @var int
    */
   public $maxMemoryPerNode = null;
+  /**
+   * @var bool
+   */
+  public $xsedeGatewayUsageReporting = null;
+  /**
+   * @var string
+   */
+  public $gatewayUsageModuleLoadCommand = null;
+  /**
+   * @var string
+   */
+  public $gatewayUsageExecutable = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -1795,6 +1807,18 @@ class ComputeResourceDescription {
           'var' => 'maxMemoryPerNode',
           'type' => TType::I32,
           ),
+        12 => array(
+          'var' => 'xsedeGatewayUsageReporting',
+          'type' => TType::BOOL,
+          ),
+        13 => array(
+          'var' => 'gatewayUsageModuleLoadCommand',
+          'type' => TType::STRING,
+          ),
+        14 => array(
+          'var' => 'gatewayUsageExecutable',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -1831,6 +1855,15 @@ class ComputeResourceDescription {
       if (isset($vals['maxMemoryPerNode'])) {
         $this->maxMemoryPerNode = $vals['maxMemoryPerNode'];
       }
+      if (isset($vals['xsedeGatewayUsageReporting'])) {
+        $this->xsedeGatewayUsageReporting = $vals['xsedeGatewayUsageReporting'];
+      }
+      if (isset($vals['gatewayUsageModuleLoadCommand'])) {
+        $this->gatewayUsageModuleLoadCommand = $vals['gatewayUsageModuleLoadCommand'];
+      }
+      if (isset($vals['gatewayUsageExecutable'])) {
+        $this->gatewayUsageExecutable = $vals['gatewayUsageExecutable'];
+      }
     }
   }
 
@@ -1996,6 +2029,27 @@ class ComputeResourceDescription {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 12:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->xsedeGatewayUsageReporting);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayUsageModuleLoadCommand);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 14:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayUsageExecutable);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -2137,6 +2191,21 @@ class ComputeResourceDescription {
       $xfer += $output->writeI32($this->maxMemoryPerNode);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->xsedeGatewayUsageReporting !== null) {
+      $xfer += $output->writeFieldBegin('xsedeGatewayUsageReporting', TType::BOOL, 12);
+      $xfer += $output->writeBool($this->xsedeGatewayUsageReporting);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayUsageModuleLoadCommand !== null) {
+      $xfer += $output->writeFieldBegin('gatewayUsageModuleLoadCommand', TType::STRING, 13);
+      $xfer += $output->writeString($this->gatewayUsageModuleLoadCommand);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayUsageExecutable !== null) {
+      $xfer += $output->writeFieldBegin('gatewayUsageExecutable', TType::STRING, 14);
+      $xfer += $output->writeString($this->gatewayUsageExecutable);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
index 46f89a0..3374c24 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
@@ -486,6 +486,10 @@ class GatewayResourceProfile {
    * @var \Airavata\Model\AppCatalog\GatewayProfile\StoragePreference[]
    */
   public $storagePreferences = null;
+  /**
+   * @var string
+   */
+  public $xsedeUsageReportingGatewayId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -516,6 +520,10 @@ class GatewayResourceProfile {
             'class' => '\Airavata\Model\AppCatalog\GatewayProfile\StoragePreference',
             ),
           ),
+        5 => array(
+          'var' => 'xsedeUsageReportingGatewayId',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -531,6 +539,9 @@ class GatewayResourceProfile {
       if (isset($vals['storagePreferences'])) {
         $this->storagePreferences = $vals['storagePreferences'];
       }
+      if (isset($vals['xsedeUsageReportingGatewayId'])) {
+        $this->xsedeUsageReportingGatewayId = $vals['xsedeUsageReportingGatewayId'];
+      }
     }
   }
 
@@ -603,6 +614,13 @@ class GatewayResourceProfile {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->xsedeUsageReportingGatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -660,6 +678,11 @@ class GatewayResourceProfile {
       }
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->xsedeUsageReportingGatewayId !== null) {
+      $xfer += $output->writeFieldBegin('xsedeUsageReportingGatewayId', TType::STRING, 5);
+      $xfer += $output->writeString($this->xsedeUsageReportingGatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
index 5a091bf..36e403d 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/computeresource/ttypes.py
@@ -1340,6 +1340,9 @@ class ComputeResourceDescription:
    - jobSubmissionInterfaces
    - dataMovementInterfaces
    - maxMemoryPerNode
+   - xsedeGatewayUsageReporting
+   - gatewayUsageModuleLoadCommand
+   - gatewayUsageExecutable
   """
 
   thrift_spec = (
@@ -1355,9 +1358,12 @@ class ComputeResourceDescription:
     (9, TType.LIST, 'jobSubmissionInterfaces', (TType.STRUCT,(JobSubmissionInterface, JobSubmissionInterface.thrift_spec)), None, ), # 9
     (10, TType.LIST, 'dataMovementInterfaces', (TType.STRUCT,(apache.airavata.model.data.movement.ttypes.DataMovementInterface, apache.airavata.model.data.movement.ttypes.DataMovementInterface.thrift_spec)), None, ), # 10
     (11, TType.I32, 'maxMemoryPerNode', None, None, ), # 11
+    (12, TType.BOOL, 'xsedeGatewayUsageReporting', None, None, ), # 12
+    (13, TType.STRING, 'gatewayUsageModuleLoadCommand', None, None, ), # 13
+    (14, TType.STRING, 'gatewayUsageExecutable', None, None, ), # 14
   )
 
-  def __init__(self, computeResourceId=thrift_spec[1][4], hostName=None, hostAliases=None, ipAddresses=None, resourceDescription=None, enabled=None, batchQueues=None, fileSystems=None, jobSubmissionInterfaces=None, dataMovementInterfaces=None, maxMemoryPerNode=None,):
+  def __init__(self, computeResourceId=thrift_spec[1][4], hostName=None, hostAliases=None, ipAddresses=None, resourceDescription=None, enabled=None, batchQueues=None, fileSystems=None, jobSubmissionInterfaces=None, dataMovementInterfaces=None, maxMemoryPerNode=None, xsedeGatewayUsageReporting=None, gatewayUsageModuleLoadCommand=None, gatewayUsageExecutable=None,):
     self.computeResourceId = computeResourceId
     self.hostName = hostName
     self.hostAliases = hostAliases
@@ -1369,6 +1375,9 @@ class ComputeResourceDescription:
     self.jobSubmissionInterfaces = jobSubmissionInterfaces
     self.dataMovementInterfaces = dataMovementInterfaces
     self.maxMemoryPerNode = maxMemoryPerNode
+    self.xsedeGatewayUsageReporting = xsedeGatewayUsageReporting
+    self.gatewayUsageModuleLoadCommand = gatewayUsageModuleLoadCommand
+    self.gatewayUsageExecutable = gatewayUsageExecutable
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -1468,6 +1477,21 @@ class ComputeResourceDescription:
           self.maxMemoryPerNode = iprot.readI32()
         else:
           iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.BOOL:
+          self.xsedeGatewayUsageReporting = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 13:
+        if ftype == TType.STRING:
+          self.gatewayUsageModuleLoadCommand = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 14:
+        if ftype == TType.STRING:
+          self.gatewayUsageExecutable = iprot.readString()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -1541,6 +1565,18 @@ class ComputeResourceDescription:
       oprot.writeFieldBegin('maxMemoryPerNode', TType.I32, 11)
       oprot.writeI32(self.maxMemoryPerNode)
       oprot.writeFieldEnd()
+    if self.xsedeGatewayUsageReporting is not None:
+      oprot.writeFieldBegin('xsedeGatewayUsageReporting', TType.BOOL, 12)
+      oprot.writeBool(self.xsedeGatewayUsageReporting)
+      oprot.writeFieldEnd()
+    if self.gatewayUsageModuleLoadCommand is not None:
+      oprot.writeFieldBegin('gatewayUsageModuleLoadCommand', TType.STRING, 13)
+      oprot.writeString(self.gatewayUsageModuleLoadCommand)
+      oprot.writeFieldEnd()
+    if self.gatewayUsageExecutable is not None:
+      oprot.writeFieldBegin('gatewayUsageExecutable', TType.STRING, 14)
+      oprot.writeString(self.gatewayUsageExecutable)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -1565,6 +1601,9 @@ class ComputeResourceDescription:
     value = (value * 31) ^ hash(self.jobSubmissionInterfaces)
     value = (value * 31) ^ hash(self.dataMovementInterfaces)
     value = (value * 31) ^ hash(self.maxMemoryPerNode)
+    value = (value * 31) ^ hash(self.xsedeGatewayUsageReporting)
+    value = (value * 31) ^ hash(self.gatewayUsageModuleLoadCommand)
+    value = (value * 31) ^ hash(self.gatewayUsageExecutable)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
index 4467a30..a5f9620 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
@@ -351,6 +351,7 @@ class GatewayResourceProfile:
    - credentialStoreToken
    - computeResourcePreferences
    - storagePreferences
+   - xsedeUsageReportingGatewayId
   """
 
   thrift_spec = (
@@ -359,13 +360,15 @@ class GatewayResourceProfile:
     (2, TType.STRING, 'credentialStoreToken', None, None, ), # 2
     (3, TType.LIST, 'computeResourcePreferences', (TType.STRUCT,(ComputeResourcePreference, ComputeResourcePreference.thrift_spec)), None, ), # 3
     (4, TType.LIST, 'storagePreferences', (TType.STRUCT,(StoragePreference, StoragePreference.thrift_spec)), None, ), # 4
+    (5, TType.STRING, 'xsedeUsageReportingGatewayId', None, None, ), # 5
   )
 
-  def __init__(self, gatewayID=None, credentialStoreToken=None, computeResourcePreferences=None, storagePreferences=None,):
+  def __init__(self, gatewayID=None, credentialStoreToken=None, computeResourcePreferences=None, storagePreferences=None, xsedeUsageReportingGatewayId=None,):
     self.gatewayID = gatewayID
     self.credentialStoreToken = credentialStoreToken
     self.computeResourcePreferences = computeResourcePreferences
     self.storagePreferences = storagePreferences
+    self.xsedeUsageReportingGatewayId = xsedeUsageReportingGatewayId
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -408,6 +411,11 @@ class GatewayResourceProfile:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRING:
+          self.xsedeUsageReportingGatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -440,6 +448,10 @@ class GatewayResourceProfile:
         iter13.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
+    if self.xsedeUsageReportingGatewayId is not None:
+      oprot.writeFieldBegin('xsedeUsageReportingGatewayId', TType.STRING, 5)
+      oprot.writeString(self.xsedeUsageReportingGatewayId)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -455,6 +467,7 @@ class GatewayResourceProfile:
     value = (value * 31) ^ hash(self.credentialStoreToken)
     value = (value * 31) ^ hash(self.computeResourcePreferences)
     value = (value * 31) ^ hash(self.storagePreferences)
+    value = (value * 31) ^ hash(self.xsedeUsageReportingGatewayId)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
index 8c1f084..9ce3882 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.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-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class ComponentStatus implements org.apache.thrift.TBase<ComponentStatus, ComponentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ComponentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComponentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
index 9506f86..fbdba25 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.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-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class EdgeModel implements org.apache.thrift.TBase<EdgeModel, EdgeModel._Fields>, java.io.Serializable, Cloneable, Comparable<EdgeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EdgeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
index ca81ec7..d1d2efc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.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-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class NodeModel implements org.apache.thrift.TBase<NodeModel, NodeModel._Fields>, java.io.Serializable, Cloneable, Comparable<NodeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NodeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
index 9c573e4..778f245 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.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-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class PortModel implements org.apache.thrift.TBase<PortModel, PortModel._Fields>, java.io.Serializable, Cloneable, Comparable<PortModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PortModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
index e348241..053bbd4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.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-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class WorkflowModel implements org.apache.thrift.TBase<WorkflowModel, WorkflowModel._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
index d792b40..9ba3d45 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.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-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class WorkflowStatus implements org.apache.thrift.TBase<WorkflowStatus, WorkflowStatus._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index 6094749..8176d8c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *  assigns to the environment variable "NAME" the value
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index 2fbe521..bf8e8b3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  *    Descriprion of the Module
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
index 257aaa3..f04f144 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * commandOrder:
  *   Order of the command in the multiple command situation
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class CommandObject implements org.apache.thrift.TBase<CommandObject, CommandObject._Fields>, java.io.Serializable, Cloneable, Comparable<CommandObject> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommandObject");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index 5397e49..91d5fd8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -63,7 +63,7 @@ import org.slf4j.LoggerFactory;
  * envPathOrder:
  *   The order of the setting of the env variables when there are multiple env variables
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index 8fb822f..e567ff0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   Outputs generated from the application
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index 2a6c697..7559a07 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * maxRunTime:
  *  Maximum allowed run time in hours.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index 8654ae5..6148630 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index 0393349..c77ed54 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -80,7 +80,7 @@ import org.slf4j.LoggerFactory;
  *  Map of file systems type and the path.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
 
@@ -95,6 +95,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
   private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACES_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaces", org.apache.thrift.protocol.TType.LIST, (short)9);
   private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACES_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaces", org.apache.thrift.protocol.TType.LIST, (short)10);
   private static final org.apache.thrift.protocol.TField MAX_MEMORY_PER_NODE_FIELD_DESC = new org.apache.thrift.protocol.TField("maxMemoryPerNode", org.apache.thrift.protocol.TType.I32, (short)11);
+  private static final org.apache.thrift.protocol.TField XSEDE_GATEWAY_USAGE_REPORTING_FIELD_DESC = new org.apache.thrift.protocol.TField("xsedeGatewayUsageReporting", org.apache.thrift.protocol.TType.BOOL, (short)12);
+  private static final org.apache.thrift.protocol.TField GATEWAY_USAGE_MODULE_LOAD_COMMAND_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayUsageModuleLoadCommand", org.apache.thrift.protocol.TType.STRING, (short)13);
+  private static final org.apache.thrift.protocol.TField GATEWAY_USAGE_EXECUTABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayUsageExecutable", org.apache.thrift.protocol.TType.STRING, (short)14);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -113,6 +116,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
   private List<JobSubmissionInterface> jobSubmissionInterfaces; // optional
   private List<org.apache.airavata.model.data.movement.DataMovementInterface> dataMovementInterfaces; // optional
   private int maxMemoryPerNode; // optional
+  private boolean xsedeGatewayUsageReporting; // optional
+  private String gatewayUsageModuleLoadCommand; // optional
+  private String gatewayUsageExecutable; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -126,7 +132,10 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     FILE_SYSTEMS((short)8, "fileSystems"),
     JOB_SUBMISSION_INTERFACES((short)9, "jobSubmissionInterfaces"),
     DATA_MOVEMENT_INTERFACES((short)10, "dataMovementInterfaces"),
-    MAX_MEMORY_PER_NODE((short)11, "maxMemoryPerNode");
+    MAX_MEMORY_PER_NODE((short)11, "maxMemoryPerNode"),
+    XSEDE_GATEWAY_USAGE_REPORTING((short)12, "xsedeGatewayUsageReporting"),
+    GATEWAY_USAGE_MODULE_LOAD_COMMAND((short)13, "gatewayUsageModuleLoadCommand"),
+    GATEWAY_USAGE_EXECUTABLE((short)14, "gatewayUsageExecutable");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -163,6 +172,12 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           return DATA_MOVEMENT_INTERFACES;
         case 11: // MAX_MEMORY_PER_NODE
           return MAX_MEMORY_PER_NODE;
+        case 12: // XSEDE_GATEWAY_USAGE_REPORTING
+          return XSEDE_GATEWAY_USAGE_REPORTING;
+        case 13: // GATEWAY_USAGE_MODULE_LOAD_COMMAND
+          return GATEWAY_USAGE_MODULE_LOAD_COMMAND;
+        case 14: // GATEWAY_USAGE_EXECUTABLE
+          return GATEWAY_USAGE_EXECUTABLE;
         default:
           return null;
       }
@@ -205,8 +220,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
   // isset id assignments
   private static final int __ENABLED_ISSET_ID = 0;
   private static final int __MAXMEMORYPERNODE_ISSET_ID = 1;
+  private static final int __XSEDEGATEWAYUSAGEREPORTING_ISSET_ID = 2;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.HOST_ALIASES,_Fields.IP_ADDRESSES,_Fields.RESOURCE_DESCRIPTION,_Fields.ENABLED,_Fields.BATCH_QUEUES,_Fields.FILE_SYSTEMS,_Fields.JOB_SUBMISSION_INTERFACES,_Fields.DATA_MOVEMENT_INTERFACES,_Fields.MAX_MEMORY_PER_NODE};
+  private static final _Fields optionals[] = {_Fields.HOST_ALIASES,_Fields.IP_ADDRESSES,_Fields.RESOURCE_DESCRIPTION,_Fields.ENABLED,_Fields.BATCH_QUEUES,_Fields.FILE_SYSTEMS,_Fields.JOB_SUBMISSION_INTERFACES,_Fields.DATA_MOVEMENT_INTERFACES,_Fields.MAX_MEMORY_PER_NODE,_Fields.XSEDE_GATEWAY_USAGE_REPORTING,_Fields.GATEWAY_USAGE_MODULE_LOAD_COMMAND,_Fields.GATEWAY_USAGE_EXECUTABLE};
   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);
@@ -239,6 +255,12 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.movement.DataMovementInterface.class))));
     tmpMap.put(_Fields.MAX_MEMORY_PER_NODE, new org.apache.thrift.meta_data.FieldMetaData("maxMemoryPerNode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.XSEDE_GATEWAY_USAGE_REPORTING, new org.apache.thrift.meta_data.FieldMetaData("xsedeGatewayUsageReporting", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.GATEWAY_USAGE_MODULE_LOAD_COMMAND, new org.apache.thrift.meta_data.FieldMetaData("gatewayUsageModuleLoadCommand", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_USAGE_EXECUTABLE, new org.apache.thrift.meta_data.FieldMetaData("gatewayUsageExecutable", 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(ComputeResourceDescription.class, metaDataMap);
   }
@@ -317,6 +339,13 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       this.dataMovementInterfaces = __this__dataMovementInterfaces;
     }
     this.maxMemoryPerNode = other.maxMemoryPerNode;
+    this.xsedeGatewayUsageReporting = other.xsedeGatewayUsageReporting;
+    if (other.isSetGatewayUsageModuleLoadCommand()) {
+      this.gatewayUsageModuleLoadCommand = other.gatewayUsageModuleLoadCommand;
+    }
+    if (other.isSetGatewayUsageExecutable()) {
+      this.gatewayUsageExecutable = other.gatewayUsageExecutable;
+    }
   }
 
   public ComputeResourceDescription deepCopy() {
@@ -339,6 +368,10 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     this.dataMovementInterfaces = null;
     setMaxMemoryPerNodeIsSet(false);
     this.maxMemoryPerNode = 0;
+    setXsedeGatewayUsageReportingIsSet(false);
+    this.xsedeGatewayUsageReporting = false;
+    this.gatewayUsageModuleLoadCommand = null;
+    this.gatewayUsageExecutable = null;
   }
 
   public String getComputeResourceId() {
@@ -678,6 +711,74 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXMEMORYPERNODE_ISSET_ID, value);
   }
 
+  public boolean isXsedeGatewayUsageReporting() {
+    return this.xsedeGatewayUsageReporting;
+  }
+
+  public void setXsedeGatewayUsageReporting(boolean xsedeGatewayUsageReporting) {
+    this.xsedeGatewayUsageReporting = xsedeGatewayUsageReporting;
+    setXsedeGatewayUsageReportingIsSet(true);
+  }
+
+  public void unsetXsedeGatewayUsageReporting() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __XSEDEGATEWAYUSAGEREPORTING_ISSET_ID);
+  }
+
+  /** Returns true if field xsedeGatewayUsageReporting is set (has been assigned a value) and false otherwise */
+  public boolean isSetXsedeGatewayUsageReporting() {
+    return EncodingUtils.testBit(__isset_bitfield, __XSEDEGATEWAYUSAGEREPORTING_ISSET_ID);
+  }
+
+  public void setXsedeGatewayUsageReportingIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __XSEDEGATEWAYUSAGEREPORTING_ISSET_ID, value);
+  }
+
+  public String getGatewayUsageModuleLoadCommand() {
+    return this.gatewayUsageModuleLoadCommand;
+  }
+
+  public void setGatewayUsageModuleLoadCommand(String gatewayUsageModuleLoadCommand) {
+    this.gatewayUsageModuleLoadCommand = gatewayUsageModuleLoadCommand;
+  }
+
+  public void unsetGatewayUsageModuleLoadCommand() {
+    this.gatewayUsageModuleLoadCommand = null;
+  }
+
+  /** Returns true if field gatewayUsageModuleLoadCommand is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayUsageModuleLoadCommand() {
+    return this.gatewayUsageModuleLoadCommand != null;
+  }
+
+  public void setGatewayUsageModuleLoadCommandIsSet(boolean value) {
+    if (!value) {
+      this.gatewayUsageModuleLoadCommand = null;
+    }
+  }
+
+  public String getGatewayUsageExecutable() {
+    return this.gatewayUsageExecutable;
+  }
+
+  public void setGatewayUsageExecutable(String gatewayUsageExecutable) {
+    this.gatewayUsageExecutable = gatewayUsageExecutable;
+  }
+
+  public void unsetGatewayUsageExecutable() {
+    this.gatewayUsageExecutable = null;
+  }
+
+  /** Returns true if field gatewayUsageExecutable is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayUsageExecutable() {
+    return this.gatewayUsageExecutable != null;
+  }
+
+  public void setGatewayUsageExecutableIsSet(boolean value) {
+    if (!value) {
+      this.gatewayUsageExecutable = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case COMPUTE_RESOURCE_ID:
@@ -768,6 +869,30 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       }
       break;
 
+    case XSEDE_GATEWAY_USAGE_REPORTING:
+      if (value == null) {
+        unsetXsedeGatewayUsageReporting();
+      } else {
+        setXsedeGatewayUsageReporting((Boolean)value);
+      }
+      break;
+
+    case GATEWAY_USAGE_MODULE_LOAD_COMMAND:
+      if (value == null) {
+        unsetGatewayUsageModuleLoadCommand();
+      } else {
+        setGatewayUsageModuleLoadCommand((String)value);
+      }
+      break;
+
+    case GATEWAY_USAGE_EXECUTABLE:
+      if (value == null) {
+        unsetGatewayUsageExecutable();
+      } else {
+        setGatewayUsageExecutable((String)value);
+      }
+      break;
+
     }
   }
 
@@ -806,6 +931,15 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     case MAX_MEMORY_PER_NODE:
       return getMaxMemoryPerNode();
 
+    case XSEDE_GATEWAY_USAGE_REPORTING:
+      return isXsedeGatewayUsageReporting();
+
+    case GATEWAY_USAGE_MODULE_LOAD_COMMAND:
+      return getGatewayUsageModuleLoadCommand();
+
+    case GATEWAY_USAGE_EXECUTABLE:
+      return getGatewayUsageExecutable();
+
     }
     throw new IllegalStateException();
   }
@@ -839,6 +973,12 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       return isSetDataMovementInterfaces();
     case MAX_MEMORY_PER_NODE:
       return isSetMaxMemoryPerNode();
+    case XSEDE_GATEWAY_USAGE_REPORTING:
+      return isSetXsedeGatewayUsageReporting();
+    case GATEWAY_USAGE_MODULE_LOAD_COMMAND:
+      return isSetGatewayUsageModuleLoadCommand();
+    case GATEWAY_USAGE_EXECUTABLE:
+      return isSetGatewayUsageExecutable();
     }
     throw new IllegalStateException();
   }
@@ -955,6 +1095,33 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         return false;
     }
 
+    boolean this_present_xsedeGatewayUsageReporting = true && this.isSetXsedeGatewayUsageReporting();
+    boolean that_present_xsedeGatewayUsageReporting = true && that.isSetXsedeGatewayUsageReporting();
+    if (this_present_xsedeGatewayUsageReporting || that_present_xsedeGatewayUsageReporting) {
+      if (!(this_present_xsedeGatewayUsageReporting && that_present_xsedeGatewayUsageReporting))
+        return false;
+      if (this.xsedeGatewayUsageReporting != that.xsedeGatewayUsageReporting)
+        return false;
+    }
+
+    boolean this_present_gatewayUsageModuleLoadCommand = true && this.isSetGatewayUsageModuleLoadCommand();
+    boolean that_present_gatewayUsageModuleLoadCommand = true && that.isSetGatewayUsageModuleLoadCommand();
+    if (this_present_gatewayUsageModuleLoadCommand || that_present_gatewayUsageModuleLoadCommand) {
+      if (!(this_present_gatewayUsageModuleLoadCommand && that_present_gatewayUsageModuleLoadCommand))
+        return false;
+      if (!this.gatewayUsageModuleLoadCommand.equals(that.gatewayUsageModuleLoadCommand))
+        return false;
+    }
+
+    boolean this_present_gatewayUsageExecutable = true && this.isSetGatewayUsageExecutable();
+    boolean that_present_gatewayUsageExecutable = true && that.isSetGatewayUsageExecutable();
+    if (this_present_gatewayUsageExecutable || that_present_gatewayUsageExecutable) {
+      if (!(this_present_gatewayUsageExecutable && that_present_gatewayUsageExecutable))
+        return false;
+      if (!this.gatewayUsageExecutable.equals(that.gatewayUsageExecutable))
+        return false;
+    }
+
     return true;
   }
 
@@ -1017,6 +1184,21 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     if (present_maxMemoryPerNode)
       list.add(maxMemoryPerNode);
 
+    boolean present_xsedeGatewayUsageReporting = true && (isSetXsedeGatewayUsageReporting());
+    list.add(present_xsedeGatewayUsageReporting);
+    if (present_xsedeGatewayUsageReporting)
+      list.add(xsedeGatewayUsageReporting);
+
+    boolean present_gatewayUsageModuleLoadCommand = true && (isSetGatewayUsageModuleLoadCommand());
+    list.add(present_gatewayUsageModuleLoadCommand);
+    if (present_gatewayUsageModuleLoadCommand)
+      list.add(gatewayUsageModuleLoadCommand);
+
+    boolean present_gatewayUsageExecutable = true && (isSetGatewayUsageExecutable());
+    list.add(present_gatewayUsageExecutable);
+    if (present_gatewayUsageExecutable)
+      list.add(gatewayUsageExecutable);
+
     return list.hashCode();
   }
 
@@ -1138,6 +1320,36 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetXsedeGatewayUsageReporting()).compareTo(other.isSetXsedeGatewayUsageReporting());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetXsedeGatewayUsageReporting()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.xsedeGatewayUsageReporting, other.xsedeGatewayUsageReporting);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayUsageModuleLoadCommand()).compareTo(other.isSetGatewayUsageModuleLoadCommand());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayUsageModuleLoadCommand()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayUsageModuleLoadCommand, other.gatewayUsageModuleLoadCommand);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayUsageExecutable()).compareTo(other.isSetGatewayUsageExecutable());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayUsageExecutable()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayUsageExecutable, other.gatewayUsageExecutable);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -1255,6 +1467,32 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       sb.append(this.maxMemoryPerNode);
       first = false;
     }
+    if (isSetXsedeGatewayUsageReporting()) {
+      if (!first) sb.append(", ");
+      sb.append("xsedeGatewayUsageReporting:");
+      sb.append(this.xsedeGatewayUsageReporting);
+      first = false;
+    }
+    if (isSetGatewayUsageModuleLoadCommand()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayUsageModuleLoadCommand:");
+      if (this.gatewayUsageModuleLoadCommand == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayUsageModuleLoadCommand);
+      }
+      first = false;
+    }
+    if (isSetGatewayUsageExecutable()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayUsageExecutable:");
+      if (this.gatewayUsageExecutable == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayUsageExecutable);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -1461,6 +1699,30 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 12: // XSEDE_GATEWAY_USAGE_REPORTING
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.xsedeGatewayUsageReporting = iprot.readBool();
+              struct.setXsedeGatewayUsageReportingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // GATEWAY_USAGE_MODULE_LOAD_COMMAND
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayUsageModuleLoadCommand = iprot.readString();
+              struct.setGatewayUsageModuleLoadCommandIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 14: // GATEWAY_USAGE_EXECUTABLE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayUsageExecutable = iprot.readString();
+              struct.setGatewayUsageExecutableIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -1586,6 +1848,25 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         oprot.writeI32(struct.maxMemoryPerNode);
         oprot.writeFieldEnd();
       }
+      if (struct.isSetXsedeGatewayUsageReporting()) {
+        oprot.writeFieldBegin(XSEDE_GATEWAY_USAGE_REPORTING_FIELD_DESC);
+        oprot.writeBool(struct.xsedeGatewayUsageReporting);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayUsageModuleLoadCommand != null) {
+        if (struct.isSetGatewayUsageModuleLoadCommand()) {
+          oprot.writeFieldBegin(GATEWAY_USAGE_MODULE_LOAD_COMMAND_FIELD_DESC);
+          oprot.writeString(struct.gatewayUsageModuleLoadCommand);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayUsageExecutable != null) {
+        if (struct.isSetGatewayUsageExecutable()) {
+          oprot.writeFieldBegin(GATEWAY_USAGE_EXECUTABLE_FIELD_DESC);
+          oprot.writeString(struct.gatewayUsageExecutable);
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -1633,7 +1914,16 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetMaxMemoryPerNode()) {
         optionals.set(8);
       }
-      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetXsedeGatewayUsageReporting()) {
+        optionals.set(9);
+      }
+      if (struct.isSetGatewayUsageModuleLoadCommand()) {
+        optionals.set(10);
+      }
+      if (struct.isSetGatewayUsageExecutable()) {
+        optionals.set(11);
+      }
+      oprot.writeBitSet(optionals, 12);
       if (struct.isSetHostAliases()) {
         {
           oprot.writeI32(struct.hostAliases.size());
@@ -1698,6 +1988,15 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetMaxMemoryPerNode()) {
         oprot.writeI32(struct.maxMemoryPerNode);
       }
+      if (struct.isSetXsedeGatewayUsageReporting()) {
+        oprot.writeBool(struct.xsedeGatewayUsageReporting);
+      }
+      if (struct.isSetGatewayUsageModuleLoadCommand()) {
+        oprot.writeString(struct.gatewayUsageModuleLoadCommand);
+      }
+      if (struct.isSetGatewayUsageExecutable()) {
+        oprot.writeString(struct.gatewayUsageExecutable);
+      }
     }
 
     @Override
@@ -1707,7 +2006,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       struct.setComputeResourceIdIsSet(true);
       struct.hostName = iprot.readString();
       struct.setHostNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(9);
+      BitSet incoming = iprot.readBitSet(12);
       if (incoming.get(0)) {
         {
           org.apache.thrift.protocol.TList _list57 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
@@ -1803,6 +2102,18 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         struct.maxMemoryPerNode = iprot.readI32();
         struct.setMaxMemoryPerNodeIsSet(true);
       }
+      if (incoming.get(9)) {
+        struct.xsedeGatewayUsageReporting = iprot.readBool();
+        struct.setXsedeGatewayUsageReportingIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.gatewayUsageModuleLoadCommand = iprot.readString();
+        struct.setGatewayUsageModuleLoadCommandIsSet(true);
+      }
+      if (incoming.get(11)) {
+        struct.gatewayUsageExecutable = iprot.readString();
+        struct.setGatewayUsageExecutableIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index aae48e2..024f506 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.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-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index 7b6448c..a277ca3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index 74875cc..357f791 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index a60b76e..d695b54 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  *  An enumeration of commonly used manager commands.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dad110bc/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index 8e2cc40..cc74357 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  *    the same. Example: *@*.example.com or *@example.com
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-02-23")
 public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");