blob: 2842f361b6b6bf5bfa84b862353762ae395604a7 [file] [log] [blame]
#
# Autogenerated by Thrift Compiler (0.9.2)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
# options string: py
#
from thrift.Thrift import TType, TMessageType, TException, TApplicationException
import apache.airavata.model.commons.ttypes
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol, TProtocol
try:
from thrift.protocol import fastbinary
except:
fastbinary = None
class ResourceJobManagerType:
"""
* Enumeration of local resource job manager types supported by Airavata
*
* FORK:
* Forking of commands without any job manager
*
* PBS:
* Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
*
* SLURM:
* The Simple Linux Utility for Resource Management is a open source workload manager.
*
* UGE:
* Univa Grid Engine, a variation of PBS implementation.
*
* LSF:
* IBM Platform Load Sharing Facility is dominantly installed on IBM clusters.
*
"""
FORK = 0
PBS = 1
SLURM = 2
LSF = 3
UGE = 4
_VALUES_TO_NAMES = {
0: "FORK",
1: "PBS",
2: "SLURM",
3: "LSF",
4: "UGE",
}
_NAMES_TO_VALUES = {
"FORK": 0,
"PBS": 1,
"SLURM": 2,
"LSF": 3,
"UGE": 4,
}
class JobManagerCommand:
"""
Enumeration of resource job manager commands
SUBMISSION:
Ex: qsub, sbatch
JOBMONITORING:
Ex: qstat, squeue
DELETION:
Ex: qdel, scancel
CHECK_JOB:
Detailed Status about the Job. Ex: checkjob
SHOW_QUEUE:
List of Queued Job by the schedular. Ex: showq
SHOW_RESERVATION:
List all reservations. Ex:showres, show_res
SHOW_START:
Display the start time of the specified job. Ex: showstart
"""
SUBMISSION = 0
JOB_MONITORING = 1
DELETION = 2
CHECK_JOB = 3
SHOW_QUEUE = 4
SHOW_RESERVATION = 5
SHOW_START = 6
_VALUES_TO_NAMES = {
0: "SUBMISSION",
1: "JOB_MONITORING",
2: "DELETION",
3: "CHECK_JOB",
4: "SHOW_QUEUE",
5: "SHOW_RESERVATION",
6: "SHOW_START",
}
_NAMES_TO_VALUES = {
"SUBMISSION": 0,
"JOB_MONITORING": 1,
"DELETION": 2,
"CHECK_JOB": 3,
"SHOW_QUEUE": 4,
"SHOW_RESERVATION": 5,
"SHOW_START": 6,
}
class FileSystems:
"""
Enumeration of File Systems on the resource
FORK:
Forking of commands without any job manager
PBS:
Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
UGE:
Univa Grid Engine, a variation of PBS implementation.
SLURM:
The Simple Linux Utility for Resource Management is a open source workload manager.
"""
HOME = 0
WORK = 1
LOCALTMP = 2
SCRATCH = 3
ARCHIVE = 4
_VALUES_TO_NAMES = {
0: "HOME",
1: "WORK",
2: "LOCALTMP",
3: "SCRATCH",
4: "ARCHIVE",
}
_NAMES_TO_VALUES = {
"HOME": 0,
"WORK": 1,
"LOCALTMP": 2,
"SCRATCH": 3,
"ARCHIVE": 4,
}
class SecurityProtocol:
"""
Enumeration of security authentication and authorization mechanisms supported by Airavata. This enumeration just
describes the supported mechanism. The corresponding security credentials are registered with Airavata Credential
store.
USERNAME_PASSWORD:
A User Name.
SSH_KEYS:
SSH Keys
FIXME: Change GSI to a more precise generic security protocol - X509
"""
USERNAME_PASSWORD = 0
SSH_KEYS = 1
GSI = 2
KERBEROS = 3
OAUTH = 4
LOCAL = 5
_VALUES_TO_NAMES = {
0: "USERNAME_PASSWORD",
1: "SSH_KEYS",
2: "GSI",
3: "KERBEROS",
4: "OAUTH",
5: "LOCAL",
}
_NAMES_TO_VALUES = {
"USERNAME_PASSWORD": 0,
"SSH_KEYS": 1,
"GSI": 2,
"KERBEROS": 3,
"OAUTH": 4,
"LOCAL": 5,
}
class JobSubmissionProtocol:
"""
Enumeration of Airavata supported Job Submission Mechanisms for High Performance Computing Clusters.
SSH:
Execute remote job submission commands using via secure shell protocol.
GRAM:
Execute remote jobs via Globus GRAM service.
UNICORE:
Execute remote jobs via Unicore services
"""
LOCAL = 0
SSH = 1
GLOBUS = 2
UNICORE = 3
CLOUD = 4
SSH_FORK = 5
LOCAL_FORK = 6
_VALUES_TO_NAMES = {
0: "LOCAL",
1: "SSH",
2: "GLOBUS",
3: "UNICORE",
4: "CLOUD",
5: "SSH_FORK",
6: "LOCAL_FORK",
}
_NAMES_TO_VALUES = {
"LOCAL": 0,
"SSH": 1,
"GLOBUS": 2,
"UNICORE": 3,
"CLOUD": 4,
"SSH_FORK": 5,
"LOCAL_FORK": 6,
}
class MonitorMode:
"""
Monitoring modes
POLL_JOB_MANAGER:
GFac need to pull job status changes.
XSEDE_AMQP_SUBSCRIBE:
Server will publish job status changes to amqp servert.
"""
POLL_JOB_MANAGER = 0
JOB_EMAIL_NOTIFICATION_MONITOR = 1
XSEDE_AMQP_SUBSCRIBE = 2
FORK = 3
_VALUES_TO_NAMES = {
0: "POLL_JOB_MANAGER",
1: "JOB_EMAIL_NOTIFICATION_MONITOR",
2: "XSEDE_AMQP_SUBSCRIBE",
3: "FORK",
}
_NAMES_TO_VALUES = {
"POLL_JOB_MANAGER": 0,
"JOB_EMAIL_NOTIFICATION_MONITOR": 1,
"XSEDE_AMQP_SUBSCRIBE": 2,
"FORK": 3,
}
class DataMovementProtocol:
"""
Enumeration of data movement supported by Airavata
SCP:
Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
SFTP:
The Simple Linux Utility for Resource Management is a open source workload manager.
GridFTP:
Globus File Transfer Protocol
UNICORE_STORAGE_SERVICE:
Storage Service Provided by Unicore
"""
LOCAL = 0
SCP = 1
SFTP = 2
GridFTP = 3
UNICORE_STORAGE_SERVICE = 4
_VALUES_TO_NAMES = {
0: "LOCAL",
1: "SCP",
2: "SFTP",
3: "GridFTP",
4: "UNICORE_STORAGE_SERVICE",
}
_NAMES_TO_VALUES = {
"LOCAL": 0,
"SCP": 1,
"SFTP": 2,
"GridFTP": 3,
"UNICORE_STORAGE_SERVICE": 4,
}
class ProviderName:
"""
Provider name
"""
EC2 = 0
AWSEC2 = 1
RACKSPACE = 2
_VALUES_TO_NAMES = {
0: "EC2",
1: "AWSEC2",
2: "RACKSPACE",
}
_NAMES_TO_VALUES = {
"EC2": 0,
"AWSEC2": 1,
"RACKSPACE": 2,
}
class ResourceJobManager:
"""
Resource Job Manager Information
resourceJobManagerType:
A typical HPC cluster has a single Job Manager to manage the resources.
pushMonitoringEndpoint:
If the job manager pushes out state changes to a database or bus, specify the service endpoint.
Ex: Moab Web Service, Moab MongoDB URL, AMQP (GLUE2) Broker
jobManagerBinPath:
Path to the Job Manager Installation Binary directory.
jobManagerCommands:
An enumeration of commonly used manager commands.
Attributes:
- resourceJobManagerId
- resourceJobManagerType
- pushMonitoringEndpoint
- jobManagerBinPath
- jobManagerCommands
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'resourceJobManagerId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'resourceJobManagerType', None, None, ), # 2
(3, TType.STRING, 'pushMonitoringEndpoint', None, None, ), # 3
(4, TType.STRING, 'jobManagerBinPath', None, None, ), # 4
(5, TType.MAP, 'jobManagerCommands', (TType.I32,None,TType.STRING,None), None, ), # 5
)
def __init__(self, resourceJobManagerId=thrift_spec[1][4], resourceJobManagerType=None, pushMonitoringEndpoint=None, jobManagerBinPath=None, jobManagerCommands=None,):
self.resourceJobManagerId = resourceJobManagerId
self.resourceJobManagerType = resourceJobManagerType
self.pushMonitoringEndpoint = pushMonitoringEndpoint
self.jobManagerBinPath = jobManagerBinPath
self.jobManagerCommands = jobManagerCommands
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.resourceJobManagerId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.resourceJobManagerType = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.STRING:
self.pushMonitoringEndpoint = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 4:
if ftype == TType.STRING:
self.jobManagerBinPath = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 5:
if ftype == TType.MAP:
self.jobManagerCommands = {}
(_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
for _i4 in xrange(_size0):
_key5 = iprot.readI32();
_val6 = iprot.readString();
self.jobManagerCommands[_key5] = _val6
iprot.readMapEnd()
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('ResourceJobManager')
if self.resourceJobManagerId is not None:
oprot.writeFieldBegin('resourceJobManagerId', TType.STRING, 1)
oprot.writeString(self.resourceJobManagerId)
oprot.writeFieldEnd()
if self.resourceJobManagerType is not None:
oprot.writeFieldBegin('resourceJobManagerType', TType.I32, 2)
oprot.writeI32(self.resourceJobManagerType)
oprot.writeFieldEnd()
if self.pushMonitoringEndpoint is not None:
oprot.writeFieldBegin('pushMonitoringEndpoint', TType.STRING, 3)
oprot.writeString(self.pushMonitoringEndpoint)
oprot.writeFieldEnd()
if self.jobManagerBinPath is not None:
oprot.writeFieldBegin('jobManagerBinPath', TType.STRING, 4)
oprot.writeString(self.jobManagerBinPath)
oprot.writeFieldEnd()
if self.jobManagerCommands is not None:
oprot.writeFieldBegin('jobManagerCommands', TType.MAP, 5)
oprot.writeMapBegin(TType.I32, TType.STRING, len(self.jobManagerCommands))
for kiter7,viter8 in self.jobManagerCommands.items():
oprot.writeI32(kiter7)
oprot.writeString(viter8)
oprot.writeMapEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.resourceJobManagerId is None:
raise TProtocol.TProtocolException(message='Required field resourceJobManagerId is unset!')
if self.resourceJobManagerType is None:
raise TProtocol.TProtocolException(message='Required field resourceJobManagerType is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.resourceJobManagerId)
value = (value * 31) ^ hash(self.resourceJobManagerType)
value = (value * 31) ^ hash(self.pushMonitoringEndpoint)
value = (value * 31) ^ hash(self.jobManagerBinPath)
value = (value * 31) ^ hash(self.jobManagerCommands)
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)
class BatchQueue:
"""
Batch Queue Information on SuperComputers
maxRunTime:
Maximum allowed run time in hours.
Attributes:
- queueName
- queueDescription
- maxRunTime
- maxNodes
- maxProcessors
- maxJobsInQueue
- maxMemory
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'queueName', None, None, ), # 1
(2, TType.STRING, 'queueDescription', None, None, ), # 2
(3, TType.I32, 'maxRunTime', None, None, ), # 3
(4, TType.I32, 'maxNodes', None, None, ), # 4
(5, TType.I32, 'maxProcessors', None, None, ), # 5
(6, TType.I32, 'maxJobsInQueue', None, None, ), # 6
(7, TType.I32, 'maxMemory', None, None, ), # 7
)
def __init__(self, queueName=None, queueDescription=None, maxRunTime=None, maxNodes=None, maxProcessors=None, maxJobsInQueue=None, maxMemory=None,):
self.queueName = queueName
self.queueDescription = queueDescription
self.maxRunTime = maxRunTime
self.maxNodes = maxNodes
self.maxProcessors = maxProcessors
self.maxJobsInQueue = maxJobsInQueue
self.maxMemory = maxMemory
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.queueName = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.STRING:
self.queueDescription = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.I32:
self.maxRunTime = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 4:
if ftype == TType.I32:
self.maxNodes = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 5:
if ftype == TType.I32:
self.maxProcessors = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 6:
if ftype == TType.I32:
self.maxJobsInQueue = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 7:
if ftype == TType.I32:
self.maxMemory = iprot.readI32();
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('BatchQueue')
if self.queueName is not None:
oprot.writeFieldBegin('queueName', TType.STRING, 1)
oprot.writeString(self.queueName)
oprot.writeFieldEnd()
if self.queueDescription is not None:
oprot.writeFieldBegin('queueDescription', TType.STRING, 2)
oprot.writeString(self.queueDescription)
oprot.writeFieldEnd()
if self.maxRunTime is not None:
oprot.writeFieldBegin('maxRunTime', TType.I32, 3)
oprot.writeI32(self.maxRunTime)
oprot.writeFieldEnd()
if self.maxNodes is not None:
oprot.writeFieldBegin('maxNodes', TType.I32, 4)
oprot.writeI32(self.maxNodes)
oprot.writeFieldEnd()
if self.maxProcessors is not None:
oprot.writeFieldBegin('maxProcessors', TType.I32, 5)
oprot.writeI32(self.maxProcessors)
oprot.writeFieldEnd()
if self.maxJobsInQueue is not None:
oprot.writeFieldBegin('maxJobsInQueue', TType.I32, 6)
oprot.writeI32(self.maxJobsInQueue)
oprot.writeFieldEnd()
if self.maxMemory is not None:
oprot.writeFieldBegin('maxMemory', TType.I32, 7)
oprot.writeI32(self.maxMemory)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.queueName is None:
raise TProtocol.TProtocolException(message='Required field queueName is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.queueName)
value = (value * 31) ^ hash(self.queueDescription)
value = (value * 31) ^ hash(self.maxRunTime)
value = (value * 31) ^ hash(self.maxNodes)
value = (value * 31) ^ hash(self.maxProcessors)
value = (value * 31) ^ hash(self.maxJobsInQueue)
value = (value * 31) ^ hash(self.maxMemory)
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)
class SCPDataMovement:
"""
Data Movement through Secured Copy
alternativeSCPHostName:
If the login to scp is different than the hostname itself, specify it here
sshPort:
If a non-default port needs to used, specify it.
Attributes:
- dataMovementInterfaceId
- securityProtocol
- alternativeSCPHostName
- sshPort
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'dataMovementInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.STRING, 'alternativeSCPHostName', None, None, ), # 3
(4, TType.I32, 'sshPort', None, 22, ), # 4
)
def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, alternativeSCPHostName=None, sshPort=thrift_spec[4][4],):
self.dataMovementInterfaceId = dataMovementInterfaceId
self.securityProtocol = securityProtocol
self.alternativeSCPHostName = alternativeSCPHostName
self.sshPort = sshPort
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.dataMovementInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.securityProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.STRING:
self.alternativeSCPHostName = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 4:
if ftype == TType.I32:
self.sshPort = iprot.readI32();
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('SCPDataMovement')
if self.dataMovementInterfaceId is not None:
oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
oprot.writeString(self.dataMovementInterfaceId)
oprot.writeFieldEnd()
if self.securityProtocol is not None:
oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
oprot.writeI32(self.securityProtocol)
oprot.writeFieldEnd()
if self.alternativeSCPHostName is not None:
oprot.writeFieldBegin('alternativeSCPHostName', TType.STRING, 3)
oprot.writeString(self.alternativeSCPHostName)
oprot.writeFieldEnd()
if self.sshPort is not None:
oprot.writeFieldBegin('sshPort', TType.I32, 4)
oprot.writeI32(self.sshPort)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.dataMovementInterfaceId is None:
raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
if self.securityProtocol is None:
raise TProtocol.TProtocolException(message='Required field securityProtocol is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.dataMovementInterfaceId)
value = (value * 31) ^ hash(self.securityProtocol)
value = (value * 31) ^ hash(self.alternativeSCPHostName)
value = (value * 31) ^ hash(self.sshPort)
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)
class GridFTPDataMovement:
"""
Data Movement through GridFTP
alternativeSCPHostName:
If the login to scp is different than the hostname itself, specify it here
sshPort:
If a non-default port needs to used, specify it.
Attributes:
- dataMovementInterfaceId
- securityProtocol
- gridFTPEndPoints
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'dataMovementInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.LIST, 'gridFTPEndPoints', (TType.STRING,None), None, ), # 3
)
def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, gridFTPEndPoints=None,):
self.dataMovementInterfaceId = dataMovementInterfaceId
self.securityProtocol = securityProtocol
self.gridFTPEndPoints = gridFTPEndPoints
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.dataMovementInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.securityProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.LIST:
self.gridFTPEndPoints = []
(_etype12, _size9) = iprot.readListBegin()
for _i13 in xrange(_size9):
_elem14 = iprot.readString();
self.gridFTPEndPoints.append(_elem14)
iprot.readListEnd()
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('GridFTPDataMovement')
if self.dataMovementInterfaceId is not None:
oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
oprot.writeString(self.dataMovementInterfaceId)
oprot.writeFieldEnd()
if self.securityProtocol is not None:
oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
oprot.writeI32(self.securityProtocol)
oprot.writeFieldEnd()
if self.gridFTPEndPoints is not None:
oprot.writeFieldBegin('gridFTPEndPoints', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.gridFTPEndPoints))
for iter15 in self.gridFTPEndPoints:
oprot.writeString(iter15)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.dataMovementInterfaceId is None:
raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
if self.securityProtocol is None:
raise TProtocol.TProtocolException(message='Required field securityProtocol is unset!')
if self.gridFTPEndPoints is None:
raise TProtocol.TProtocolException(message='Required field gridFTPEndPoints is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.dataMovementInterfaceId)
value = (value * 31) ^ hash(self.securityProtocol)
value = (value * 31) ^ hash(self.gridFTPEndPoints)
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)
class UnicoreDataMovement:
"""
Data Movement through UnicoreStorage
unicoreEndPointURL:
unicoreGateway End Point. The provider will query this service to fetch required service end points.
Attributes:
- dataMovementInterfaceId
- securityProtocol
- unicoreEndPointURL
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'dataMovementInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.STRING, 'unicoreEndPointURL', None, None, ), # 3
)
def __init__(self, dataMovementInterfaceId=thrift_spec[1][4], securityProtocol=None, unicoreEndPointURL=None,):
self.dataMovementInterfaceId = dataMovementInterfaceId
self.securityProtocol = securityProtocol
self.unicoreEndPointURL = unicoreEndPointURL
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.dataMovementInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.securityProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.STRING:
self.unicoreEndPointURL = iprot.readString();
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('UnicoreDataMovement')
if self.dataMovementInterfaceId is not None:
oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
oprot.writeString(self.dataMovementInterfaceId)
oprot.writeFieldEnd()
if self.securityProtocol is not None:
oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
oprot.writeI32(self.securityProtocol)
oprot.writeFieldEnd()
if self.unicoreEndPointURL is not None:
oprot.writeFieldBegin('unicoreEndPointURL', TType.STRING, 3)
oprot.writeString(self.unicoreEndPointURL)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.dataMovementInterfaceId is None:
raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
if self.securityProtocol is None:
raise TProtocol.TProtocolException(message='Required field securityProtocol is unset!')
if self.unicoreEndPointURL is None:
raise TProtocol.TProtocolException(message='Required field unicoreEndPointURL is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.dataMovementInterfaceId)
value = (value * 31) ^ hash(self.securityProtocol)
value = (value * 31) ^ hash(self.unicoreEndPointURL)
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)
class LOCALSubmission:
"""
Locally Fork Jobs as OS processes
alternativeSSHHostName:
If the login to ssh is different than the hostname itself, specify it here
sshPort:
If a non-default port needs to used, specify it.
Attributes:
- jobSubmissionInterfaceId
- securityProtocol
- resourceJobManager
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'jobSubmissionInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.STRUCT, 'resourceJobManager', (ResourceJobManager, ResourceJobManager.thrift_spec), None, ), # 3
)
def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, resourceJobManager=None,):
self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
self.securityProtocol = securityProtocol
self.resourceJobManager = resourceJobManager
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.jobSubmissionInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.securityProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.STRUCT:
self.resourceJobManager = ResourceJobManager()
self.resourceJobManager.read(iprot)
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('LOCALSubmission')
if self.jobSubmissionInterfaceId is not None:
oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 1)
oprot.writeString(self.jobSubmissionInterfaceId)
oprot.writeFieldEnd()
if self.securityProtocol is not None:
oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
oprot.writeI32(self.securityProtocol)
oprot.writeFieldEnd()
if self.resourceJobManager is not None:
oprot.writeFieldBegin('resourceJobManager', TType.STRUCT, 3)
self.resourceJobManager.write(oprot)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.jobSubmissionInterfaceId is None:
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.resourceJobManager is None:
raise TProtocol.TProtocolException(message='Required field resourceJobManager is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.jobSubmissionInterfaceId)
value = (value * 31) ^ hash(self.securityProtocol)
value = (value * 31) ^ hash(self.resourceJobManager)
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)
class LOCALDataMovement:
"""
LOCAL
alternativeSCPHostName:
If the login to scp is different than the hostname itself, specify it here
sshPort:
If a non-defualt port needs to used, specify it.
Attributes:
- dataMovementInterfaceId
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'dataMovementInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
)
def __init__(self, dataMovementInterfaceId=thrift_spec[1][4],):
self.dataMovementInterfaceId = dataMovementInterfaceId
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.dataMovementInterfaceId = iprot.readString();
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('LOCALDataMovement')
if self.dataMovementInterfaceId is not None:
oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
oprot.writeString(self.dataMovementInterfaceId)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.dataMovementInterfaceId is None:
raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.dataMovementInterfaceId)
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)
class SSHJobSubmission:
"""
Authenticate using Secured Shell
alternativeSSHHostName:
If the login to ssh is different than the hostname itself, specify it here
sshPort:
If a non-default port needs to used, specify it.
batchQueueEmailSenders:
If a resource always sends the monitoring from a specific address, specify the
full email address. If a resource sends emails from multiple addresses (
example: based on the submitted login node) then use the wildchar * to indicate
the same. Example: *@*.example.com or *@example.com
Attributes:
- jobSubmissionInterfaceId
- securityProtocol
- resourceJobManager
- alternativeSSHHostName
- sshPort
- monitorMode
- batchQueueEmailSenders
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'jobSubmissionInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.STRUCT, 'resourceJobManager', (ResourceJobManager, ResourceJobManager.thrift_spec), None, ), # 3
(4, TType.STRING, 'alternativeSSHHostName', None, None, ), # 4
(5, TType.I32, 'sshPort', None, 22, ), # 5
(6, TType.I32, 'monitorMode', None, None, ), # 6
(7, TType.LIST, 'batchQueueEmailSenders', (TType.STRING,None), None, ), # 7
)
def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, resourceJobManager=None, alternativeSSHHostName=None, sshPort=thrift_spec[5][4], monitorMode=None, batchQueueEmailSenders=None,):
self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
self.securityProtocol = securityProtocol
self.resourceJobManager = resourceJobManager
self.alternativeSSHHostName = alternativeSSHHostName
self.sshPort = sshPort
self.monitorMode = monitorMode
self.batchQueueEmailSenders = batchQueueEmailSenders
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.jobSubmissionInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.securityProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.STRUCT:
self.resourceJobManager = ResourceJobManager()
self.resourceJobManager.read(iprot)
else:
iprot.skip(ftype)
elif fid == 4:
if ftype == TType.STRING:
self.alternativeSSHHostName = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 5:
if ftype == TType.I32:
self.sshPort = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 6:
if ftype == TType.I32:
self.monitorMode = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 7:
if ftype == TType.LIST:
self.batchQueueEmailSenders = []
(_etype19, _size16) = iprot.readListBegin()
for _i20 in xrange(_size16):
_elem21 = iprot.readString();
self.batchQueueEmailSenders.append(_elem21)
iprot.readListEnd()
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('SSHJobSubmission')
if self.jobSubmissionInterfaceId is not None:
oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 1)
oprot.writeString(self.jobSubmissionInterfaceId)
oprot.writeFieldEnd()
if self.securityProtocol is not None:
oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
oprot.writeI32(self.securityProtocol)
oprot.writeFieldEnd()
if self.resourceJobManager is not None:
oprot.writeFieldBegin('resourceJobManager', TType.STRUCT, 3)
self.resourceJobManager.write(oprot)
oprot.writeFieldEnd()
if self.alternativeSSHHostName is not None:
oprot.writeFieldBegin('alternativeSSHHostName', TType.STRING, 4)
oprot.writeString(self.alternativeSSHHostName)
oprot.writeFieldEnd()
if self.sshPort is not None:
oprot.writeFieldBegin('sshPort', TType.I32, 5)
oprot.writeI32(self.sshPort)
oprot.writeFieldEnd()
if self.monitorMode is not None:
oprot.writeFieldBegin('monitorMode', TType.I32, 6)
oprot.writeI32(self.monitorMode)
oprot.writeFieldEnd()
if self.batchQueueEmailSenders is not None:
oprot.writeFieldBegin('batchQueueEmailSenders', TType.LIST, 7)
oprot.writeListBegin(TType.STRING, len(self.batchQueueEmailSenders))
for iter22 in self.batchQueueEmailSenders:
oprot.writeString(iter22)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.jobSubmissionInterfaceId is None:
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.resourceJobManager is None:
raise TProtocol.TProtocolException(message='Required field resourceJobManager is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.jobSubmissionInterfaceId)
value = (value * 31) ^ hash(self.securityProtocol)
value = (value * 31) ^ hash(self.resourceJobManager)
value = (value * 31) ^ hash(self.alternativeSSHHostName)
value = (value * 31) ^ hash(self.sshPort)
value = (value * 31) ^ hash(self.monitorMode)
value = (value * 31) ^ hash(self.batchQueueEmailSenders)
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)
class GlobusJobSubmission:
"""
Attributes:
- jobSubmissionInterfaceId
- securityProtocol
- globusGateKeeperEndPoint
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'jobSubmissionInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.LIST, 'globusGateKeeperEndPoint', (TType.STRING,None), None, ), # 3
)
def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, globusGateKeeperEndPoint=None,):
self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
self.securityProtocol = securityProtocol
self.globusGateKeeperEndPoint = globusGateKeeperEndPoint
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.jobSubmissionInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.securityProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.LIST:
self.globusGateKeeperEndPoint = []
(_etype26, _size23) = iprot.readListBegin()
for _i27 in xrange(_size23):
_elem28 = iprot.readString();
self.globusGateKeeperEndPoint.append(_elem28)
iprot.readListEnd()
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('GlobusJobSubmission')
if self.jobSubmissionInterfaceId is not None:
oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 1)
oprot.writeString(self.jobSubmissionInterfaceId)
oprot.writeFieldEnd()
if self.securityProtocol is not None:
oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
oprot.writeI32(self.securityProtocol)
oprot.writeFieldEnd()
if self.globusGateKeeperEndPoint is not None:
oprot.writeFieldBegin('globusGateKeeperEndPoint', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.globusGateKeeperEndPoint))
for iter29 in self.globusGateKeeperEndPoint:
oprot.writeString(iter29)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.jobSubmissionInterfaceId is None:
raise TProtocol.TProtocolException(message='Required field jobSubmissionInterfaceId is unset!')
if self.securityProtocol is None:
raise TProtocol.TProtocolException(message='Required field securityProtocol is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.jobSubmissionInterfaceId)
value = (value * 31) ^ hash(self.securityProtocol)
value = (value * 31) ^ hash(self.globusGateKeeperEndPoint)
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)
class UnicoreJobSubmission:
"""
Unicore Job Submission
unicoreEndPointURL:
unicoreGateway End Point. The provider will query this service to fetch required service end points.
authenticationMode
The authenticationMode defines the way certificate is fetched.
Attributes:
- jobSubmissionInterfaceId
- securityProtocol
- unicoreEndPointURL
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'jobSubmissionInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.STRING, 'unicoreEndPointURL', None, None, ), # 3
)
def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], securityProtocol=None, unicoreEndPointURL=None,):
self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
self.securityProtocol = securityProtocol
self.unicoreEndPointURL = unicoreEndPointURL
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.jobSubmissionInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.securityProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.STRING:
self.unicoreEndPointURL = iprot.readString();
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('UnicoreJobSubmission')
if self.jobSubmissionInterfaceId is not None:
oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 1)
oprot.writeString(self.jobSubmissionInterfaceId)
oprot.writeFieldEnd()
if self.securityProtocol is not None:
oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
oprot.writeI32(self.securityProtocol)
oprot.writeFieldEnd()
if self.unicoreEndPointURL is not None:
oprot.writeFieldBegin('unicoreEndPointURL', TType.STRING, 3)
oprot.writeString(self.unicoreEndPointURL)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.jobSubmissionInterfaceId is None:
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.unicoreEndPointURL is None:
raise TProtocol.TProtocolException(message='Required field unicoreEndPointURL is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.jobSubmissionInterfaceId)
value = (value * 31) ^ hash(self.securityProtocol)
value = (value * 31) ^ hash(self.unicoreEndPointURL)
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)
class CloudJobSubmission:
"""
Cloud Job Submission
Attributes:
- jobSubmissionInterfaceId
- securityProtocol
- nodeId
- executableType
- providerName
- userAccountName
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'jobSubmissionInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(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, nodeId=None, executableType=None, providerName=None, userAccountName=None,):
self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
self.securityProtocol = securityProtocol
self.nodeId = nodeId
self.executableType = executableType
self.providerName = providerName
self.userAccountName = userAccountName
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.jobSubmissionInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.securityProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.STRING:
self.nodeId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 4:
if ftype == TType.STRING:
self.executableType = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 5:
if ftype == TType.I32:
self.providerName = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 6:
if ftype == TType.STRING:
self.userAccountName = iprot.readString();
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('CloudJobSubmission')
if self.jobSubmissionInterfaceId is not None:
oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 1)
oprot.writeString(self.jobSubmissionInterfaceId)
oprot.writeFieldEnd()
if self.securityProtocol is not None:
oprot.writeFieldBegin('securityProtocol', TType.I32, 2)
oprot.writeI32(self.securityProtocol)
oprot.writeFieldEnd()
if self.nodeId is not None:
oprot.writeFieldBegin('nodeId', TType.STRING, 3)
oprot.writeString(self.nodeId)
oprot.writeFieldEnd()
if self.executableType is not None:
oprot.writeFieldBegin('executableType', TType.STRING, 4)
oprot.writeString(self.executableType)
oprot.writeFieldEnd()
if self.providerName is not None:
oprot.writeFieldBegin('providerName', TType.I32, 5)
oprot.writeI32(self.providerName)
oprot.writeFieldEnd()
if self.userAccountName is not None:
oprot.writeFieldBegin('userAccountName', TType.STRING, 6)
oprot.writeString(self.userAccountName)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.jobSubmissionInterfaceId is None:
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.nodeId is None:
raise TProtocol.TProtocolException(message='Required field nodeId is unset!')
if self.executableType is None:
raise TProtocol.TProtocolException(message='Required field executableType is unset!')
if self.providerName is None:
raise TProtocol.TProtocolException(message='Required field providerName is unset!')
if self.userAccountName is None:
raise TProtocol.TProtocolException(message='Required field userAccountName is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.jobSubmissionInterfaceId)
value = (value * 31) ^ hash(self.securityProtocol)
value = (value * 31) ^ hash(self.nodeId)
value = (value * 31) ^ hash(self.executableType)
value = (value * 31) ^ hash(self.providerName)
value = (value * 31) ^ hash(self.userAccountName)
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)
class JobSubmissionInterface:
"""
Job Submission Interfaces
jobSubmissionInterfaceId: The Job Submission Interface has to be previously registered and referenced here.
priorityOrder:
For resources with multiple interfaces, the priority order should be selected.
Lower the numerical number, higher the priority
Attributes:
- jobSubmissionInterfaceId
- jobSubmissionProtocol
- priorityOrder
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'jobSubmissionInterfaceId', None, None, ), # 1
(2, TType.I32, 'jobSubmissionProtocol', None, None, ), # 2
(3, TType.I32, 'priorityOrder', None, 0, ), # 3
)
def __init__(self, jobSubmissionInterfaceId=None, jobSubmissionProtocol=None, priorityOrder=thrift_spec[3][4],):
self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
self.jobSubmissionProtocol = jobSubmissionProtocol
self.priorityOrder = priorityOrder
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.jobSubmissionInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.jobSubmissionProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.I32:
self.priorityOrder = iprot.readI32();
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('JobSubmissionInterface')
if self.jobSubmissionInterfaceId is not None:
oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 1)
oprot.writeString(self.jobSubmissionInterfaceId)
oprot.writeFieldEnd()
if self.jobSubmissionProtocol is not None:
oprot.writeFieldBegin('jobSubmissionProtocol', TType.I32, 2)
oprot.writeI32(self.jobSubmissionProtocol)
oprot.writeFieldEnd()
if self.priorityOrder is not None:
oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
oprot.writeI32(self.priorityOrder)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.jobSubmissionInterfaceId is None:
raise TProtocol.TProtocolException(message='Required field jobSubmissionInterfaceId is unset!')
if self.jobSubmissionProtocol is None:
raise TProtocol.TProtocolException(message='Required field jobSubmissionProtocol is unset!')
if self.priorityOrder is None:
raise TProtocol.TProtocolException(message='Required field priorityOrder is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.jobSubmissionInterfaceId)
value = (value * 31) ^ hash(self.jobSubmissionProtocol)
value = (value * 31) ^ hash(self.priorityOrder)
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)
class DataMovementInterface:
"""
Data Movement Interfaces
dataMovementInterfaceId: The Data Movement Interface has to be previously registered and referenced here.
priorityOrder:
For resources with multiple interfaces, the priority order should be selected.
Lower the numerical number, higher the priority
Attributes:
- dataMovementInterfaceId
- dataMovementProtocol
- priorityOrder
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'dataMovementInterfaceId', None, None, ), # 1
(2, TType.I32, 'dataMovementProtocol', None, None, ), # 2
(3, TType.I32, 'priorityOrder', None, 0, ), # 3
)
def __init__(self, dataMovementInterfaceId=None, dataMovementProtocol=None, priorityOrder=thrift_spec[3][4],):
self.dataMovementInterfaceId = dataMovementInterfaceId
self.dataMovementProtocol = dataMovementProtocol
self.priorityOrder = priorityOrder
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.dataMovementInterfaceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.I32:
self.dataMovementProtocol = iprot.readI32();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.I32:
self.priorityOrder = iprot.readI32();
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('DataMovementInterface')
if self.dataMovementInterfaceId is not None:
oprot.writeFieldBegin('dataMovementInterfaceId', TType.STRING, 1)
oprot.writeString(self.dataMovementInterfaceId)
oprot.writeFieldEnd()
if self.dataMovementProtocol is not None:
oprot.writeFieldBegin('dataMovementProtocol', TType.I32, 2)
oprot.writeI32(self.dataMovementProtocol)
oprot.writeFieldEnd()
if self.priorityOrder is not None:
oprot.writeFieldBegin('priorityOrder', TType.I32, 3)
oprot.writeI32(self.priorityOrder)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.dataMovementInterfaceId is None:
raise TProtocol.TProtocolException(message='Required field dataMovementInterfaceId is unset!')
if self.dataMovementProtocol is None:
raise TProtocol.TProtocolException(message='Required field dataMovementProtocol is unset!')
if self.priorityOrder is None:
raise TProtocol.TProtocolException(message='Required field priorityOrder is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.dataMovementInterfaceId)
value = (value * 31) ^ hash(self.dataMovementProtocol)
value = (value * 31) ^ hash(self.priorityOrder)
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)
class ComputeResourceDescription:
"""
Computational Resource Description
computeResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
hostName:
Fully Qualified Host Name.
hostAliases:
Aliases if any.
ipAddress:
IP Addresses of the Resource.
resourceDescription:
A user friendly description of the resource.
JobSubmissionProtocols:
A computational resources may have one or more ways of submitting Jobs. This structure
will hold all available mechanisms to interact with the resource.
The key is the priority
DataMovementProtocol:
Option to specify a prefered data movement mechanism of the available options.
fileSystems:
Map of file systems type and the path.
Attributes:
- computeResourceId
- hostName
- hostAliases
- ipAddresses
- resourceDescription
- enabled
- batchQueues
- fileSystems
- jobSubmissionInterfaces
- dataMovementInterfaces
- maxMemoryPerNode
"""
thrift_spec = (
None, # 0
(1, TType.STRING, 'computeResourceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.STRING, 'hostName', None, None, ), # 2
(3, TType.LIST, 'hostAliases', (TType.STRING,None), None, ), # 3
(4, TType.LIST, 'ipAddresses', (TType.STRING,None), None, ), # 4
(5, TType.STRING, 'resourceDescription', None, None, ), # 5
(6, TType.BOOL, 'enabled', None, None, ), # 6
(7, TType.LIST, 'batchQueues', (TType.STRUCT,(BatchQueue, BatchQueue.thrift_spec)), None, ), # 7
(8, TType.MAP, 'fileSystems', (TType.I32,None,TType.STRING,None), None, ), # 8
(9, TType.LIST, 'jobSubmissionInterfaces', (TType.STRUCT,(JobSubmissionInterface, JobSubmissionInterface.thrift_spec)), None, ), # 9
(10, TType.LIST, 'dataMovementInterfaces', (TType.STRUCT,(DataMovementInterface, DataMovementInterface.thrift_spec)), None, ), # 10
(11, TType.I32, 'maxMemoryPerNode', None, None, ), # 11
)
def __init__(self, computeResourceId=thrift_spec[1][4], hostName=None, hostAliases=None, ipAddresses=None, resourceDescription=None, enabled=None, batchQueues=None, fileSystems=None, jobSubmissionInterfaces=None, dataMovementInterfaces=None, maxMemoryPerNode=None,):
self.computeResourceId = computeResourceId
self.hostName = hostName
self.hostAliases = hostAliases
self.ipAddresses = ipAddresses
self.resourceDescription = resourceDescription
self.enabled = enabled
self.batchQueues = batchQueues
self.fileSystems = fileSystems
self.jobSubmissionInterfaces = jobSubmissionInterfaces
self.dataMovementInterfaces = dataMovementInterfaces
self.maxMemoryPerNode = maxMemoryPerNode
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.computeResourceId = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.STRING:
self.hostName = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.LIST:
self.hostAliases = []
(_etype33, _size30) = iprot.readListBegin()
for _i34 in xrange(_size30):
_elem35 = iprot.readString();
self.hostAliases.append(_elem35)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 4:
if ftype == TType.LIST:
self.ipAddresses = []
(_etype39, _size36) = iprot.readListBegin()
for _i40 in xrange(_size36):
_elem41 = iprot.readString();
self.ipAddresses.append(_elem41)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 5:
if ftype == TType.STRING:
self.resourceDescription = iprot.readString();
else:
iprot.skip(ftype)
elif fid == 6:
if ftype == TType.BOOL:
self.enabled = iprot.readBool();
else:
iprot.skip(ftype)
elif fid == 7:
if ftype == TType.LIST:
self.batchQueues = []
(_etype45, _size42) = iprot.readListBegin()
for _i46 in xrange(_size42):
_elem47 = BatchQueue()
_elem47.read(iprot)
self.batchQueues.append(_elem47)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 8:
if ftype == TType.MAP:
self.fileSystems = {}
(_ktype49, _vtype50, _size48 ) = iprot.readMapBegin()
for _i52 in xrange(_size48):
_key53 = iprot.readI32();
_val54 = iprot.readString();
self.fileSystems[_key53] = _val54
iprot.readMapEnd()
else:
iprot.skip(ftype)
elif fid == 9:
if ftype == TType.LIST:
self.jobSubmissionInterfaces = []
(_etype58, _size55) = iprot.readListBegin()
for _i59 in xrange(_size55):
_elem60 = JobSubmissionInterface()
_elem60.read(iprot)
self.jobSubmissionInterfaces.append(_elem60)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 10:
if ftype == TType.LIST:
self.dataMovementInterfaces = []
(_etype64, _size61) = iprot.readListBegin()
for _i65 in xrange(_size61):
_elem66 = DataMovementInterface()
_elem66.read(iprot)
self.dataMovementInterfaces.append(_elem66)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 11:
if ftype == TType.I32:
self.maxMemoryPerNode = iprot.readI32();
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('ComputeResourceDescription')
if self.computeResourceId is not None:
oprot.writeFieldBegin('computeResourceId', TType.STRING, 1)
oprot.writeString(self.computeResourceId)
oprot.writeFieldEnd()
if self.hostName is not None:
oprot.writeFieldBegin('hostName', TType.STRING, 2)
oprot.writeString(self.hostName)
oprot.writeFieldEnd()
if self.hostAliases is not None:
oprot.writeFieldBegin('hostAliases', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.hostAliases))
for iter67 in self.hostAliases:
oprot.writeString(iter67)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.ipAddresses is not None:
oprot.writeFieldBegin('ipAddresses', TType.LIST, 4)
oprot.writeListBegin(TType.STRING, len(self.ipAddresses))
for iter68 in self.ipAddresses:
oprot.writeString(iter68)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.resourceDescription is not None:
oprot.writeFieldBegin('resourceDescription', TType.STRING, 5)
oprot.writeString(self.resourceDescription)
oprot.writeFieldEnd()
if self.enabled is not None:
oprot.writeFieldBegin('enabled', TType.BOOL, 6)
oprot.writeBool(self.enabled)
oprot.writeFieldEnd()
if self.batchQueues is not None:
oprot.writeFieldBegin('batchQueues', TType.LIST, 7)
oprot.writeListBegin(TType.STRUCT, len(self.batchQueues))
for iter69 in self.batchQueues:
iter69.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.fileSystems is not None:
oprot.writeFieldBegin('fileSystems', TType.MAP, 8)
oprot.writeMapBegin(TType.I32, TType.STRING, len(self.fileSystems))
for kiter70,viter71 in self.fileSystems.items():
oprot.writeI32(kiter70)
oprot.writeString(viter71)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.jobSubmissionInterfaces is not None:
oprot.writeFieldBegin('jobSubmissionInterfaces', TType.LIST, 9)
oprot.writeListBegin(TType.STRUCT, len(self.jobSubmissionInterfaces))
for iter72 in self.jobSubmissionInterfaces:
iter72.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.dataMovementInterfaces is not None:
oprot.writeFieldBegin('dataMovementInterfaces', TType.LIST, 10)
oprot.writeListBegin(TType.STRUCT, len(self.dataMovementInterfaces))
for iter73 in self.dataMovementInterfaces:
iter73.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.maxMemoryPerNode is not None:
oprot.writeFieldBegin('maxMemoryPerNode', TType.I32, 11)
oprot.writeI32(self.maxMemoryPerNode)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.computeResourceId is None:
raise TProtocol.TProtocolException(message='Required field computeResourceId is unset!')
if self.hostName is None:
raise TProtocol.TProtocolException(message='Required field hostName is unset!')
return
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.computeResourceId)
value = (value * 31) ^ hash(self.hostName)
value = (value * 31) ^ hash(self.hostAliases)
value = (value * 31) ^ hash(self.ipAddresses)
value = (value * 31) ^ hash(self.resourceDescription)
value = (value * 31) ^ hash(self.enabled)
value = (value * 31) ^ hash(self.batchQueues)
value = (value * 31) ^ hash(self.fileSystems)
value = (value * 31) ^ hash(self.jobSubmissionInterfaces)
value = (value * 31) ^ hash(self.dataMovementInterfaces)
value = (value * 31) ^ hash(self.maxMemoryPerNode)
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)