You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2017/05/30 19:02:43 UTC

[23/37] airavata git commit: adding few more configurable parameters to the BatchQueue model

adding few more configurable parameters to the BatchQueue model


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

Branch: refs/heads/registry-refactoring
Commit: 11f12dfc2e490f49f03d4f642bf1b3c17cd830c0
Parents: e988672
Author: scnakandala <su...@gmail.com>
Authored: Mon May 22 11:30:29 2017 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Mon May 22 11:30:29 2017 -0400

----------------------------------------------------------------------
 .../airavata/compute_resource_model_types.cpp   |  70 ++++--
 .../lib/airavata/compute_resource_model_types.h |  34 ++-
 .../Model/AppCatalog/ComputeResource/Types.php  |  64 +++++-
 .../model/appcatalog/computeresource/ttypes.py  |  50 ++++-
 .../appcatalog/computeresource/BatchQueue.java  | 223 ++++++++++++++++++-
 .../ComputeResourceDescription.java             | 112 +++++-----
 .../core/app/catalog/model/BatchQueue.java      |  24 +-
 .../catalog/resources/BatchQueueResource.java   |  20 ++
 .../app/catalog/util/AppCatalogJPAUtils.java    |   4 +-
 .../util/AppCatalogThriftConversion.java        |   8 +-
 .../src/main/resources/appcatalog-derby.sql     |   2 +
 .../src/main/resources/appcatalog-mysql.sql     |   2 +
 .../compute_resource_model.thrift               |   6 +-
 13 files changed, 505 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/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 7921ef3..711e304 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
@@ -454,6 +454,16 @@ void BatchQueue::__set_defaultCPUCount(const int32_t val) {
 __isset.defaultCPUCount = true;
 }
 
+void BatchQueue::__set_defaultWalltime(const int32_t val) {
+  this->defaultWalltime = val;
+__isset.defaultWalltime = true;
+}
+
+void BatchQueue::__set_queueSpecificMacros(const std::string& val) {
+  this->queueSpecificMacros = val;
+__isset.queueSpecificMacros = true;
+}
+
 void BatchQueue::__set_isDefaultQueue(const bool val) {
   this->isDefaultQueue = val;
 __isset.isDefaultQueue = true;
@@ -562,6 +572,22 @@ uint32_t BatchQueue::read(::apache::thrift::protocol::TProtocol* iprot) {
         }
         break;
       case 11:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->defaultWalltime);
+          this->__isset.defaultWalltime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 12:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->queueSpecificMacros);
+          this->__isset.queueSpecificMacros = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 13:
         if (ftype == ::apache::thrift::protocol::T_BOOL) {
           xfer += iprot->readBool(this->isDefaultQueue);
           this->__isset.isDefaultQueue = true;
@@ -637,8 +663,18 @@ uint32_t BatchQueue::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeI32(this->defaultCPUCount);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.defaultWalltime) {
+    xfer += oprot->writeFieldBegin("defaultWalltime", ::apache::thrift::protocol::T_I32, 11);
+    xfer += oprot->writeI32(this->defaultWalltime);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.queueSpecificMacros) {
+    xfer += oprot->writeFieldBegin("queueSpecificMacros", ::apache::thrift::protocol::T_STRING, 12);
+    xfer += oprot->writeString(this->queueSpecificMacros);
+    xfer += oprot->writeFieldEnd();
+  }
   if (this->__isset.isDefaultQueue) {
-    xfer += oprot->writeFieldBegin("isDefaultQueue", ::apache::thrift::protocol::T_BOOL, 11);
+    xfer += oprot->writeFieldBegin("isDefaultQueue", ::apache::thrift::protocol::T_BOOL, 13);
     xfer += oprot->writeBool(this->isDefaultQueue);
     xfer += oprot->writeFieldEnd();
   }
@@ -659,6 +695,8 @@ void swap(BatchQueue &a, BatchQueue &b) {
   swap(a.cpuPerNode, b.cpuPerNode);
   swap(a.defaultNodeCount, b.defaultNodeCount);
   swap(a.defaultCPUCount, b.defaultCPUCount);
+  swap(a.defaultWalltime, b.defaultWalltime);
+  swap(a.queueSpecificMacros, b.queueSpecificMacros);
   swap(a.isDefaultQueue, b.isDefaultQueue);
   swap(a.__isset, b.__isset);
 }
@@ -674,6 +712,8 @@ BatchQueue::BatchQueue(const BatchQueue& other21) {
   cpuPerNode = other21.cpuPerNode;
   defaultNodeCount = other21.defaultNodeCount;
   defaultCPUCount = other21.defaultCPUCount;
+  defaultWalltime = other21.defaultWalltime;
+  queueSpecificMacros = other21.queueSpecificMacros;
   isDefaultQueue = other21.isDefaultQueue;
   __isset = other21.__isset;
 }
@@ -688,6 +728,8 @@ BatchQueue& BatchQueue::operator=(const BatchQueue& other22) {
   cpuPerNode = other22.cpuPerNode;
   defaultNodeCount = other22.defaultNodeCount;
   defaultCPUCount = other22.defaultCPUCount;
+  defaultWalltime = other22.defaultWalltime;
+  queueSpecificMacros = other22.queueSpecificMacros;
   isDefaultQueue = other22.isDefaultQueue;
   __isset = other22.__isset;
   return *this;
@@ -705,6 +747,8 @@ void BatchQueue::printTo(std::ostream& out) const {
   out << ", " << "cpuPerNode="; (__isset.cpuPerNode ? (out << to_string(cpuPerNode)) : (out << "<null>"));
   out << ", " << "defaultNodeCount="; (__isset.defaultNodeCount ? (out << to_string(defaultNodeCount)) : (out << "<null>"));
   out << ", " << "defaultCPUCount="; (__isset.defaultCPUCount ? (out << to_string(defaultCPUCount)) : (out << "<null>"));
+  out << ", " << "defaultWalltime="; (__isset.defaultWalltime ? (out << to_string(defaultWalltime)) : (out << "<null>"));
+  out << ", " << "queueSpecificMacros="; (__isset.queueSpecificMacros ? (out << to_string(queueSpecificMacros)) : (out << "<null>"));
   out << ", " << "isDefaultQueue="; (__isset.isDefaultQueue ? (out << to_string(isDefaultQueue)) : (out << "<null>"));
   out << ")";
 }
@@ -1807,9 +1851,9 @@ void ComputeResourceDescription::__set_defaultCPUCount(const int32_t val) {
 __isset.defaultCPUCount = true;
 }
 
-void ComputeResourceDescription::__set_defaultWallltime(const int32_t val) {
-  this->defaultWallltime = val;
-__isset.defaultWallltime = true;
+void ComputeResourceDescription::__set_defaultWalltime(const int32_t val) {
+  this->defaultWalltime = val;
+__isset.defaultWalltime = true;
 }
 
 uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol* iprot) {
@@ -2050,8 +2094,8 @@ uint32_t ComputeResourceDescription::read(::apache::thrift::protocol::TProtocol*
         break;
       case 18:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          xfer += iprot->readI32(this->defaultWallltime);
-          this->__isset.defaultWallltime = true;
+          xfer += iprot->readI32(this->defaultWalltime);
+          this->__isset.defaultWalltime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -2209,9 +2253,9 @@ uint32_t ComputeResourceDescription::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeI32(this->defaultCPUCount);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.defaultWallltime) {
-    xfer += oprot->writeFieldBegin("defaultWallltime", ::apache::thrift::protocol::T_I32, 18);
-    xfer += oprot->writeI32(this->defaultWallltime);
+  if (this->__isset.defaultWalltime) {
+    xfer += oprot->writeFieldBegin("defaultWalltime", ::apache::thrift::protocol::T_I32, 18);
+    xfer += oprot->writeI32(this->defaultWalltime);
     xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
@@ -2238,7 +2282,7 @@ void swap(ComputeResourceDescription &a, ComputeResourceDescription &b) {
   swap(a.cpusPerNode, b.cpusPerNode);
   swap(a.defaultNodeCount, b.defaultNodeCount);
   swap(a.defaultCPUCount, b.defaultCPUCount);
-  swap(a.defaultWallltime, b.defaultWallltime);
+  swap(a.defaultWalltime, b.defaultWalltime);
   swap(a.__isset, b.__isset);
 }
 
@@ -2260,7 +2304,7 @@ ComputeResourceDescription::ComputeResourceDescription(const ComputeResourceDesc
   cpusPerNode = other94.cpusPerNode;
   defaultNodeCount = other94.defaultNodeCount;
   defaultCPUCount = other94.defaultCPUCount;
-  defaultWallltime = other94.defaultWallltime;
+  defaultWalltime = other94.defaultWalltime;
   __isset = other94.__isset;
 }
 ComputeResourceDescription& ComputeResourceDescription::operator=(const ComputeResourceDescription& other95) {
@@ -2281,7 +2325,7 @@ ComputeResourceDescription& ComputeResourceDescription::operator=(const ComputeR
   cpusPerNode = other95.cpusPerNode;
   defaultNodeCount = other95.defaultNodeCount;
   defaultCPUCount = other95.defaultCPUCount;
-  defaultWallltime = other95.defaultWallltime;
+  defaultWalltime = other95.defaultWalltime;
   __isset = other95.__isset;
   return *this;
 }
@@ -2305,7 +2349,7 @@ void ComputeResourceDescription::printTo(std::ostream& out) const {
   out << ", " << "cpusPerNode="; (__isset.cpusPerNode ? (out << to_string(cpusPerNode)) : (out << "<null>"));
   out << ", " << "defaultNodeCount="; (__isset.defaultNodeCount ? (out << to_string(defaultNodeCount)) : (out << "<null>"));
   out << ", " << "defaultCPUCount="; (__isset.defaultCPUCount ? (out << to_string(defaultCPUCount)) : (out << "<null>"));
-  out << ", " << "defaultWallltime="; (__isset.defaultWallltime ? (out << to_string(defaultWallltime)) : (out << "<null>"));
+  out << ", " << "defaultWalltime="; (__isset.defaultWalltime ? (out << to_string(defaultWalltime)) : (out << "<null>"));
   out << ")";
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/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 997c2cb..96debe9 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
@@ -226,7 +226,7 @@ inline std::ostream& operator<<(std::ostream& out, const ResourceJobManager& obj
 }
 
 typedef struct _BatchQueue__isset {
-  _BatchQueue__isset() : queueDescription(false), maxRunTime(false), maxNodes(false), maxProcessors(false), maxJobsInQueue(false), maxMemory(false), cpuPerNode(false), defaultNodeCount(false), defaultCPUCount(false), isDefaultQueue(false) {}
+  _BatchQueue__isset() : queueDescription(false), maxRunTime(false), maxNodes(false), maxProcessors(false), maxJobsInQueue(false), maxMemory(false), cpuPerNode(false), defaultNodeCount(false), defaultCPUCount(false), defaultWalltime(false), queueSpecificMacros(false), isDefaultQueue(false) {}
   bool queueDescription :1;
   bool maxRunTime :1;
   bool maxNodes :1;
@@ -236,6 +236,8 @@ typedef struct _BatchQueue__isset {
   bool cpuPerNode :1;
   bool defaultNodeCount :1;
   bool defaultCPUCount :1;
+  bool defaultWalltime :1;
+  bool queueSpecificMacros :1;
   bool isDefaultQueue :1;
 } _BatchQueue__isset;
 
@@ -244,7 +246,7 @@ class BatchQueue {
 
   BatchQueue(const BatchQueue&);
   BatchQueue& operator=(const BatchQueue&);
-  BatchQueue() : queueName(), queueDescription(), maxRunTime(0), maxNodes(0), maxProcessors(0), maxJobsInQueue(0), maxMemory(0), cpuPerNode(0), defaultNodeCount(0), defaultCPUCount(0), isDefaultQueue(0) {
+  BatchQueue() : queueName(), queueDescription(), maxRunTime(0), maxNodes(0), maxProcessors(0), maxJobsInQueue(0), maxMemory(0), cpuPerNode(0), defaultNodeCount(0), defaultCPUCount(0), defaultWalltime(0), queueSpecificMacros(), isDefaultQueue(0) {
   }
 
   virtual ~BatchQueue() throw();
@@ -258,6 +260,8 @@ class BatchQueue {
   int32_t cpuPerNode;
   int32_t defaultNodeCount;
   int32_t defaultCPUCount;
+  int32_t defaultWalltime;
+  std::string queueSpecificMacros;
   bool isDefaultQueue;
 
   _BatchQueue__isset __isset;
@@ -282,6 +286,10 @@ class BatchQueue {
 
   void __set_defaultCPUCount(const int32_t val);
 
+  void __set_defaultWalltime(const int32_t val);
+
+  void __set_queueSpecificMacros(const std::string& val);
+
   void __set_isDefaultQueue(const bool val);
 
   bool operator == (const BatchQueue & rhs) const
@@ -324,6 +332,14 @@ class BatchQueue {
       return false;
     else if (__isset.defaultCPUCount && !(defaultCPUCount == rhs.defaultCPUCount))
       return false;
+    if (__isset.defaultWalltime != rhs.__isset.defaultWalltime)
+      return false;
+    else if (__isset.defaultWalltime && !(defaultWalltime == rhs.defaultWalltime))
+      return false;
+    if (__isset.queueSpecificMacros != rhs.__isset.queueSpecificMacros)
+      return false;
+    else if (__isset.queueSpecificMacros && !(queueSpecificMacros == rhs.queueSpecificMacros))
+      return false;
     if (__isset.isDefaultQueue != rhs.__isset.isDefaultQueue)
       return false;
     else if (__isset.isDefaultQueue && !(isDefaultQueue == rhs.isDefaultQueue))
@@ -711,7 +727,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), gatewayUsageReporting(false), gatewayUsageModuleLoadCommand(false), gatewayUsageExecutable(false), cpusPerNode(false), defaultNodeCount(false), defaultCPUCount(false), defaultWallltime(false) {}
+  _ComputeResourceDescription__isset() : hostAliases(false), ipAddresses(false), resourceDescription(false), enabled(false), batchQueues(false), fileSystems(false), jobSubmissionInterfaces(false), dataMovementInterfaces(false), maxMemoryPerNode(false), gatewayUsageReporting(false), gatewayUsageModuleLoadCommand(false), gatewayUsageExecutable(false), cpusPerNode(false), defaultNodeCount(false), defaultCPUCount(false), defaultWalltime(false) {}
   bool hostAliases :1;
   bool ipAddresses :1;
   bool resourceDescription :1;
@@ -727,7 +743,7 @@ typedef struct _ComputeResourceDescription__isset {
   bool cpusPerNode :1;
   bool defaultNodeCount :1;
   bool defaultCPUCount :1;
-  bool defaultWallltime :1;
+  bool defaultWalltime :1;
 } _ComputeResourceDescription__isset;
 
 class ComputeResourceDescription {
@@ -735,7 +751,7 @@ class ComputeResourceDescription {
 
   ComputeResourceDescription(const ComputeResourceDescription&);
   ComputeResourceDescription& operator=(const ComputeResourceDescription&);
-  ComputeResourceDescription() : computeResourceId("DO_NOT_SET_AT_CLIENTS"), hostName(), resourceDescription(), enabled(0), maxMemoryPerNode(0), gatewayUsageReporting(0), gatewayUsageModuleLoadCommand(), gatewayUsageExecutable(), cpusPerNode(0), defaultNodeCount(0), defaultCPUCount(0), defaultWallltime(0) {
+  ComputeResourceDescription() : computeResourceId("DO_NOT_SET_AT_CLIENTS"), hostName(), resourceDescription(), enabled(0), maxMemoryPerNode(0), gatewayUsageReporting(0), gatewayUsageModuleLoadCommand(), gatewayUsageExecutable(), cpusPerNode(0), defaultNodeCount(0), defaultCPUCount(0), defaultWalltime(0) {
   }
 
   virtual ~ComputeResourceDescription() throw();
@@ -756,7 +772,7 @@ class ComputeResourceDescription {
   int32_t cpusPerNode;
   int32_t defaultNodeCount;
   int32_t defaultCPUCount;
-  int32_t defaultWallltime;
+  int32_t defaultWalltime;
 
   _ComputeResourceDescription__isset __isset;
 
@@ -794,7 +810,7 @@ class ComputeResourceDescription {
 
   void __set_defaultCPUCount(const int32_t val);
 
-  void __set_defaultWallltime(const int32_t val);
+  void __set_defaultWalltime(const int32_t val);
 
   bool operator == (const ComputeResourceDescription & rhs) const
   {
@@ -862,9 +878,9 @@ class ComputeResourceDescription {
       return false;
     else if (__isset.defaultCPUCount && !(defaultCPUCount == rhs.defaultCPUCount))
       return false;
-    if (__isset.defaultWallltime != rhs.__isset.defaultWallltime)
+    if (__isset.defaultWalltime != rhs.__isset.defaultWalltime)
       return false;
-    else if (__isset.defaultWallltime && !(defaultWallltime == rhs.defaultWallltime))
+    else if (__isset.defaultWalltime && !(defaultWalltime == rhs.defaultWalltime))
       return false;
     return true;
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/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 e250c65..47e6e24 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
@@ -539,6 +539,14 @@ class BatchQueue {
    */
   public $defaultCPUCount = null;
   /**
+   * @var int
+   */
+  public $defaultWalltime = null;
+  /**
+   * @var string
+   */
+  public $queueSpecificMacros = null;
+  /**
    * @var bool
    */
   public $isDefaultQueue = null;
@@ -587,6 +595,14 @@ class BatchQueue {
           'type' => TType::I32,
           ),
         11 => array(
+          'var' => 'defaultWalltime',
+          'type' => TType::I32,
+          ),
+        12 => array(
+          'var' => 'queueSpecificMacros',
+          'type' => TType::STRING,
+          ),
+        13 => array(
           'var' => 'isDefaultQueue',
           'type' => TType::BOOL,
           ),
@@ -623,6 +639,12 @@ class BatchQueue {
       if (isset($vals['defaultCPUCount'])) {
         $this->defaultCPUCount = $vals['defaultCPUCount'];
       }
+      if (isset($vals['defaultWalltime'])) {
+        $this->defaultWalltime = $vals['defaultWalltime'];
+      }
+      if (isset($vals['queueSpecificMacros'])) {
+        $this->queueSpecificMacros = $vals['queueSpecificMacros'];
+      }
       if (isset($vals['isDefaultQueue'])) {
         $this->isDefaultQueue = $vals['isDefaultQueue'];
       }
@@ -719,6 +741,20 @@ class BatchQueue {
           }
           break;
         case 11:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->defaultWalltime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->queueSpecificMacros);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
           if ($ftype == TType::BOOL) {
             $xfer += $input->readBool($this->isDefaultQueue);
           } else {
@@ -788,8 +824,18 @@ class BatchQueue {
       $xfer += $output->writeI32($this->defaultCPUCount);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->defaultWalltime !== null) {
+      $xfer += $output->writeFieldBegin('defaultWalltime', TType::I32, 11);
+      $xfer += $output->writeI32($this->defaultWalltime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->queueSpecificMacros !== null) {
+      $xfer += $output->writeFieldBegin('queueSpecificMacros', TType::STRING, 12);
+      $xfer += $output->writeString($this->queueSpecificMacros);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->isDefaultQueue !== null) {
-      $xfer += $output->writeFieldBegin('isDefaultQueue', TType::BOOL, 11);
+      $xfer += $output->writeFieldBegin('isDefaultQueue', TType::BOOL, 13);
       $xfer += $output->writeBool($this->isDefaultQueue);
       $xfer += $output->writeFieldEnd();
     }
@@ -1900,7 +1946,7 @@ class ComputeResourceDescription {
   /**
    * @var int
    */
-  public $defaultWallltime = null;
+  public $defaultWalltime = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -2005,7 +2051,7 @@ class ComputeResourceDescription {
           'type' => TType::I32,
           ),
         18 => array(
-          'var' => 'defaultWallltime',
+          'var' => 'defaultWalltime',
           'type' => TType::I32,
           ),
         );
@@ -2062,8 +2108,8 @@ class ComputeResourceDescription {
       if (isset($vals['defaultCPUCount'])) {
         $this->defaultCPUCount = $vals['defaultCPUCount'];
       }
-      if (isset($vals['defaultWallltime'])) {
-        $this->defaultWallltime = $vals['defaultWallltime'];
+      if (isset($vals['defaultWalltime'])) {
+        $this->defaultWalltime = $vals['defaultWalltime'];
       }
     }
   }
@@ -2274,7 +2320,7 @@ class ComputeResourceDescription {
           break;
         case 18:
           if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->defaultWallltime);
+            $xfer += $input->readI32($this->defaultWalltime);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -2450,9 +2496,9 @@ class ComputeResourceDescription {
       $xfer += $output->writeI32($this->defaultCPUCount);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->defaultWallltime !== null) {
-      $xfer += $output->writeFieldBegin('defaultWallltime', TType::I32, 18);
-      $xfer += $output->writeI32($this->defaultWallltime);
+    if ($this->defaultWalltime !== null) {
+      $xfer += $output->writeFieldBegin('defaultWalltime', TType::I32, 18);
+      $xfer += $output->writeI32($this->defaultWalltime);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/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 b2fcc2e..9d9aa0d 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
@@ -464,6 +464,8 @@ class BatchQueue:
    - cpuPerNode
    - defaultNodeCount
    - defaultCPUCount
+   - defaultWalltime
+   - queueSpecificMacros
    - isDefaultQueue
   """
 
@@ -479,10 +481,12 @@ class BatchQueue:
     (8, TType.I32, 'cpuPerNode', None, None, ), # 8
     (9, TType.I32, 'defaultNodeCount', None, None, ), # 9
     (10, TType.I32, 'defaultCPUCount', None, None, ), # 10
-    (11, TType.BOOL, 'isDefaultQueue', None, None, ), # 11
+    (11, TType.I32, 'defaultWalltime', None, None, ), # 11
+    (12, TType.STRING, 'queueSpecificMacros', None, None, ), # 12
+    (13, TType.BOOL, 'isDefaultQueue', None, None, ), # 13
   )
 
-  def __init__(self, queueName=None, queueDescription=None, maxRunTime=None, maxNodes=None, maxProcessors=None, maxJobsInQueue=None, maxMemory=None, cpuPerNode=None, defaultNodeCount=None, defaultCPUCount=None, isDefaultQueue=None,):
+  def __init__(self, queueName=None, queueDescription=None, maxRunTime=None, maxNodes=None, maxProcessors=None, maxJobsInQueue=None, maxMemory=None, cpuPerNode=None, defaultNodeCount=None, defaultCPUCount=None, defaultWalltime=None, queueSpecificMacros=None, isDefaultQueue=None,):
     self.queueName = queueName
     self.queueDescription = queueDescription
     self.maxRunTime = maxRunTime
@@ -493,6 +497,8 @@ class BatchQueue:
     self.cpuPerNode = cpuPerNode
     self.defaultNodeCount = defaultNodeCount
     self.defaultCPUCount = defaultCPUCount
+    self.defaultWalltime = defaultWalltime
+    self.queueSpecificMacros = queueSpecificMacros
     self.isDefaultQueue = isDefaultQueue
 
   def read(self, iprot):
@@ -555,6 +561,16 @@ class BatchQueue:
         else:
           iprot.skip(ftype)
       elif fid == 11:
+        if ftype == TType.I32:
+          self.defaultWalltime = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.STRING:
+          self.queueSpecificMacros = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 13:
         if ftype == TType.BOOL:
           self.isDefaultQueue = iprot.readBool()
         else:
@@ -609,8 +625,16 @@ class BatchQueue:
       oprot.writeFieldBegin('defaultCPUCount', TType.I32, 10)
       oprot.writeI32(self.defaultCPUCount)
       oprot.writeFieldEnd()
+    if self.defaultWalltime is not None:
+      oprot.writeFieldBegin('defaultWalltime', TType.I32, 11)
+      oprot.writeI32(self.defaultWalltime)
+      oprot.writeFieldEnd()
+    if self.queueSpecificMacros is not None:
+      oprot.writeFieldBegin('queueSpecificMacros', TType.STRING, 12)
+      oprot.writeString(self.queueSpecificMacros)
+      oprot.writeFieldEnd()
     if self.isDefaultQueue is not None:
-      oprot.writeFieldBegin('isDefaultQueue', TType.BOOL, 11)
+      oprot.writeFieldBegin('isDefaultQueue', TType.BOOL, 13)
       oprot.writeBool(self.isDefaultQueue)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -634,6 +658,8 @@ class BatchQueue:
     value = (value * 31) ^ hash(self.cpuPerNode)
     value = (value * 31) ^ hash(self.defaultNodeCount)
     value = (value * 31) ^ hash(self.defaultCPUCount)
+    value = (value * 31) ^ hash(self.defaultWalltime)
+    value = (value * 31) ^ hash(self.queueSpecificMacros)
     value = (value * 31) ^ hash(self.isDefaultQueue)
     return value
 
@@ -1434,7 +1460,7 @@ class ComputeResourceDescription:
    - cpusPerNode
    - defaultNodeCount
    - defaultCPUCount
-   - defaultWallltime
+   - defaultWalltime
   """
 
   thrift_spec = (
@@ -1456,10 +1482,10 @@ class ComputeResourceDescription:
     (15, TType.I32, 'cpusPerNode', None, None, ), # 15
     (16, TType.I32, 'defaultNodeCount', None, None, ), # 16
     (17, TType.I32, 'defaultCPUCount', None, None, ), # 17
-    (18, TType.I32, 'defaultWallltime', None, None, ), # 18
+    (18, TType.I32, 'defaultWalltime', None, None, ), # 18
   )
 
-  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, gatewayUsageReporting=None, gatewayUsageModuleLoadCommand=None, gatewayUsageExecutable=None, cpusPerNode=None, defaultNodeCount=None, defaultCPUCount=None, defaultWallltime=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, gatewayUsageReporting=None, gatewayUsageModuleLoadCommand=None, gatewayUsageExecutable=None, cpusPerNode=None, defaultNodeCount=None, defaultCPUCount=None, defaultWalltime=None,):
     self.computeResourceId = computeResourceId
     self.hostName = hostName
     self.hostAliases = hostAliases
@@ -1477,7 +1503,7 @@ class ComputeResourceDescription:
     self.cpusPerNode = cpusPerNode
     self.defaultNodeCount = defaultNodeCount
     self.defaultCPUCount = defaultCPUCount
-    self.defaultWallltime = defaultWallltime
+    self.defaultWalltime = defaultWalltime
 
   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:
@@ -1609,7 +1635,7 @@ class ComputeResourceDescription:
           iprot.skip(ftype)
       elif fid == 18:
         if ftype == TType.I32:
-          self.defaultWallltime = iprot.readI32()
+          self.defaultWalltime = iprot.readI32()
         else:
           iprot.skip(ftype)
       else:
@@ -1709,9 +1735,9 @@ class ComputeResourceDescription:
       oprot.writeFieldBegin('defaultCPUCount', TType.I32, 17)
       oprot.writeI32(self.defaultCPUCount)
       oprot.writeFieldEnd()
-    if self.defaultWallltime is not None:
-      oprot.writeFieldBegin('defaultWallltime', TType.I32, 18)
-      oprot.writeI32(self.defaultWallltime)
+    if self.defaultWalltime is not None:
+      oprot.writeFieldBegin('defaultWalltime', TType.I32, 18)
+      oprot.writeI32(self.defaultWalltime)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -1743,7 +1769,7 @@ class ComputeResourceDescription:
     value = (value * 31) ^ hash(self.cpusPerNode)
     value = (value * 31) ^ hash(self.defaultNodeCount)
     value = (value * 31) ^ hash(self.defaultCPUCount)
-    value = (value * 31) ^ hash(self.defaultWallltime)
+    value = (value * 31) ^ hash(self.defaultWalltime)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/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 67dfc20..550971d 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
@@ -71,7 +71,9 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
   private static final org.apache.thrift.protocol.TField CPU_PER_NODE_FIELD_DESC = new org.apache.thrift.protocol.TField("cpuPerNode", org.apache.thrift.protocol.TType.I32, (short)8);
   private static final org.apache.thrift.protocol.TField DEFAULT_NODE_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultNodeCount", org.apache.thrift.protocol.TType.I32, (short)9);
   private static final org.apache.thrift.protocol.TField DEFAULT_CPUCOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultCPUCount", org.apache.thrift.protocol.TType.I32, (short)10);
-  private static final org.apache.thrift.protocol.TField IS_DEFAULT_QUEUE_FIELD_DESC = new org.apache.thrift.protocol.TField("isDefaultQueue", org.apache.thrift.protocol.TType.BOOL, (short)11);
+  private static final org.apache.thrift.protocol.TField DEFAULT_WALLTIME_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultWalltime", org.apache.thrift.protocol.TType.I32, (short)11);
+  private static final org.apache.thrift.protocol.TField QUEUE_SPECIFIC_MACROS_FIELD_DESC = new org.apache.thrift.protocol.TField("queueSpecificMacros", org.apache.thrift.protocol.TType.STRING, (short)12);
+  private static final org.apache.thrift.protocol.TField IS_DEFAULT_QUEUE_FIELD_DESC = new org.apache.thrift.protocol.TField("isDefaultQueue", org.apache.thrift.protocol.TType.BOOL, (short)13);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -89,6 +91,8 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
   private int cpuPerNode; // optional
   private int defaultNodeCount; // optional
   private int defaultCPUCount; // optional
+  private int defaultWalltime; // optional
+  private String queueSpecificMacros; // optional
   private boolean isDefaultQueue; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -103,7 +107,9 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
     CPU_PER_NODE((short)8, "cpuPerNode"),
     DEFAULT_NODE_COUNT((short)9, "defaultNodeCount"),
     DEFAULT_CPUCOUNT((short)10, "defaultCPUCount"),
-    IS_DEFAULT_QUEUE((short)11, "isDefaultQueue");
+    DEFAULT_WALLTIME((short)11, "defaultWalltime"),
+    QUEUE_SPECIFIC_MACROS((short)12, "queueSpecificMacros"),
+    IS_DEFAULT_QUEUE((short)13, "isDefaultQueue");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -138,7 +144,11 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
           return DEFAULT_NODE_COUNT;
         case 10: // DEFAULT_CPUCOUNT
           return DEFAULT_CPUCOUNT;
-        case 11: // IS_DEFAULT_QUEUE
+        case 11: // DEFAULT_WALLTIME
+          return DEFAULT_WALLTIME;
+        case 12: // QUEUE_SPECIFIC_MACROS
+          return QUEUE_SPECIFIC_MACROS;
+        case 13: // IS_DEFAULT_QUEUE
           return IS_DEFAULT_QUEUE;
         default:
           return null;
@@ -188,9 +198,10 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
   private static final int __CPUPERNODE_ISSET_ID = 5;
   private static final int __DEFAULTNODECOUNT_ISSET_ID = 6;
   private static final int __DEFAULTCPUCOUNT_ISSET_ID = 7;
-  private static final int __ISDEFAULTQUEUE_ISSET_ID = 8;
+  private static final int __DEFAULTWALLTIME_ISSET_ID = 8;
+  private static final int __ISDEFAULTQUEUE_ISSET_ID = 9;
   private short __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.QUEUE_DESCRIPTION,_Fields.MAX_RUN_TIME,_Fields.MAX_NODES,_Fields.MAX_PROCESSORS,_Fields.MAX_JOBS_IN_QUEUE,_Fields.MAX_MEMORY,_Fields.CPU_PER_NODE,_Fields.DEFAULT_NODE_COUNT,_Fields.DEFAULT_CPUCOUNT,_Fields.IS_DEFAULT_QUEUE};
+  private static final _Fields optionals[] = {_Fields.QUEUE_DESCRIPTION,_Fields.MAX_RUN_TIME,_Fields.MAX_NODES,_Fields.MAX_PROCESSORS,_Fields.MAX_JOBS_IN_QUEUE,_Fields.MAX_MEMORY,_Fields.CPU_PER_NODE,_Fields.DEFAULT_NODE_COUNT,_Fields.DEFAULT_CPUCOUNT,_Fields.DEFAULT_WALLTIME,_Fields.QUEUE_SPECIFIC_MACROS,_Fields.IS_DEFAULT_QUEUE};
   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);
@@ -214,6 +225,10 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     tmpMap.put(_Fields.DEFAULT_CPUCOUNT, new org.apache.thrift.meta_data.FieldMetaData("defaultCPUCount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.DEFAULT_WALLTIME, new org.apache.thrift.meta_data.FieldMetaData("defaultWalltime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.QUEUE_SPECIFIC_MACROS, new org.apache.thrift.meta_data.FieldMetaData("queueSpecificMacros", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.IS_DEFAULT_QUEUE, new org.apache.thrift.meta_data.FieldMetaData("isDefaultQueue", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
@@ -249,6 +264,10 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
     this.cpuPerNode = other.cpuPerNode;
     this.defaultNodeCount = other.defaultNodeCount;
     this.defaultCPUCount = other.defaultCPUCount;
+    this.defaultWalltime = other.defaultWalltime;
+    if (other.isSetQueueSpecificMacros()) {
+      this.queueSpecificMacros = other.queueSpecificMacros;
+    }
     this.isDefaultQueue = other.isDefaultQueue;
   }
 
@@ -276,6 +295,9 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
     this.defaultNodeCount = 0;
     setDefaultCPUCountIsSet(false);
     this.defaultCPUCount = 0;
+    setDefaultWalltimeIsSet(false);
+    this.defaultWalltime = 0;
+    this.queueSpecificMacros = null;
     setIsDefaultQueueIsSet(false);
     this.isDefaultQueue = false;
   }
@@ -502,6 +524,51 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DEFAULTCPUCOUNT_ISSET_ID, value);
   }
 
+  public int getDefaultWalltime() {
+    return this.defaultWalltime;
+  }
+
+  public void setDefaultWalltime(int defaultWalltime) {
+    this.defaultWalltime = defaultWalltime;
+    setDefaultWalltimeIsSet(true);
+  }
+
+  public void unsetDefaultWalltime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DEFAULTWALLTIME_ISSET_ID);
+  }
+
+  /** Returns true if field defaultWalltime is set (has been assigned a value) and false otherwise */
+  public boolean isSetDefaultWalltime() {
+    return EncodingUtils.testBit(__isset_bitfield, __DEFAULTWALLTIME_ISSET_ID);
+  }
+
+  public void setDefaultWalltimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DEFAULTWALLTIME_ISSET_ID, value);
+  }
+
+  public String getQueueSpecificMacros() {
+    return this.queueSpecificMacros;
+  }
+
+  public void setQueueSpecificMacros(String queueSpecificMacros) {
+    this.queueSpecificMacros = queueSpecificMacros;
+  }
+
+  public void unsetQueueSpecificMacros() {
+    this.queueSpecificMacros = null;
+  }
+
+  /** Returns true if field queueSpecificMacros is set (has been assigned a value) and false otherwise */
+  public boolean isSetQueueSpecificMacros() {
+    return this.queueSpecificMacros != null;
+  }
+
+  public void setQueueSpecificMacrosIsSet(boolean value) {
+    if (!value) {
+      this.queueSpecificMacros = null;
+    }
+  }
+
   public boolean isIsDefaultQueue() {
     return this.isDefaultQueue;
   }
@@ -606,6 +673,22 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
       }
       break;
 
+    case DEFAULT_WALLTIME:
+      if (value == null) {
+        unsetDefaultWalltime();
+      } else {
+        setDefaultWalltime((Integer)value);
+      }
+      break;
+
+    case QUEUE_SPECIFIC_MACROS:
+      if (value == null) {
+        unsetQueueSpecificMacros();
+      } else {
+        setQueueSpecificMacros((String)value);
+      }
+      break;
+
     case IS_DEFAULT_QUEUE:
       if (value == null) {
         unsetIsDefaultQueue();
@@ -649,6 +732,12 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
     case DEFAULT_CPUCOUNT:
       return getDefaultCPUCount();
 
+    case DEFAULT_WALLTIME:
+      return getDefaultWalltime();
+
+    case QUEUE_SPECIFIC_MACROS:
+      return getQueueSpecificMacros();
+
     case IS_DEFAULT_QUEUE:
       return isIsDefaultQueue();
 
@@ -683,6 +772,10 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
       return isSetDefaultNodeCount();
     case DEFAULT_CPUCOUNT:
       return isSetDefaultCPUCount();
+    case DEFAULT_WALLTIME:
+      return isSetDefaultWalltime();
+    case QUEUE_SPECIFIC_MACROS:
+      return isSetQueueSpecificMacros();
     case IS_DEFAULT_QUEUE:
       return isSetIsDefaultQueue();
     }
@@ -792,6 +885,24 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
         return false;
     }
 
+    boolean this_present_defaultWalltime = true && this.isSetDefaultWalltime();
+    boolean that_present_defaultWalltime = true && that.isSetDefaultWalltime();
+    if (this_present_defaultWalltime || that_present_defaultWalltime) {
+      if (!(this_present_defaultWalltime && that_present_defaultWalltime))
+        return false;
+      if (this.defaultWalltime != that.defaultWalltime)
+        return false;
+    }
+
+    boolean this_present_queueSpecificMacros = true && this.isSetQueueSpecificMacros();
+    boolean that_present_queueSpecificMacros = true && that.isSetQueueSpecificMacros();
+    if (this_present_queueSpecificMacros || that_present_queueSpecificMacros) {
+      if (!(this_present_queueSpecificMacros && that_present_queueSpecificMacros))
+        return false;
+      if (!this.queueSpecificMacros.equals(that.queueSpecificMacros))
+        return false;
+    }
+
     boolean this_present_isDefaultQueue = true && this.isSetIsDefaultQueue();
     boolean that_present_isDefaultQueue = true && that.isSetIsDefaultQueue();
     if (this_present_isDefaultQueue || that_present_isDefaultQueue) {
@@ -858,6 +969,16 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
     if (present_defaultCPUCount)
       list.add(defaultCPUCount);
 
+    boolean present_defaultWalltime = true && (isSetDefaultWalltime());
+    list.add(present_defaultWalltime);
+    if (present_defaultWalltime)
+      list.add(defaultWalltime);
+
+    boolean present_queueSpecificMacros = true && (isSetQueueSpecificMacros());
+    list.add(present_queueSpecificMacros);
+    if (present_queueSpecificMacros)
+      list.add(queueSpecificMacros);
+
     boolean present_isDefaultQueue = true && (isSetIsDefaultQueue());
     list.add(present_isDefaultQueue);
     if (present_isDefaultQueue)
@@ -974,6 +1095,26 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetDefaultWalltime()).compareTo(other.isSetDefaultWalltime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDefaultWalltime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.defaultWalltime, other.defaultWalltime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetQueueSpecificMacros()).compareTo(other.isSetQueueSpecificMacros());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQueueSpecificMacros()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queueSpecificMacros, other.queueSpecificMacros);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     lastComparison = Boolean.valueOf(isSetIsDefaultQueue()).compareTo(other.isSetIsDefaultQueue());
     if (lastComparison != 0) {
       return lastComparison;
@@ -1069,6 +1210,22 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
       sb.append(this.defaultCPUCount);
       first = false;
     }
+    if (isSetDefaultWalltime()) {
+      if (!first) sb.append(", ");
+      sb.append("defaultWalltime:");
+      sb.append(this.defaultWalltime);
+      first = false;
+    }
+    if (isSetQueueSpecificMacros()) {
+      if (!first) sb.append(", ");
+      sb.append("queueSpecificMacros:");
+      if (this.queueSpecificMacros == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.queueSpecificMacros);
+      }
+      first = false;
+    }
     if (isSetIsDefaultQueue()) {
       if (!first) sb.append(", ");
       sb.append("isDefaultQueue:");
@@ -1204,7 +1361,23 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 11: // IS_DEFAULT_QUEUE
+          case 11: // DEFAULT_WALLTIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.defaultWalltime = iprot.readI32();
+              struct.setDefaultWalltimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // QUEUE_SPECIFIC_MACROS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.queueSpecificMacros = iprot.readString();
+              struct.setQueueSpecificMacrosIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // IS_DEFAULT_QUEUE
             if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
               struct.isDefaultQueue = iprot.readBool();
               struct.setIsDefaultQueueIsSet(true);
@@ -1277,6 +1450,18 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
         oprot.writeI32(struct.defaultCPUCount);
         oprot.writeFieldEnd();
       }
+      if (struct.isSetDefaultWalltime()) {
+        oprot.writeFieldBegin(DEFAULT_WALLTIME_FIELD_DESC);
+        oprot.writeI32(struct.defaultWalltime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.queueSpecificMacros != null) {
+        if (struct.isSetQueueSpecificMacros()) {
+          oprot.writeFieldBegin(QUEUE_SPECIFIC_MACROS_FIELD_DESC);
+          oprot.writeString(struct.queueSpecificMacros);
+          oprot.writeFieldEnd();
+        }
+      }
       if (struct.isSetIsDefaultQueue()) {
         oprot.writeFieldBegin(IS_DEFAULT_QUEUE_FIELD_DESC);
         oprot.writeBool(struct.isDefaultQueue);
@@ -1328,10 +1513,16 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
       if (struct.isSetDefaultCPUCount()) {
         optionals.set(8);
       }
-      if (struct.isSetIsDefaultQueue()) {
+      if (struct.isSetDefaultWalltime()) {
         optionals.set(9);
       }
-      oprot.writeBitSet(optionals, 10);
+      if (struct.isSetQueueSpecificMacros()) {
+        optionals.set(10);
+      }
+      if (struct.isSetIsDefaultQueue()) {
+        optionals.set(11);
+      }
+      oprot.writeBitSet(optionals, 12);
       if (struct.isSetQueueDescription()) {
         oprot.writeString(struct.queueDescription);
       }
@@ -1359,6 +1550,12 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
       if (struct.isSetDefaultCPUCount()) {
         oprot.writeI32(struct.defaultCPUCount);
       }
+      if (struct.isSetDefaultWalltime()) {
+        oprot.writeI32(struct.defaultWalltime);
+      }
+      if (struct.isSetQueueSpecificMacros()) {
+        oprot.writeString(struct.queueSpecificMacros);
+      }
       if (struct.isSetIsDefaultQueue()) {
         oprot.writeBool(struct.isDefaultQueue);
       }
@@ -1369,7 +1566,7 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.queueName = iprot.readString();
       struct.setQueueNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(10);
+      BitSet incoming = iprot.readBitSet(12);
       if (incoming.get(0)) {
         struct.queueDescription = iprot.readString();
         struct.setQueueDescriptionIsSet(true);
@@ -1407,6 +1604,14 @@ public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueu
         struct.setDefaultCPUCountIsSet(true);
       }
       if (incoming.get(9)) {
+        struct.defaultWalltime = iprot.readI32();
+        struct.setDefaultWalltimeIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.queueSpecificMacros = iprot.readString();
+        struct.setQueueSpecificMacrosIsSet(true);
+      }
+      if (incoming.get(11)) {
         struct.isDefaultQueue = iprot.readBool();
         struct.setIsDefaultQueueIsSet(true);
       }

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/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 b10f8a8..65ad6ad 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
@@ -101,7 +101,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
   private static final org.apache.thrift.protocol.TField CPUS_PER_NODE_FIELD_DESC = new org.apache.thrift.protocol.TField("cpusPerNode", org.apache.thrift.protocol.TType.I32, (short)15);
   private static final org.apache.thrift.protocol.TField DEFAULT_NODE_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultNodeCount", org.apache.thrift.protocol.TType.I32, (short)16);
   private static final org.apache.thrift.protocol.TField DEFAULT_CPUCOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultCPUCount", org.apache.thrift.protocol.TType.I32, (short)17);
-  private static final org.apache.thrift.protocol.TField DEFAULT_WALLLTIME_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultWallltime", org.apache.thrift.protocol.TType.I32, (short)18);
+  private static final org.apache.thrift.protocol.TField DEFAULT_WALLTIME_FIELD_DESC = new org.apache.thrift.protocol.TField("defaultWalltime", org.apache.thrift.protocol.TType.I32, (short)18);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -126,7 +126,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
   private int cpusPerNode; // optional
   private int defaultNodeCount; // optional
   private int defaultCPUCount; // optional
-  private int defaultWallltime; // optional
+  private int defaultWalltime; // 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 {
@@ -147,7 +147,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     CPUS_PER_NODE((short)15, "cpusPerNode"),
     DEFAULT_NODE_COUNT((short)16, "defaultNodeCount"),
     DEFAULT_CPUCOUNT((short)17, "defaultCPUCount"),
-    DEFAULT_WALLLTIME((short)18, "defaultWallltime");
+    DEFAULT_WALLTIME((short)18, "defaultWalltime");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -196,8 +196,8 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
           return DEFAULT_NODE_COUNT;
         case 17: // DEFAULT_CPUCOUNT
           return DEFAULT_CPUCOUNT;
-        case 18: // DEFAULT_WALLLTIME
-          return DEFAULT_WALLLTIME;
+        case 18: // DEFAULT_WALLTIME
+          return DEFAULT_WALLTIME;
         default:
           return null;
       }
@@ -244,9 +244,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
   private static final int __CPUSPERNODE_ISSET_ID = 3;
   private static final int __DEFAULTNODECOUNT_ISSET_ID = 4;
   private static final int __DEFAULTCPUCOUNT_ISSET_ID = 5;
-  private static final int __DEFAULTWALLLTIME_ISSET_ID = 6;
+  private static final int __DEFAULTWALLTIME_ISSET_ID = 6;
   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,_Fields.GATEWAY_USAGE_REPORTING,_Fields.GATEWAY_USAGE_MODULE_LOAD_COMMAND,_Fields.GATEWAY_USAGE_EXECUTABLE,_Fields.CPUS_PER_NODE,_Fields.DEFAULT_NODE_COUNT,_Fields.DEFAULT_CPUCOUNT,_Fields.DEFAULT_WALLLTIME};
+  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.GATEWAY_USAGE_REPORTING,_Fields.GATEWAY_USAGE_MODULE_LOAD_COMMAND,_Fields.GATEWAY_USAGE_EXECUTABLE,_Fields.CPUS_PER_NODE,_Fields.DEFAULT_NODE_COUNT,_Fields.DEFAULT_CPUCOUNT,_Fields.DEFAULT_WALLTIME};
   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);
@@ -291,7 +291,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     tmpMap.put(_Fields.DEFAULT_CPUCOUNT, new org.apache.thrift.meta_data.FieldMetaData("defaultCPUCount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
-    tmpMap.put(_Fields.DEFAULT_WALLLTIME, new org.apache.thrift.meta_data.FieldMetaData("defaultWallltime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+    tmpMap.put(_Fields.DEFAULT_WALLTIME, new org.apache.thrift.meta_data.FieldMetaData("defaultWalltime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputeResourceDescription.class, metaDataMap);
@@ -381,7 +381,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     this.cpusPerNode = other.cpusPerNode;
     this.defaultNodeCount = other.defaultNodeCount;
     this.defaultCPUCount = other.defaultCPUCount;
-    this.defaultWallltime = other.defaultWallltime;
+    this.defaultWalltime = other.defaultWalltime;
   }
 
   public ComputeResourceDescription deepCopy() {
@@ -414,8 +414,8 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     this.defaultNodeCount = 0;
     setDefaultCPUCountIsSet(false);
     this.defaultCPUCount = 0;
-    setDefaultWallltimeIsSet(false);
-    this.defaultWallltime = 0;
+    setDefaultWalltimeIsSet(false);
+    this.defaultWalltime = 0;
   }
 
   public String getComputeResourceId() {
@@ -889,26 +889,26 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DEFAULTCPUCOUNT_ISSET_ID, value);
   }
 
-  public int getDefaultWallltime() {
-    return this.defaultWallltime;
+  public int getDefaultWalltime() {
+    return this.defaultWalltime;
   }
 
-  public void setDefaultWallltime(int defaultWallltime) {
-    this.defaultWallltime = defaultWallltime;
-    setDefaultWallltimeIsSet(true);
+  public void setDefaultWalltime(int defaultWalltime) {
+    this.defaultWalltime = defaultWalltime;
+    setDefaultWalltimeIsSet(true);
   }
 
-  public void unsetDefaultWallltime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DEFAULTWALLLTIME_ISSET_ID);
+  public void unsetDefaultWalltime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DEFAULTWALLTIME_ISSET_ID);
   }
 
-  /** Returns true if field defaultWallltime is set (has been assigned a value) and false otherwise */
-  public boolean isSetDefaultWallltime() {
-    return EncodingUtils.testBit(__isset_bitfield, __DEFAULTWALLLTIME_ISSET_ID);
+  /** Returns true if field defaultWalltime is set (has been assigned a value) and false otherwise */
+  public boolean isSetDefaultWalltime() {
+    return EncodingUtils.testBit(__isset_bitfield, __DEFAULTWALLTIME_ISSET_ID);
   }
 
-  public void setDefaultWallltimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DEFAULTWALLLTIME_ISSET_ID, value);
+  public void setDefaultWalltimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DEFAULTWALLTIME_ISSET_ID, value);
   }
 
   public void setFieldValue(_Fields field, Object value) {
@@ -1049,11 +1049,11 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       }
       break;
 
-    case DEFAULT_WALLLTIME:
+    case DEFAULT_WALLTIME:
       if (value == null) {
-        unsetDefaultWallltime();
+        unsetDefaultWalltime();
       } else {
-        setDefaultWallltime((Integer)value);
+        setDefaultWalltime((Integer)value);
       }
       break;
 
@@ -1113,8 +1113,8 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     case DEFAULT_CPUCOUNT:
       return getDefaultCPUCount();
 
-    case DEFAULT_WALLLTIME:
-      return getDefaultWallltime();
+    case DEFAULT_WALLTIME:
+      return getDefaultWalltime();
 
     }
     throw new IllegalStateException();
@@ -1161,8 +1161,8 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       return isSetDefaultNodeCount();
     case DEFAULT_CPUCOUNT:
       return isSetDefaultCPUCount();
-    case DEFAULT_WALLLTIME:
-      return isSetDefaultWallltime();
+    case DEFAULT_WALLTIME:
+      return isSetDefaultWalltime();
     }
     throw new IllegalStateException();
   }
@@ -1333,12 +1333,12 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         return false;
     }
 
-    boolean this_present_defaultWallltime = true && this.isSetDefaultWallltime();
-    boolean that_present_defaultWallltime = true && that.isSetDefaultWallltime();
-    if (this_present_defaultWallltime || that_present_defaultWallltime) {
-      if (!(this_present_defaultWallltime && that_present_defaultWallltime))
+    boolean this_present_defaultWalltime = true && this.isSetDefaultWalltime();
+    boolean that_present_defaultWalltime = true && that.isSetDefaultWalltime();
+    if (this_present_defaultWalltime || that_present_defaultWalltime) {
+      if (!(this_present_defaultWalltime && that_present_defaultWalltime))
         return false;
-      if (this.defaultWallltime != that.defaultWallltime)
+      if (this.defaultWalltime != that.defaultWalltime)
         return false;
     }
 
@@ -1434,10 +1434,10 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
     if (present_defaultCPUCount)
       list.add(defaultCPUCount);
 
-    boolean present_defaultWallltime = true && (isSetDefaultWallltime());
-    list.add(present_defaultWallltime);
-    if (present_defaultWallltime)
-      list.add(defaultWallltime);
+    boolean present_defaultWalltime = true && (isSetDefaultWalltime());
+    list.add(present_defaultWalltime);
+    if (present_defaultWalltime)
+      list.add(defaultWalltime);
 
     return list.hashCode();
   }
@@ -1620,12 +1620,12 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetDefaultWallltime()).compareTo(other.isSetDefaultWallltime());
+    lastComparison = Boolean.valueOf(isSetDefaultWalltime()).compareTo(other.isSetDefaultWalltime());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetDefaultWallltime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.defaultWallltime, other.defaultWallltime);
+    if (isSetDefaultWalltime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.defaultWalltime, other.defaultWalltime);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -1791,10 +1791,10 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       sb.append(this.defaultCPUCount);
       first = false;
     }
-    if (isSetDefaultWallltime()) {
+    if (isSetDefaultWalltime()) {
       if (!first) sb.append(", ");
-      sb.append("defaultWallltime:");
-      sb.append(this.defaultWallltime);
+      sb.append("defaultWalltime:");
+      sb.append(this.defaultWalltime);
       first = false;
     }
     sb.append(")");
@@ -2051,10 +2051,10 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 18: // DEFAULT_WALLLTIME
+          case 18: // DEFAULT_WALLTIME
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.defaultWallltime = iprot.readI32();
-              struct.setDefaultWallltimeIsSet(true);
+              struct.defaultWalltime = iprot.readI32();
+              struct.setDefaultWalltimeIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -2218,9 +2218,9 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         oprot.writeI32(struct.defaultCPUCount);
         oprot.writeFieldEnd();
       }
-      if (struct.isSetDefaultWallltime()) {
-        oprot.writeFieldBegin(DEFAULT_WALLLTIME_FIELD_DESC);
-        oprot.writeI32(struct.defaultWallltime);
+      if (struct.isSetDefaultWalltime()) {
+        oprot.writeFieldBegin(DEFAULT_WALLTIME_FIELD_DESC);
+        oprot.writeI32(struct.defaultWalltime);
         oprot.writeFieldEnd();
       }
       oprot.writeFieldStop();
@@ -2288,7 +2288,7 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetDefaultCPUCount()) {
         optionals.set(14);
       }
-      if (struct.isSetDefaultWallltime()) {
+      if (struct.isSetDefaultWalltime()) {
         optionals.set(15);
       }
       oprot.writeBitSet(optionals, 16);
@@ -2374,8 +2374,8 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
       if (struct.isSetDefaultCPUCount()) {
         oprot.writeI32(struct.defaultCPUCount);
       }
-      if (struct.isSetDefaultWallltime()) {
-        oprot.writeI32(struct.defaultWallltime);
+      if (struct.isSetDefaultWalltime()) {
+        oprot.writeI32(struct.defaultWalltime);
       }
     }
 
@@ -2507,8 +2507,8 @@ public class ComputeResourceDescription implements org.apache.thrift.TBase<Compu
         struct.setDefaultCPUCountIsSet(true);
       }
       if (incoming.get(15)) {
-        struct.defaultWallltime = iprot.readI32();
-        struct.setDefaultWallltimeIsSet(true);
+        struct.defaultWalltime = iprot.readI32();
+        struct.setDefaultWalltimeIsSet(true);
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/BatchQueue.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/BatchQueue.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/BatchQueue.java
index 7c9e173..1bd9a9b 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/BatchQueue.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/BatchQueue.java
@@ -66,6 +66,12 @@ public class BatchQueue implements Serializable {
 	@Column(name = "DEFAULT_CPU_COUNT")
 	private int defaultCPUCount;
 
+	@Column(name = "DEFAULT_WALLTIME")
+	private int defaultWalltime;
+
+	@Column(name = "QUEUE_SPECIFIC_MACROS")
+	private String queueSpecificMacros;
+
 	@Column(name = "IS_DEFAULT_QUEUE")
 	private boolean isDefaultQueue;
 
@@ -165,11 +171,27 @@ public class BatchQueue implements Serializable {
 		this.defaultCPUCount = defaultCPUCount;
 	}
 
-	public boolean isDefaultQueue() {
+	public boolean getIsDefaultQueue() {
 		return isDefaultQueue;
 	}
 
 	public void setIsDefaultQueue(boolean isDefaultQueue) {
 		this.isDefaultQueue = isDefaultQueue;
 	}
+
+	public int getDefaultWalltime() {
+		return defaultWalltime;
+	}
+
+	public void setDefaultWalltime(int defaultWalltime) {
+		this.defaultWalltime = defaultWalltime;
+	}
+
+	public String getQueueSpecificMacros() {
+		return queueSpecificMacros;
+	}
+
+	public void setQueueSpecificMacros(String queueSpecificMacros) {
+		this.queueSpecificMacros = queueSpecificMacros;
+	}
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueResource.java
index ca0619b..a3988e2 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/BatchQueueResource.java
@@ -51,6 +51,8 @@ public class BatchQueueResource extends AppCatAbstractResource {
 	private int cpuPerNode;
 	private int defaultNodeCount;
 	private int defaultCPUCount;
+	private int defaultWalltime;
+	private String queueSpecificMacros;
 	private boolean isDefaultQueue;
 
 
@@ -275,6 +277,8 @@ public class BatchQueueResource extends AppCatAbstractResource {
 			batchQueue.setCpuPerNode(getCpuPerNode());
 			batchQueue.setDefaultCPUCount(getDefaultCPUCount());
 			batchQueue.setDefaultNodeCount(getDefaultNodeCount());
+			batchQueue.setDefaultWalltime(getDefaultWalltime());
+			batchQueue.setQueueSpecificMacros(getQueueSpecificMacros());
 			batchQueue.setIsDefaultQueue(isDefaultQueue());
 			if (existingBatchQueue == null) {
 				em.persist(batchQueue);
@@ -437,4 +441,20 @@ public class BatchQueueResource extends AppCatAbstractResource {
 	public void setIsDefaultQueue(boolean isDefaultQueue) {
 		this.isDefaultQueue = isDefaultQueue;
 	}
+
+	public int getDefaultWalltime() {
+		return defaultWalltime;
+	}
+
+	public void setDefaultWalltime(int defaultWalltime) {
+		this.defaultWalltime = defaultWalltime;
+	}
+
+	public String getQueueSpecificMacros() {
+		return queueSpecificMacros;
+	}
+
+	public void setQueueSpecificMacros(String queueSpecificMacros) {
+		this.queueSpecificMacros = queueSpecificMacros;
+	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
index 04cf776..3a97b11 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
@@ -527,7 +527,9 @@ public class AppCatalogJPAUtils {
             batchQueueResource.setCpuPerNode(o.getCpuPerNode());
             batchQueueResource.setDefaultNodeCount(o.getDefaultNodeCount());
             batchQueueResource.setDefaultCPUCount(o.getDefaultCPUCount());
-            batchQueueResource.setIsDefaultQueue(o.isDefaultQueue());
+            batchQueueResource.setDefaultWalltime(o.getDefaultWalltime());
+            batchQueueResource.setQueueSpecificMacros(o.getQueueSpecificMacros());
+            batchQueueResource.setIsDefaultQueue(o.getIsDefaultQueue());
         }
         return batchQueueResource;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java
index 690f6d2..acfc16e 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java
@@ -54,7 +54,7 @@ public class AppCatalogThriftConversion {
         resource.setCpusPerNode(description.getCpusPerNode());
         resource.setDefaultNodeCount(description.getDefaultNodeCount());
         resource.setDefaultCPUCount(description.getDefaultCPUCount());
-        resource.setDefaultWalltime(description.getDefaultWallltime());
+        resource.setDefaultWalltime(description.getDefaultWalltime());
         resource.setEnabled(description.isEnabled());
         resource.setGatewayUsageReporting(description.isGatewayUsageReporting());
         resource.setGatewayUsageExec(description.getGatewayUsageExecutable());
@@ -80,7 +80,7 @@ public class AppCatalogThriftConversion {
         description.setCpusPerNode(resource.getCpusPerNode());
         description.setDefaultNodeCount(resource.getDefaultNodeCount());
         description.setDefaultCPUCount(resource.getDefaultCPUCount());
-        description.setDefaultWallltime(resource.getDefaultWalltime());
+        description.setDefaultWalltime(resource.getDefaultWalltime());
         description.setEnabled(resource.isEnabled());
         description.setGatewayUsageReporting(resource.isGatewayUsageReporting());
         description.setGatewayUsageExecutable(resource.getGatewayUsageExec());
@@ -265,6 +265,8 @@ public class AppCatalogThriftConversion {
         batchQueue.setCpuPerNode(resource.getCpuPerNode());
         batchQueue.setDefaultNodeCount(resource.getDefaultNodeCount());
         batchQueue.setDefaultCPUCount(resource.getDefaultCPUCount());
+        batchQueue.setDefaultWalltime(resource.getDefaultWalltime());
+        batchQueue.setQueueSpecificMacros(resource.getQueueSpecificMacros());
         batchQueue.setIsDefaultQueue(resource.isDefaultQueue());
         return batchQueue;
     }
@@ -281,6 +283,8 @@ public class AppCatalogThriftConversion {
         batchQueue.setCpuPerNode(resource.getCpuPerNode());
         batchQueue.setDefaultCPUCount(resource.getDefaultCPUCount());
         batchQueue.setDefaultNodeCount(resource.getDefaultNodeCount());
+        batchQueue.setDefaultWalltime(resource.getDefaultWalltime());
+        batchQueue.setQueueSpecificMacros(resource.getQueueSpecificMacros());
         batchQueue.setIsDefaultQueue(resource.isIsDefaultQueue());
         return batchQueue;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
index 8014ccf..68fd1ff 100644
--- a/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
@@ -374,6 +374,8 @@ CREATE TABLE BATCH_QUEUE
         CPU_PER_NODE INTEGER,
         DEFAULT_NODE_COUNT INTEGER,
         DEFAULT_CPU_COUNT INTEGER,
+        DEFAULT_WALLTIME INTEGER,
+        QUEUE_SPECIFIC_MACROS VARCHAR(255),
         IS_DEFAULT_QUEUE BOOLEAN,
         PRIMARY KEY (COMPUTE_RESOURCE_ID,QUEUE_NAME),
         FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
index 5de9ebf..997bb2d 100644
--- a/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
@@ -373,6 +373,8 @@ CREATE TABLE BATCH_QUEUE
         CPU_PER_NODE INTEGER,
         DEFAULT_NODE_COUNT INTEGER,
         DEFAULT_CPU_COUNT INTEGER,
+        DEFAULT_WALLTIME INTEGER,
+        QUEUE_SPECIFIC_MACROS VARCHAR(255),
         IS_DEFAULT_QUEUE TINYINT(1),
         PRIMARY KEY (COMPUTE_RESOURCE_ID,QUEUE_NAME),
         FOREIGN KEY (COMPUTE_RESOURCE_ID) REFERENCES COMPUTE_RESOURCE(RESOURCE_ID) ON DELETE CASCADE

http://git-wip-us.apache.org/repos/asf/airavata/blob/11f12dfc/thrift-interface-descriptions/data-models/resource-catalog-models/compute_resource_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/resource-catalog-models/compute_resource_model.thrift b/thrift-interface-descriptions/data-models/resource-catalog-models/compute_resource_model.thrift
index aaa3dbe..87f2ff3 100644
--- a/thrift-interface-descriptions/data-models/resource-catalog-models/compute_resource_model.thrift
+++ b/thrift-interface-descriptions/data-models/resource-catalog-models/compute_resource_model.thrift
@@ -160,7 +160,9 @@ struct BatchQueue {
     8: optional i32 cpuPerNode,
     9: optional i32 defaultNodeCount,
     10: optional i32 defaultCPUCount,
-    11: optional bool isDefaultQueue
+    11: optional i32 defaultWalltime,
+    12: optional string queueSpecificMacros,
+    13: optional bool isDefaultQueue
 }
 
 
@@ -361,5 +363,5 @@ struct ComputeResourceDescription {
     15: optional i32 cpusPerNode,
     16: optional i32 defaultNodeCount,
     17: optional i32 defaultCPUCount,
-    18: optional i32 defaultWallltime,
+    18: optional i32 defaultWalltime,
 }