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 2016/11/08 18:40:07 UTC

[4/9] airavata git commit: Implementing cluster status monitoring

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/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 b86ac9a..174d3b8 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
@@ -45,7 +45,6 @@ class ResourceJobManagerType:
   SLURM = 2
   LSF = 3
   UGE = 4
-  CLOUD = 5
 
   _VALUES_TO_NAMES = {
     0: "FORK",
@@ -53,7 +52,6 @@ class ResourceJobManagerType:
     2: "SLURM",
     3: "LSF",
     4: "UGE",
-    5: "CLOUD",
   }
 
   _NAMES_TO_VALUES = {
@@ -62,7 +60,6 @@ class ResourceJobManagerType:
     "SLURM": 2,
     "LSF": 3,
     "UGE": 4,
-    "CLOUD": 5,
   }
 
 class JobManagerCommand:
@@ -1140,7 +1137,6 @@ class CloudJobSubmission:
   Attributes:
    - jobSubmissionInterfaceId
    - securityProtocol
-   - jobManagerType
    - nodeId
    - executableType
    - providerName
@@ -1151,17 +1147,15 @@ class CloudJobSubmission:
     None, # 0
     (1, TType.STRING, 'jobSubmissionInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
     (2, TType.I32, 'securityProtocol', None, None, ), # 2
-    (3, TType.I32, 'jobManagerType', None, None, ), # 3
-    (4, TType.STRING, 'nodeId', None, None, ), # 4
-    (5, TType.STRING, 'executableType', None, None, ), # 5
-    (6, TType.I32, 'providerName', None, None, ), # 6
-    (7, TType.STRING, 'userAccountName', None, None, ), # 7
+    (3, TType.STRING, 'nodeId', None, None, ), # 3
+    (4, TType.STRING, 'executableType', None, None, ), # 4
+    (5, TType.I32, 'providerName', None, None, ), # 5
+    (6, TType.STRING, 'userAccountName', None, None, ), # 6
   )
 
-  def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, jobManagerType=None, nodeId=None, executableType=None, providerName=None, userAccountName=None,):
+  def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, nodeId=None, executableType=None, providerName=None, userAccountName=None,):
     self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
     self.securityProtocol = securityProtocol
-    self.jobManagerType = jobManagerType
     self.nodeId = nodeId
     self.executableType = executableType
     self.providerName = providerName
@@ -1187,26 +1181,21 @@ class CloudJobSubmission:
         else:
           iprot.skip(ftype)
       elif fid == 3:
-        if ftype == TType.I32:
-          self.jobManagerType = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
         if ftype == TType.STRING:
           self.nodeId = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 5:
+      elif fid == 4:
         if ftype == TType.STRING:
           self.executableType = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 6:
+      elif fid == 5:
         if ftype == TType.I32:
           self.providerName = iprot.readI32()
         else:
           iprot.skip(ftype)
-      elif fid == 7:
+      elif fid == 6:
         if ftype == TType.STRING:
           self.userAccountName = iprot.readString()
         else:
@@ -1229,24 +1218,20 @@ class CloudJobSubmission:
       oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
       oprot.writeI32(self.securityProtocol)
       oprot.writeFieldEnd()
-    if self.jobManagerType is not None:
-      oprot.writeFieldBegin('jobManagerType', TType.I32, 3)
-      oprot.writeI32(self.jobManagerType)
-      oprot.writeFieldEnd()
     if self.nodeId is not None:
-      oprot.writeFieldBegin('nodeId', TType.STRING, 4)
+      oprot.writeFieldBegin('nodeId', TType.STRING, 3)
       oprot.writeString(self.nodeId)
       oprot.writeFieldEnd()
     if self.executableType is not None:
-      oprot.writeFieldBegin('executableType', TType.STRING, 5)
+      oprot.writeFieldBegin('executableType', TType.STRING, 4)
       oprot.writeString(self.executableType)
       oprot.writeFieldEnd()
     if self.providerName is not None:
-      oprot.writeFieldBegin('providerName', TType.I32, 6)
+      oprot.writeFieldBegin('providerName', TType.I32, 5)
       oprot.writeI32(self.providerName)
       oprot.writeFieldEnd()
     if self.userAccountName is not None:
-      oprot.writeFieldBegin('userAccountName', TType.STRING, 7)
+      oprot.writeFieldBegin('userAccountName', TType.STRING, 6)
       oprot.writeString(self.userAccountName)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -1257,8 +1242,6 @@ class CloudJobSubmission:
       raise TProtocol.TProtocolException(message='Required field jobSubmissionInterfaceId is unset!')
     if self.securityProtocol is None:
       raise TProtocol.TProtocolException(message='Required field securityProtocol is unset!')
-    if self.jobManagerType is None:
-      raise TProtocol.TProtocolException(message='Required field jobManagerType is unset!')
     if self.nodeId is None:
       raise TProtocol.TProtocolException(message='Required field nodeId is unset!')
     if self.executableType is None:
@@ -1274,7 +1257,6 @@ class CloudJobSubmission:
     value = 17
     value = (value * 31) ^ hash(self.jobSubmissionInterfaceId)
     value = (value * 31) ^ hash(self.securityProtocol)
-    value = (value * 31) ^ hash(self.jobManagerType)
     value = (value * 31) ^ hash(self.nodeId)
     value = (value * 31) ^ hash(self.executableType)
     value = (value * 31) ^ hash(self.providerName)

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/status/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/status/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/status/ttypes.py
index f5280cd..f3bae9c 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/status/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/status/ttypes.py
@@ -540,3 +540,145 @@ class JobStatus:
 
   def __ne__(self, other):
     return not (self == other)
+
+class QueueStatusModel:
+  """
+  Attributes:
+   - hostName
+   - queueName
+   - queueUp
+   - runningJobs
+   - queuedJobs
+   - time
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'hostName', None, None, ), # 1
+    (2, TType.STRING, 'queueName', None, None, ), # 2
+    (3, TType.BOOL, 'queueUp', None, None, ), # 3
+    (4, TType.I32, 'runningJobs', None, None, ), # 4
+    (5, TType.I32, 'queuedJobs', None, None, ), # 5
+    (6, TType.I64, 'time', None, None, ), # 6
+  )
+
+  def __init__(self, hostName=None, queueName=None, queueUp=None, runningJobs=None, queuedJobs=None, time=None,):
+    self.hostName = hostName
+    self.queueName = queueName
+    self.queueUp = queueUp
+    self.runningJobs = runningJobs
+    self.queuedJobs = queuedJobs
+    self.time = time
+
+  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:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.hostName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.queueName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.BOOL:
+          self.queueUp = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.I32:
+          self.runningJobs = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.I32:
+          self.queuedJobs = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.I64:
+          self.time = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('QueueStatusModel')
+    if self.hostName is not None:
+      oprot.writeFieldBegin('hostName', TType.STRING, 1)
+      oprot.writeString(self.hostName)
+      oprot.writeFieldEnd()
+    if self.queueName is not None:
+      oprot.writeFieldBegin('queueName', TType.STRING, 2)
+      oprot.writeString(self.queueName)
+      oprot.writeFieldEnd()
+    if self.queueUp is not None:
+      oprot.writeFieldBegin('queueUp', TType.BOOL, 3)
+      oprot.writeBool(self.queueUp)
+      oprot.writeFieldEnd()
+    if self.runningJobs is not None:
+      oprot.writeFieldBegin('runningJobs', TType.I32, 4)
+      oprot.writeI32(self.runningJobs)
+      oprot.writeFieldEnd()
+    if self.queuedJobs is not None:
+      oprot.writeFieldBegin('queuedJobs', TType.I32, 5)
+      oprot.writeI32(self.queuedJobs)
+      oprot.writeFieldEnd()
+    if self.time is not None:
+      oprot.writeFieldBegin('time', TType.I64, 6)
+      oprot.writeI64(self.time)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.hostName is None:
+      raise TProtocol.TProtocolException(message='Required field hostName is unset!')
+    if self.queueName is None:
+      raise TProtocol.TProtocolException(message='Required field queueName is unset!')
+    if self.queueUp is None:
+      raise TProtocol.TProtocolException(message='Required field queueUp is unset!')
+    if self.runningJobs is None:
+      raise TProtocol.TProtocolException(message='Required field runningJobs is unset!')
+    if self.queuedJobs is None:
+      raise TProtocol.TProtocolException(message='Required field queuedJobs is unset!')
+    if self.time is None:
+      raise TProtocol.TProtocolException(message='Required field time is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.hostName)
+    value = (value * 31) ^ hash(self.queueName)
+    value = (value * 31) ^ hash(self.queueUp)
+    value = (value * 31) ^ hash(self.runningJobs)
+    value = (value * 31) ^ hash(self.queuedJobs)
+    value = (value * 31) ^ hash(self.time)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/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 23469ac..7d540de 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
@@ -62,11 +62,10 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
 
   private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
-  private static final org.apache.thrift.protocol.TField JOB_MANAGER_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("jobManagerType", org.apache.thrift.protocol.TType.I32, (short)3);
-  private static final org.apache.thrift.protocol.TField NODE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeId", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField EXECUTABLE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("executableType", org.apache.thrift.protocol.TType.STRING, (short)5);
-  private static final org.apache.thrift.protocol.TField PROVIDER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("providerName", org.apache.thrift.protocol.TType.I32, (short)6);
-  private static final org.apache.thrift.protocol.TField USER_ACCOUNT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userAccountName", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField NODE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EXECUTABLE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("executableType", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField PROVIDER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("providerName", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField USER_ACCOUNT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userAccountName", org.apache.thrift.protocol.TType.STRING, (short)6);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -76,7 +75,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
 
   private String jobSubmissionInterfaceId; // required
   private org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol; // required
-  private ResourceJobManagerType jobManagerType; // required
   private String nodeId; // required
   private String executableType; // required
   private ProviderName providerName; // required
@@ -90,19 +88,14 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
      * @see org.apache.airavata.model.data.movement.SecurityProtocol
      */
     SECURITY_PROTOCOL((short)2, "securityProtocol"),
-    /**
-     * 
-     * @see ResourceJobManagerType
-     */
-    JOB_MANAGER_TYPE((short)3, "jobManagerType"),
-    NODE_ID((short)4, "nodeId"),
-    EXECUTABLE_TYPE((short)5, "executableType"),
+    NODE_ID((short)3, "nodeId"),
+    EXECUTABLE_TYPE((short)4, "executableType"),
     /**
      * 
      * @see ProviderName
      */
-    PROVIDER_NAME((short)6, "providerName"),
-    USER_ACCOUNT_NAME((short)7, "userAccountName");
+    PROVIDER_NAME((short)5, "providerName"),
+    USER_ACCOUNT_NAME((short)6, "userAccountName");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -121,15 +114,13 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
           return JOB_SUBMISSION_INTERFACE_ID;
         case 2: // SECURITY_PROTOCOL
           return SECURITY_PROTOCOL;
-        case 3: // JOB_MANAGER_TYPE
-          return JOB_MANAGER_TYPE;
-        case 4: // NODE_ID
+        case 3: // NODE_ID
           return NODE_ID;
-        case 5: // EXECUTABLE_TYPE
+        case 4: // EXECUTABLE_TYPE
           return EXECUTABLE_TYPE;
-        case 6: // PROVIDER_NAME
+        case 5: // PROVIDER_NAME
           return PROVIDER_NAME;
-        case 7: // USER_ACCOUNT_NAME
+        case 6: // USER_ACCOUNT_NAME
           return USER_ACCOUNT_NAME;
         default:
           return null;
@@ -178,8 +169,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.SecurityProtocol.class)));
-    tmpMap.put(_Fields.JOB_MANAGER_TYPE, new org.apache.thrift.meta_data.FieldMetaData("jobManagerType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManagerType.class)));
     tmpMap.put(_Fields.NODE_ID, new org.apache.thrift.meta_data.FieldMetaData("nodeId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.EXECUTABLE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("executableType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
@@ -200,7 +189,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
   public CloudJobSubmission(
     String jobSubmissionInterfaceId,
     org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol,
-    ResourceJobManagerType jobManagerType,
     String nodeId,
     String executableType,
     ProviderName providerName,
@@ -209,7 +197,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     this();
     this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
     this.securityProtocol = securityProtocol;
-    this.jobManagerType = jobManagerType;
     this.nodeId = nodeId;
     this.executableType = executableType;
     this.providerName = providerName;
@@ -226,9 +213,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     if (other.isSetSecurityProtocol()) {
       this.securityProtocol = other.securityProtocol;
     }
-    if (other.isSetJobManagerType()) {
-      this.jobManagerType = other.jobManagerType;
-    }
     if (other.isSetNodeId()) {
       this.nodeId = other.nodeId;
     }
@@ -252,7 +236,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
 
     this.securityProtocol = null;
-    this.jobManagerType = null;
     this.nodeId = null;
     this.executableType = null;
     this.providerName = null;
@@ -313,37 +296,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     }
   }
 
-  /**
-   * 
-   * @see ResourceJobManagerType
-   */
-  public ResourceJobManagerType getJobManagerType() {
-    return this.jobManagerType;
-  }
-
-  /**
-   * 
-   * @see ResourceJobManagerType
-   */
-  public void setJobManagerType(ResourceJobManagerType jobManagerType) {
-    this.jobManagerType = jobManagerType;
-  }
-
-  public void unsetJobManagerType() {
-    this.jobManagerType = null;
-  }
-
-  /** Returns true if field jobManagerType is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobManagerType() {
-    return this.jobManagerType != null;
-  }
-
-  public void setJobManagerTypeIsSet(boolean value) {
-    if (!value) {
-      this.jobManagerType = null;
-    }
-  }
-
   public String getNodeId() {
     return this.nodeId;
   }
@@ -462,14 +414,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
       }
       break;
 
-    case JOB_MANAGER_TYPE:
-      if (value == null) {
-        unsetJobManagerType();
-      } else {
-        setJobManagerType((ResourceJobManagerType)value);
-      }
-      break;
-
     case NODE_ID:
       if (value == null) {
         unsetNodeId();
@@ -513,9 +457,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     case SECURITY_PROTOCOL:
       return getSecurityProtocol();
 
-    case JOB_MANAGER_TYPE:
-      return getJobManagerType();
-
     case NODE_ID:
       return getNodeId();
 
@@ -543,8 +484,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
       return isSetJobSubmissionInterfaceId();
     case SECURITY_PROTOCOL:
       return isSetSecurityProtocol();
-    case JOB_MANAGER_TYPE:
-      return isSetJobManagerType();
     case NODE_ID:
       return isSetNodeId();
     case EXECUTABLE_TYPE:
@@ -588,15 +527,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
         return false;
     }
 
-    boolean this_present_jobManagerType = true && this.isSetJobManagerType();
-    boolean that_present_jobManagerType = true && that.isSetJobManagerType();
-    if (this_present_jobManagerType || that_present_jobManagerType) {
-      if (!(this_present_jobManagerType && that_present_jobManagerType))
-        return false;
-      if (!this.jobManagerType.equals(that.jobManagerType))
-        return false;
-    }
-
     boolean this_present_nodeId = true && this.isSetNodeId();
     boolean that_present_nodeId = true && that.isSetNodeId();
     if (this_present_nodeId || that_present_nodeId) {
@@ -650,11 +580,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     if (present_securityProtocol)
       list.add(securityProtocol.getValue());
 
-    boolean present_jobManagerType = true && (isSetJobManagerType());
-    list.add(present_jobManagerType);
-    if (present_jobManagerType)
-      list.add(jobManagerType.getValue());
-
     boolean present_nodeId = true && (isSetNodeId());
     list.add(present_nodeId);
     if (present_nodeId)
@@ -706,16 +631,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetJobManagerType()).compareTo(other.isSetJobManagerType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobManagerType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobManagerType, other.jobManagerType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
     lastComparison = Boolean.valueOf(isSetNodeId()).compareTo(other.isSetNodeId());
     if (lastComparison != 0) {
       return lastComparison;
@@ -792,14 +707,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
     }
     first = false;
     if (!first) sb.append(", ");
-    sb.append("jobManagerType:");
-    if (this.jobManagerType == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.jobManagerType);
-    }
-    first = false;
-    if (!first) sb.append(", ");
     sb.append("nodeId:");
     if (this.nodeId == null) {
       sb.append("null");
@@ -845,10 +752,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
     }
 
-    if (!isSetJobManagerType()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobManagerType' is unset! Struct:" + toString());
-    }
-
     if (!isSetNodeId()) {
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'nodeId' is unset! Struct:" + toString());
     }
@@ -918,15 +821,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 3: // JOB_MANAGER_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.jobManagerType = org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType.findByValue(iprot.readI32());
-              struct.setJobManagerTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // NODE_ID
+          case 3: // NODE_ID
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.nodeId = iprot.readString();
               struct.setNodeIdIsSet(true);
@@ -934,7 +829,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 5: // EXECUTABLE_TYPE
+          case 4: // EXECUTABLE_TYPE
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.executableType = iprot.readString();
               struct.setExecutableTypeIsSet(true);
@@ -942,7 +837,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // PROVIDER_NAME
+          case 5: // PROVIDER_NAME
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
               struct.providerName = org.apache.airavata.model.appcatalog.computeresource.ProviderName.findByValue(iprot.readI32());
               struct.setProviderNameIsSet(true);
@@ -950,7 +845,7 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 7: // USER_ACCOUNT_NAME
+          case 6: // USER_ACCOUNT_NAME
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.userAccountName = iprot.readString();
               struct.setUserAccountNameIsSet(true);
@@ -981,11 +876,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
         oprot.writeI32(struct.securityProtocol.getValue());
         oprot.writeFieldEnd();
       }
-      if (struct.jobManagerType != null) {
-        oprot.writeFieldBegin(JOB_MANAGER_TYPE_FIELD_DESC);
-        oprot.writeI32(struct.jobManagerType.getValue());
-        oprot.writeFieldEnd();
-      }
       if (struct.nodeId != null) {
         oprot.writeFieldBegin(NODE_ID_FIELD_DESC);
         oprot.writeString(struct.nodeId);
@@ -1025,7 +915,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
       TTupleProtocol oprot = (TTupleProtocol) prot;
       oprot.writeString(struct.jobSubmissionInterfaceId);
       oprot.writeI32(struct.securityProtocol.getValue());
-      oprot.writeI32(struct.jobManagerType.getValue());
       oprot.writeString(struct.nodeId);
       oprot.writeString(struct.executableType);
       oprot.writeI32(struct.providerName.getValue());
@@ -1039,8 +928,6 @@ public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmi
       struct.setJobSubmissionInterfaceIdIsSet(true);
       struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
       struct.setSecurityProtocolIsSet(true);
-      struct.jobManagerType = org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType.findByValue(iprot.readI32());
-      struct.setJobManagerTypeIsSet(true);
       struct.nodeId = iprot.readString();
       struct.setNodeIdIsSet(true);
       struct.executableType = iprot.readString();

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
index 2bc79c5..2fc5c0b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
@@ -52,8 +52,7 @@ public enum ResourceJobManagerType implements org.apache.thrift.TEnum {
   PBS(1),
   SLURM(2),
   LSF(3),
-  UGE(4),
-  CLOUD(5);
+  UGE(4);
 
   private final int value;
 
@@ -84,8 +83,6 @@ public enum ResourceJobManagerType implements org.apache.thrift.TEnum {
         return LSF;
       case 4:
         return UGE;
-      case 5:
-        return CLOUD;
       default:
         return null;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/cluster-monitoring/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cluster-monitoring/pom.xml b/modules/cluster-monitoring/pom.xml
index 0fb9e40..3da16b3 100644
--- a/modules/cluster-monitoring/pom.xml
+++ b/modules/cluster-monitoring/pom.xml
@@ -14,9 +14,34 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>1.3.2</version>
+            <artifactId>airavata-data-models</artifactId>
+            <groupId>org.apache.airavata</groupId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <artifactId>airavata-server-configuration</artifactId>
+            <groupId>org.apache.airavata</groupId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <artifactId>airavata-credential-store</artifactId>
+            <groupId>org.apache.airavata</groupId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <artifactId>registry-api-stubs</artifactId>
+            <groupId>org.apache.airavata</groupId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.quartz-scheduler</groupId>
+            <artifactId>quartz</artifactId>
+            <version>2.2.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.quartz-scheduler</groupId>
+            <artifactId>quartz-jobs</artifactId>
+            <version>2.2.1</version>
         </dependency>
         <dependency>
             <groupId>com.jcraft</groupId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterHealthMonitor.java
----------------------------------------------------------------------
diff --git a/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterHealthMonitor.java b/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterHealthMonitor.java
deleted file mode 100644
index 2f1dc1d..0000000
--- a/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterHealthMonitor.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.cluster.monitoring;
-
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import com.jcraft.jsch.*;
-import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
-
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ClusterHealthMonitor {
-    private static final Logger logger = Logger.getLogger(ClusterHealthMonitor.class);
-
-    public static void main(String[] args) throws IOException {
-
-        byte[] publicKeyBytes = IOUtils.toByteArray(ClusterHealthMonitor.class.getResourceAsStream("/id_rsa.pub"));
-        byte[] privateKeyBytes = IOUtils.toByteArray(ClusterHealthMonitor.class.getResourceAsStream("/id_rsa"));
-        String passPhrase = "ultrascan";
-
-        Gson gson = new Gson();
-        List<ComputeResourceProfile> computeResourceProfiles = gson.fromJson(new FileReader(ClusterHealthMonitor.class
-                .getResource("/cluster-properties.json").getFile()), new TypeToken<List<ComputeResourceProfile>>(){}.getType());
-
-        ArrayList<QueueStatus> queueStatuses = new ArrayList<>();
-
-        for(ComputeResourceProfile computeResourceProfile : computeResourceProfiles){
-
-            String userName = computeResourceProfile.getUserName();
-            String hostName = computeResourceProfile.getHostName();
-            int port = computeResourceProfile.getPort();
-
-            try{
-                JSch jsch = new JSch();
-                jsch.addIdentity(hostName, privateKeyBytes, publicKeyBytes, passPhrase.getBytes());
-
-                Session session=jsch.getSession(userName, hostName, port);
-                java.util.Properties config = new java.util.Properties();
-                config.put("StrictHostKeyChecking", "no");
-                session.setConfig(config);
-
-
-                logger.debug("Connected to " + hostName);
-
-                session.connect();
-                for(String queue : computeResourceProfile.getQueueNames()) {
-                    String command = "";
-                    if (computeResourceProfile.getResourceManagerType().equals("SLURM"))
-                        command = "sinfo -s -p " + queue + " -o \"%a %F\" | tail -1";
-                    else if (computeResourceProfile.getResourceManagerType().equals("PBS"))
-                        command = "qstat -Q " + queue + "| tail -1";
-
-                    if (command.equals("")) {
-                        logger.warn("No matching resource manager type found for " + computeResourceProfile.getResourceManagerType());
-                        continue;
-                    }
-
-                    Channel channel = session.openChannel("exec");
-                    ((ChannelExec) channel).setCommand(command);
-                    channel.setInputStream(null);
-                    ((ChannelExec) channel).setErrStream(System.err);
-                    InputStream in = channel.getInputStream();
-                    channel.connect();
-                    byte[] tmp = new byte[1024];
-                    String result = "";
-                    while (true) {
-                        while (in.available() > 0) {
-                            int i = in.read(tmp, 0, 1024);
-                            if (i < 0) break;
-                            result += new String(tmp, 0, i);
-                        }
-                        if (channel.isClosed()) {
-                            if (in.available() > 0) continue;
-                            logger.debug(hostName + " " + queue + " " + "exit-status: " + channel.getExitStatus());
-                            break;
-                        }
-                        try {
-                            Thread.sleep(1000);
-                        } catch (Exception ee) {
-                        }
-                    }
-                    channel.disconnect();
-
-                    if (result != null && result.length() > 0) {
-                        QueueStatus queueStatus = null;
-                        if (computeResourceProfile.getResourceManagerType().equals("SLURM")) {
-                            String[] sparts = result.split(" ");
-                            boolean isUp = sparts[0].equalsIgnoreCase("up");
-                            String knts = sparts[1];
-                            sparts = knts.split("/");
-                            int running = Integer.parseInt(sparts[0].trim());
-                            int queued = Integer.parseInt(sparts[1].trim());
-                            queueStatus = new QueueStatus(hostName, queue, isUp, running, queued, System.currentTimeMillis());
-
-                        } else if (computeResourceProfile.getResourceManagerType().equals("PBS")) {
-                            result = result.replaceAll("\\s+", " ");
-                            String[] sparts = result.split(" ");
-                            boolean isUp = sparts[3].equalsIgnoreCase("yes");
-                            int running = Integer.parseInt(sparts[6].trim());
-                            int queued = Integer.parseInt(sparts[5].trim());
-                            queueStatus = new QueueStatus(hostName, queue, isUp, running, queued, System.currentTimeMillis());
-                        }
-
-                        if (queueStatus != null)
-                            queueStatuses.add(queueStatus);
-                    }
-                }
-                session.disconnect();
-            }catch (JSchException ex){
-                logger.error(ex.getMessage(), ex);
-            }
-        }
-
-        System.out.println(queueStatuses.size());
-
-    }
-
-    private static class ComputeResourceProfile{
-
-        private String hostName;
-        private String userName;
-        private int port;
-        private List<String> queueNames;
-        private String resourceManagerType;
-
-        public ComputeResourceProfile(String hostName, String userName, int port, List<String> queueNames, String resourceManagerType) {
-            this.hostName = hostName;
-            this.userName = userName;
-            this.port = port;
-            this.queueNames = queueNames;
-            this.resourceManagerType = resourceManagerType;
-        }
-
-        public String getHostName() {
-            return hostName;
-        }
-
-        public void setHostName(String hostName) {
-            this.hostName = hostName;
-        }
-
-        public String getUserName() {
-            return userName;
-        }
-
-        public void setUserName(String userName) {
-            this.userName = userName;
-        }
-
-        public int getPort() {
-            return port;
-        }
-
-        public void setPort(int port) {
-            this.port = port;
-        }
-
-        public List<String> getQueueNames() {
-            return queueNames;
-        }
-
-        public void setQueueNames(List<String> queueNames) {
-            this.queueNames = queueNames;
-        }
-
-        public String getResourceManagerType() {
-            return resourceManagerType;
-        }
-
-        public void setResourceManagerType(String resourceManagerType) {
-            this.resourceManagerType = resourceManagerType;
-        }
-    }
-
-    private static class QueueStatus{
-
-        private String hostName;
-        private String queueName;
-        private boolean queueUp;
-        private int runningJobs;
-        private int queuedJobs;
-        private long time;
-
-        public QueueStatus(String hostName, String queueName, boolean queueUp, int runningJobs, int queuedJobs, long time) {
-            this.hostName = hostName;
-            this.queueName = queueName;
-            this.queueUp = queueUp;
-            this.runningJobs = runningJobs;
-            this.queuedJobs = queuedJobs;
-            this.time = time;
-        }
-
-        public String getHostName() {
-            return hostName;
-        }
-
-        public void setHostName(String hostName) {
-            this.hostName = hostName;
-        }
-
-        public String getQueueName() {
-            return queueName;
-        }
-
-        public void setQueueName(String queueName) {
-            this.queueName = queueName;
-        }
-
-        public boolean isQueueUp() {
-            return queueUp;
-        }
-
-        public void setQueueUp(boolean queueUp) {
-            this.queueUp = queueUp;
-        }
-
-        public int getRunningJobs() {
-            return runningJobs;
-        }
-
-        public void setRunningJobs(int runningJobs) {
-            this.runningJobs = runningJobs;
-        }
-
-        public int getQueuedJobs() {
-            return queuedJobs;
-        }
-
-        public void setQueuedJobs(int queuedJobs) {
-            this.queuedJobs = queuedJobs;
-        }
-
-        public long getTime() {
-            return time;
-        }
-
-        public void setTime(long time) {
-            this.time = time;
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterStatusMonitorJob.java
----------------------------------------------------------------------
diff --git a/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterStatusMonitorJob.java b/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterStatusMonitorJob.java
new file mode 100644
index 0000000..f6f0a4e
--- /dev/null
+++ b/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterStatusMonitorJob.java
@@ -0,0 +1,279 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.cluster.monitoring;
+
+import com.jcraft.jsch.Channel;
+import com.jcraft.jsch.ChannelExec;
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.Session;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.credential.store.cpi.CredentialStoreService;
+import org.apache.airavata.credential.store.datamodel.SSHCredential;
+import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
+import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.status.QueueStatusModel;
+import org.apache.airavata.registry.api.RegistryService;
+import org.apache.thrift.TException;
+import org.apache.thrift.protocol.TBinaryProtocol;
+import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.transport.TSocket;
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TTransportException;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ClusterStatusMonitorJob implements Job {
+    private final static Logger logger = LoggerFactory.getLogger(ClusterStatusMonitorJob.class);
+
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        try{
+            String superTenantGatewayId = ServerSettings.getSuperTenantGatewayId();
+            RegistryService.Client registryClient = getRegistryClient();
+            List<ComputeResourceProfile> computeResourceProfiles = new ArrayList<>();
+            List<ComputeResourcePreference> computeResourcePreferences = registryClient.getAllGatewayComputeResourcePreferences(superTenantGatewayId);
+            if (computeResourcePreferences != null && computeResourcePreferences.size() > 0) {
+                computeResourcePreferences.stream().forEach(p -> {
+                    try {
+                        String computeResourceId = p.getComputeResourceId();
+                        String credentialStoreToken = p.getResourceSpecificCredentialStoreToken();
+                        String loginUserName = p.getLoginUserName();
+                        String hostName = null;
+                        if (credentialStoreToken == null || credentialStoreToken.equals("")) {
+                            credentialStoreToken = registryClient.getGatewayResourceProfile(superTenantGatewayId).getCredentialStoreToken();
+                        }
+                        int port = -1;
+                        ArrayList queueNames = new ArrayList<>();
+
+                        ComputeResourceDescription computeResourceDescription = registryClient.getComputeResource(computeResourceId);
+                        hostName = computeResourceDescription.getHostName();
+                        //FIXME This should come from compute resource description
+                        port = 22;
+                        computeResourceDescription.getBatchQueues().stream().forEach(q -> {
+                            queueNames.add(q.getQueueName());
+                        });
+
+                        List<JobSubmissionInterface> jobSubmissionInterfaces = computeResourceDescription.getJobSubmissionInterfaces();
+                        if (jobSubmissionInterfaces != null && jobSubmissionInterfaces.size() > 0) {
+                            if (jobSubmissionInterfaces.get(0).getJobSubmissionProtocol().equals(JobSubmissionProtocol.SSH)) {
+                                String resourceManagerType = registryClient.getSSHJobSubmission(jobSubmissionInterfaces.get(0)
+                                        .getJobSubmissionInterfaceId()).getResourceJobManager().getResourceJobManagerType().name();
+                                ComputeResourceProfile computeResourceProfile = new ComputeResourceProfile(hostName,
+                                        loginUserName, port, credentialStoreToken, queueNames, resourceManagerType);
+                                computeResourceProfiles.add(computeResourceProfile);
+                            }
+                        }
+                    } catch (TException e) {
+                        logger.error(e.getMessage());
+                    }
+                });
+            }
+
+            ArrayList<QueueStatusModel> queueStatuses = new ArrayList<>();
+
+            for (ComputeResourceProfile computeResourceProfile : computeResourceProfiles) {
+
+                String userName = computeResourceProfile.getUserName();
+                String hostName = computeResourceProfile.getHostName();
+                int port = computeResourceProfile.getPort();
+
+                try {
+                    JSch jsch = new JSch();
+                    CredentialStoreService.Client credentialClient = getCredentialStoreClient();
+                    SSHCredential sshCredential = credentialClient.getSSHCredential(computeResourceProfile.getCredentialStoreToken(), superTenantGatewayId);
+                    jsch.addIdentity(hostName, sshCredential.getPrivateKey().getBytes(), sshCredential.getPublicKey().getBytes(), sshCredential.getPassphrase().getBytes());
+
+                    Session session = jsch.getSession(userName, hostName, port);
+                    java.util.Properties config = new java.util.Properties();
+                    config.put("StrictHostKeyChecking", "no");
+                    session.setConfig(config);
+
+                    logger.debug("Connected to " + hostName);
+
+                    session.connect();
+                    for (String queue : computeResourceProfile.getQueueNames()) {
+                        String command = "";
+                        if (computeResourceProfile.getResourceManagerType().equals("SLURM"))
+                            command = "sinfo -s -p " + queue + " -o \"%a %F\" | tail -1";
+                        else if (computeResourceProfile.getResourceManagerType().equals("PBS"))
+                            command = "qstat -Q " + queue + "| tail -1";
+
+                        if (command.equals("")) {
+                            logger.warn("No matching resource manager type found for " + computeResourceProfile.getResourceManagerType());
+                            continue;
+                        }
+
+                        Channel channel = session.openChannel("exec");
+                        ((ChannelExec) channel).setCommand(command);
+                        channel.setInputStream(null);
+                        ((ChannelExec) channel).setErrStream(System.err);
+                        InputStream in = channel.getInputStream();
+                        channel.connect();
+                        byte[] tmp = new byte[1024];
+                        String result = "";
+                        while (true) {
+                            while (in.available() > 0) {
+                                int i = in.read(tmp, 0, 1024);
+                                if (i < 0) break;
+                                result += new String(tmp, 0, i);
+                            }
+                            if (channel.isClosed()) {
+                                if (in.available() > 0) continue;
+                                logger.debug(hostName + " " + queue + " " + "exit-status: " + channel.getExitStatus());
+                                break;
+                            }
+                            try {
+                                Thread.sleep(1000);
+                            } catch (Exception ee) {
+                            }
+                        }
+                        channel.disconnect();
+
+                        if (result != null && result.length() > 0) {
+                            QueueStatusModel queueStatus = null;
+                            if (computeResourceProfile.getResourceManagerType().equals("SLURM")) {
+                                String[] sparts = result.split(" ");
+                                boolean isUp = sparts[0].equalsIgnoreCase("up");
+                                String knts = sparts[1];
+                                sparts = knts.split("/");
+                                int running = Integer.parseInt(sparts[0].trim());
+                                int queued = Integer.parseInt(sparts[1].trim());
+                                queueStatus = new QueueStatusModel(hostName, queue, isUp, running, queued, System.currentTimeMillis());
+
+                            } else if (computeResourceProfile.getResourceManagerType().equals("PBS")) {
+                                result = result.replaceAll("\\s+", " ");
+                                String[] sparts = result.split(" ");
+                                boolean isUp = sparts[3].equalsIgnoreCase("yes");
+                                int running = Integer.parseInt(sparts[6].trim());
+                                int queued = Integer.parseInt(sparts[5].trim());
+                                queueStatus = new QueueStatusModel(hostName, queue, isUp, running, queued, System.currentTimeMillis());
+                            }
+
+                            if (queueStatus != null)
+                                queueStatuses.add(queueStatus);
+                        }
+                    }
+                    session.disconnect();
+                } catch (Exception ex) {
+                    logger.error(ex.getMessage(), ex);
+                }
+            }
+
+            registryClient.registerQueueStatuses(queueStatuses);
+        }catch (Exception e){
+            throw new JobExecutionException(e);
+        }
+
+    }
+    private static RegistryService.Client getRegistryClient() throws TTransportException, ApplicationSettingsException {
+        TTransport transport = new TSocket(ServerSettings.getRegistryServerHost(), Integer.parseInt(ServerSettings.getRegistryServerPort()));
+        transport.open();
+        TProtocol protocol = new TBinaryProtocol(transport);
+        RegistryService.Client registryClient = new RegistryService.Client(protocol);
+        return registryClient;
+    }
+
+    private static CredentialStoreService.Client getCredentialStoreClient() throws TTransportException, ApplicationSettingsException {
+        TTransport transport = new TSocket(ServerSettings.getCredentialStoreServerHost(), Integer.parseInt(ServerSettings.getCredentialStoreServerPort()));
+        transport.open();
+        TProtocol protocol = new TBinaryProtocol(transport);
+        CredentialStoreService.Client credentialServiceClient = new CredentialStoreService.Client(protocol);
+        return credentialServiceClient;
+    }
+
+    private static class ComputeResourceProfile {
+
+        private String hostName;
+        private String userName;
+        private int port;
+        private String credentialStoreToken;
+        private List<String> queueNames;
+        private String resourceManagerType;
+
+        public ComputeResourceProfile(String hostName, String userName, int port, String credentialStoreToken, List<String> queueNames, String resourceManagerType) {
+            this.hostName = hostName;
+            this.userName = userName;
+            this.port = port;
+            this.credentialStoreToken = credentialStoreToken;
+            this.queueNames = queueNames;
+            this.resourceManagerType = resourceManagerType;
+        }
+
+        public String getHostName() {
+            return hostName;
+        }
+
+        public void setHostName(String hostName) {
+            this.hostName = hostName;
+        }
+
+        public String getUserName() {
+            return userName;
+        }
+
+        public void setUserName(String userName) {
+            this.userName = userName;
+        }
+
+        public int getPort() {
+            return port;
+        }
+
+        public void setPort(int port) {
+            this.port = port;
+        }
+
+        public String getCredentialStoreToken() {
+            return credentialStoreToken;
+        }
+
+        public void setCredentialStoreToken(String credentialStoreToken) {
+            this.credentialStoreToken = credentialStoreToken;
+        }
+
+        public List<String> getQueueNames() {
+            return queueNames;
+        }
+
+        public void setQueueNames(List<String> queueNames) {
+            this.queueNames = queueNames;
+        }
+
+        public String getResourceManagerType() {
+            return resourceManagerType;
+        }
+
+        public void setResourceManagerType(String resourceManagerType) {
+            this.resourceManagerType = resourceManagerType;
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterStatusMonitorJobScheduler.java
----------------------------------------------------------------------
diff --git a/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterStatusMonitorJobScheduler.java b/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterStatusMonitorJobScheduler.java
new file mode 100644
index 0000000..88e76c4
--- /dev/null
+++ b/modules/cluster-monitoring/src/main/java/org/apache/airavata/cluster/monitoring/ClusterStatusMonitorJobScheduler.java
@@ -0,0 +1,70 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.cluster.monitoring;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
+import org.quartz.*;
+import org.quartz.impl.StdSchedulerFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+
+import static org.quartz.JobBuilder.newJob;
+import static org.quartz.TriggerBuilder.*;
+import static org.quartz.SimpleScheduleBuilder.*;
+
+public class ClusterStatusMonitorJobScheduler {
+    private final static Logger logger = LoggerFactory.getLogger(ClusterStatusMonitorJobScheduler.class);
+
+    Scheduler scheduler;
+
+    public ClusterStatusMonitorJobScheduler() throws SchedulerException {
+        scheduler = StdSchedulerFactory.getDefaultScheduler();
+        scheduler.start();
+    }
+
+    public void scheduleClusterStatusMonitoring() throws SchedulerException, ApplicationSettingsException {
+        // define the job and tie it to our MyJob class
+        JobDetail job = newJob(ClusterStatusMonitorJob.class)
+                .withIdentity("cluster-status-monitoring", "airavata")
+                .build();
+
+        // Trigger the job to run now, and then repeat every 40 seconds
+        Trigger trigger = newTrigger()
+                .withIdentity("cluster-status-monitoring-trigger", "airavata")
+                .startNow()
+                .withSchedule(simpleSchedule()
+                        .withIntervalInSeconds(Integer.parseInt(ServerSettings.getClusterStatusMonitoringRepatTime()))
+                        .repeatForever())
+                .build();
+
+        // Tell quartz to schedule the job using our trigger
+        scheduler.scheduleJob(job, trigger);
+    }
+
+    public static void main(String[] args) throws SchedulerException, ApplicationSettingsException {
+        ClusterStatusMonitorJobScheduler jobScheduler = new ClusterStatusMonitorJobScheduler();
+        jobScheduler.scheduleClusterStatusMonitoring();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/cluster-monitoring/src/main/resources/cluster-properties.json
----------------------------------------------------------------------
diff --git a/modules/cluster-monitoring/src/main/resources/cluster-properties.json b/modules/cluster-monitoring/src/main/resources/cluster-properties.json
deleted file mode 100644
index f016565..0000000
--- a/modules/cluster-monitoring/src/main/resources/cluster-properties.json
+++ /dev/null
@@ -1,53 +0,0 @@
-[
-  {
-    "hostName": "stampede.tacc.xsede.org",
-    "userName": "scigap",
-    "port": 22,
-    "queueNames": [
-      "normal",
-      "development",
-      "gpu"
-    ],
-    "resourceManagerType": "SLURM"
-  },
-  {
-    "hostName": "comet.sdsc.edu",
-    "userName": "scigap",
-    "port": 22,
-    "queueNames": [
-      "compute",
-      "shared",
-      "gpu"
-    ],
-    "resourceManagerType": "SLURM"
-  },
-  {
-    "hostName": "bigred2.uits.iu.edu",
-    "userName": "cgateway",
-    "port": 22,
-    "queueNames": [
-      "gpu",
-      "cpu",
-      "serial"
-    ],
-    "resourceManagerType": "PBS"
-  },
-  {
-    "hostName": "gordon.sdsc.edu",
-    "userName": "ogce",
-    "port": 22,
-    "queueNames": [
-      "normal"
-    ],
-    "resourceManagerType": "PBS"
-  },
-  {
-    "hostName": "karst.uits.iu.edu",
-    "userName": "seagrid",
-    "port": 22,
-    "queueNames": [
-      "batch"
-    ],
-    "resourceManagerType": "PBS"
-  }
-]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/cluster-monitoring/src/main/resources/id_rsa
----------------------------------------------------------------------
diff --git a/modules/cluster-monitoring/src/main/resources/id_rsa b/modules/cluster-monitoring/src/main/resources/id_rsa
deleted file mode 100644
index b5d1099..0000000
--- a/modules/cluster-monitoring/src/main/resources/id_rsa
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,AF720E62F3BF175C
-
-81OQtQCUQNZ9SmbdeU6zh0mDpjfmaBcDu0lPs9P/GrjE/DkepgIdYyc6f/zKzDOe
-V4SGtgO4Lazv1l/LSwjRLJ0FSheTFDAgCj5TN10Kza44dQ03rX8XIylqjpDoVbKb
-S+CvDN+1HCfcmFfMrw/x3MvWt7BcBeOYcKtemRClfkSFSLqvZrEkRtO6TqHwIumd
-mvSQTdez2MXECmlxMeLGAN88OBA3qXdG3q1k5eojm5/MM60rWNg5kW+aUIpjwCer
-l7Z01e2WkMMkw7E6roO+pRV5UO53cgqQcoYjlwGngLXPQi5QBdD9JLbaxWSAS5OZ
-H04BlEVFvbbSJIP2gKlKfFsclCtg5ldi5Sefhrqi2ewWAlL0ibVf0Ed83ygmm7DS
-0ljFv+U3q1O62ODiQyLpxqUZkROTYy6u18B11ck6n1F625jEK3Sh8Jhu4svxIu4x
-FTNJqZvG1vwPunePp6dzaBoSa6739mC1mSaDgaCvU2BxWfxN0ePKEumZg9NpskpK
-Pu9lHAWkuWs+nBuPzcloiizzd9eC9am0fKRMdGAKM0bE0eHFmsSESkmPjxVyHsK8
-dOA22IX2Ars6utlF4JqSK/vD3frYOSVJ55hIhQrKj0Kq6TyTWv4RVKRolOiOioOY
-7JSKCoYwR5eDA/UyLswBghydteyq1ljmOIE276xO4VnZAbK0gyhlKEReB8Gxbi80
-rtNe11wFKUu8OVUzm2bsDGYY6ZyvKnOXcL7/gwR7oObC0Y67tUkEXS15uiTH+mec
-/YVji54TT5GX7BH23sT3DxoPzTKngjAzBiRKlKlJEh2H3fLYNB5xhyrxO9rSIsBD
-y3nE1cSMUUVR/IPkJKKOmrZ8JfhwQpAiDLux1NBtveo342VY2twJs/U4Y6zYspcU
-d0UPFGWWC/SuxVhR191LnuT5f90V8HMW2S7vohSXx60qoB0OvYOrclYFX9eqcw2v
-e7ka/Rk922HcP1Yt5ak2pIIZMaTRWNBBE17EExmKkErzbJWosNDC/3HnmxkUb/v6
-3Y1wYxIjtcAjWjDQjstKGNty82zy8yeG9NSWTrMzljkosBLXrlVhn6VBqmqhUxUS
-N6ma5ORuziL5FMdSrBsqqIs8Sam7JjVGUZmeGrTiOgQSUM5GV9EyML+jBBqj9/RD
-CbFQCNBCVRNX2LLXHZGnODZ0i1TZ+P7Nap7TIaD1PJwoiFwl9gysf4WYJrWBqWU3
-ORPPWSGkWFdmXGOPyXQFSEMppdHagiFDgCC+5F9VfnrKkKrB+BMmLB8fh2BSmoQH
-LkrXksTTVRDP/8SaIZs+KdBIEnL6UGLiej4p27bj0B9lG0nacyj8E8u0UfxTy2YS
-dhdLeG55ZU+ori0HNBT4/bGY+0gMMMrmXhLYQSR/IoWU0hgzidM67ExYQ0tFpYx9
-g2AWMghQKWnSy9Cyi9sE2umXCISOV3jkPDClBKVxwrt/DTxZcUVzz5YqlZKMXIE3
-tTq4xHsRP/3KJOTun/2elmTFQ7Ml158df2dzTtKCRQ1la0YAMx4gdNWU8a/napN3
-g7l0KSygOWVPKuVFVbR6ZlLTzeJYpeR5ZOi5o4dRAfUB0qgblwn0Hg==
------END RSA PRIVATE KEY-----
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/cluster-monitoring/src/main/resources/id_rsa.pub
----------------------------------------------------------------------
diff --git a/modules/cluster-monitoring/src/main/resources/id_rsa.pub b/modules/cluster-monitoring/src/main/resources/id_rsa.pub
deleted file mode 100644
index b8308db..0000000
--- a/modules/cluster-monitoring/src/main/resources/id_rsa.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzESt/JtW7JxJ0JNSW6570OQMYtmZjWw5zMLOVffsOoTbSZ6ZM/udT7mwHrlprIi40rvBKIeUFiyB5CeTwOz5Fok/j4D0uXVLIBqRoJdYlKRquyH5EDaZmY/+5BAjJmuwsOqO6rwAFy6KXnIWXafzixUXKKUxKbx5aRLnzDw+JXb8N/6wJcZQ9UhRbnMQkyb9wZxfv1lruVCmK+OrVShIMaRb1df36khY1uj53ISVjSkY1FD3mECUP1u0nHQiE6aqccAa+9+rPD+6lgXD7eljLUiIc9lb+JqYmzDYM/BC8NZegw1hw1hU22Y3Uq3nFec798CyD1PtNkIFKjxg1VFVNw== airavata@gw111.iu.xsede.org
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
----------------------------------------------------------------------
diff --git a/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java b/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
index dc7944f..3c3eed7 100644
--- a/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
+++ b/modules/commons/src/main/java/org/apache/airavata/common/utils/ApplicationSettings.java
@@ -405,6 +405,14 @@ public class ApplicationSettings {
         return getSetting("regserver.server.host");
     }
 
+    public static String getSuperTenantGatewayId() throws ApplicationSettingsException {
+        return getSetting("super.tenant.gatewayId");
+    }
+
+    public static String getClusterStatusMonitoringRepatTime() throws ApplicationSettingsException {
+        return getSetting("cluster.status.monitoring.repeat.time");
+    }
+
     /**
      * @deprecated use {{@link #getSetting(String)}}
      * @return

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/configuration/server/src/main/resources/CLOUD_Groovy.template
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/CLOUD_Groovy.template b/modules/configuration/server/src/main/resources/CLOUD_Groovy.template
deleted file mode 100644
index b16beb7..0000000
--- a/modules/configuration/server/src/main/resources/CLOUD_Groovy.template
+++ /dev/null
@@ -1,7 +0,0 @@
-<%
-   if (workingDirectory != null)  out.print 'cd ' + workingDirectory +' && '
-   if (jobSubmitterCommand != null)  out.print jobSubmitterCommand + ' '
-   if (executablePath != null)  out.print  executablePath + ' '
-   if (inputs != null) for(input in inputs)  out.print input + ' '
-   out.print '\n'
-%>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/airavata-server.properties b/modules/configuration/server/src/main/resources/airavata-server.properties
index e5b6b33..ab19a12 100644
--- a/modules/configuration/server/src/main/resources/airavata-server.properties
+++ b/modules/configuration/server/src/main/resources/airavata-server.properties
@@ -50,6 +50,11 @@ default.registry.user=admin
 default.registry.password=admin
 default.registry.password.hash.method=SHA
 default.registry.gateway=php_reference_gateway
+super.tenant.gatewayId=php_reference_gateway
+
+# Properties for cluster status monitoring
+# cluster status monitoring job repeat time in seconds
+cluster.status.monitoring.repeat.time=18000
 
 ###########################################################################
 #  Application Catalog DB Configuration

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/configuration/server/src/main/resources/gfac-config.yaml
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/gfac-config.yaml b/modules/configuration/server/src/main/resources/gfac-config.yaml
index 7d580ab..802d1e5 100644
--- a/modules/configuration/server/src/main/resources/gfac-config.yaml
+++ b/modules/configuration/server/src/main/resources/gfac-config.yaml
@@ -34,8 +34,6 @@ jobSubmitters:
   - submissionProtocol: LOCAL
     taskClass: org.apache.airavata.gfac.impl.task.LocalJobSubmissionTask
 
-  - submissionProtocol: CLOUD
-    taskClass: org.apache.airavata.gfac.impl.task.AuroraJobSubmissionTask
 
 # Following job subbmitters are not yet implemented.
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/cpi/CredentialStoreService.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/cpi/CredentialStoreService.java b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/cpi/CredentialStoreService.java
index 1686c76..4d2a456 100644
--- a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/cpi/CredentialStoreService.java
+++ b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/cpi/CredentialStoreService.java
@@ -50,7 +50,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-11-08")
 public class CredentialStoreService {
 
   public interface Iface {

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java
index 76232b0..d2e5d85 100644
--- a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java
+++ b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java
@@ -22,18 +22,35 @@
  */
 package org.apache.airavata.credential.store.datamodel;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-11-08")
 public class CertificateCredential implements org.apache.thrift.TBase<CertificateCredential, CertificateCredential._Fields>, java.io.Serializable, Cloneable, Comparable<CertificateCredential> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CertificateCredential");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java
index 8b1b3fa..9947b64 100644
--- a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java
+++ b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java
@@ -22,17 +22,35 @@
  */
 package org.apache.airavata.credential.store.datamodel;
 
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-11-08")
 public class CommunityUser implements org.apache.thrift.TBase<CommunityUser, CommunityUser._Fields>, java.io.Serializable, Cloneable, Comparable<CommunityUser> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommunityUser");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/PasswordCredential.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/PasswordCredential.java b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/PasswordCredential.java
index 4eab7f4..0e57752 100644
--- a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/PasswordCredential.java
+++ b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/PasswordCredential.java
@@ -22,18 +22,35 @@
  */
 package org.apache.airavata.credential.store.datamodel;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-11-08")
 public class PasswordCredential implements org.apache.thrift.TBase<PasswordCredential, PasswordCredential._Fields>, java.io.Serializable, Cloneable, Comparable<PasswordCredential> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PasswordCredential");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredential.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredential.java b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredential.java
index 0c3fee1..47b585b 100644
--- a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredential.java
+++ b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredential.java
@@ -22,18 +22,35 @@
  */
 package org.apache.airavata.credential.store.datamodel;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-11-08")
 public class SSHCredential implements org.apache.thrift.TBase<SSHCredential, SSHCredential._Fields>, java.io.Serializable, Cloneable, Comparable<SSHCredential> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHCredential");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredentialSummary.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredentialSummary.java b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredentialSummary.java
index 85b1a6a..a646a94 100644
--- a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredentialSummary.java
+++ b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/datamodel/SSHCredentialSummary.java
@@ -22,18 +22,35 @@
  */
 package org.apache.airavata.credential.store.datamodel;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-11-08")
 public class SSHCredentialSummary implements org.apache.thrift.TBase<SSHCredentialSummary, SSHCredentialSummary._Fields>, java.io.Serializable, Cloneable, Comparable<SSHCredentialSummary> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHCredentialSummary");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java
index 9d9bb50..ce445ac 100644
--- a/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java
+++ b/modules/credential-store/credential-store-stubs/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java
@@ -50,7 +50,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-10-12")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-11-08")
 public class CredentialStoreException extends TException implements org.apache.thrift.TBase<CredentialStoreException, CredentialStoreException._Fields>, java.io.Serializable, Cloneable, Comparable<CredentialStoreException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CredentialStoreException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/distribution/src/main/assembly/bin-assembly.xml
----------------------------------------------------------------------
diff --git a/modules/distribution/src/main/assembly/bin-assembly.xml b/modules/distribution/src/main/assembly/bin-assembly.xml
index b6e589b..971bba0 100644
--- a/modules/distribution/src/main/assembly/bin-assembly.xml
+++ b/modules/distribution/src/main/assembly/bin-assembly.xml
@@ -112,7 +112,6 @@
                 <include>LSF_Groovy.template</include>
                 <include>UGE_Groovy.template</include>
                 <include>FORK_Groovy.template</include>
-                <include>CLOUD_Groovy.template</include>
                 <include>gsissh.properties</include>
                 <include>airavata.jks</include>
                 <include>client_truststore.jks</include>

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/modules/gfac/gfac-client/src/main/java/org/apache/airavata/gfac/cpi/GfacService.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-client/src/main/java/org/apache/airavata/gfac/cpi/GfacService.java b/modules/gfac/gfac-client/src/main/java/org/apache/airavata/gfac/cpi/GfacService.java
index 9483a20..26f98a8 100644
--- a/modules/gfac/gfac-client/src/main/java/org/apache/airavata/gfac/cpi/GfacService.java
+++ b/modules/gfac/gfac-client/src/main/java/org/apache/airavata/gfac/cpi/GfacService.java
@@ -50,7 +50,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-08-09")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-11-08")
 public class GfacService {
 
   public interface Iface {