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 {