blob: ff7438138de5dda7bc9e064765397797b583777c [file] [log] [blame]
#
# Autogenerated by Thrift Compiler (0.10.0)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
# options string: py
#
from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
from thrift.protocol.TProtocol import TProtocolException
import sys
import apache.airavata.model.commons.ttypes
from thrift.transport import TTransport
class DMType(object):
COMPUTE_RESOURCE = 0
STORAGE_RESOURCE = 1
_VALUES_TO_NAMES = {
0: "COMPUTE_RESOURCE",
1: "STORAGE_RESOURCE",
}
_NAMES_TO_VALUES = {
"COMPUTE_RESOURCE": 0,
"STORAGE_RESOURCE": 1,
}
class SecurityProtocol(object):
"""
Enumeration of security sshKeyAuthentication 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 DataMovementProtocol(object):
"""
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 SCPDataMovement(object):
"""
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', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.STRING, 'alternativeSCPHostName', 'UTF8', 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._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
iprot._fast_decode(self, iprot, (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().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else 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._fast_encode is not None and self.thrift_spec is not None:
oprot.trans.write(oprot._fast_encode(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.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else 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 TProtocolException(message='Required field dataMovementInterfaceId is unset!')
if self.securityProtocol is None:
raise TProtocolException(message='Required field securityProtocol is unset!')
return
def __repr__(self):
L = ['%s=%r' % (key, value)
for key, value in self.__dict__.items()]
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(object):
"""
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', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.LIST, 'gridFTPEndPoints', (TType.STRING, 'UTF8', False), 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._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
iprot._fast_decode(self, iprot, (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().decode('utf-8') if sys.version_info[0] == 2 else 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 = []
(_etype3, _size0) = iprot.readListBegin()
for _i4 in range(_size0):
_elem5 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
self.gridFTPEndPoints.append(_elem5)
iprot.readListEnd()
else:
iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
iprot.readStructEnd()
def write(self, oprot):
if oprot._fast_encode is not None and self.thrift_spec is not None:
oprot.trans.write(oprot._fast_encode(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.encode('utf-8') if sys.version_info[0] == 2 else 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 iter6 in self.gridFTPEndPoints:
oprot.writeString(iter6.encode('utf-8') if sys.version_info[0] == 2 else iter6)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.dataMovementInterfaceId is None:
raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
if self.securityProtocol is None:
raise TProtocolException(message='Required field securityProtocol is unset!')
if self.gridFTPEndPoints is None:
raise TProtocolException(message='Required field gridFTPEndPoints is unset!')
return
def __repr__(self):
L = ['%s=%r' % (key, value)
for key, value in self.__dict__.items()]
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(object):
"""
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', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ), # 1
(2, TType.I32, 'securityProtocol', None, None, ), # 2
(3, TType.STRING, 'unicoreEndPointURL', 'UTF8', 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._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
iprot._fast_decode(self, iprot, (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().decode('utf-8') if sys.version_info[0] == 2 else 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().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
else:
iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
iprot.readStructEnd()
def write(self, oprot):
if oprot._fast_encode is not None and self.thrift_spec is not None:
oprot.trans.write(oprot._fast_encode(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.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else self.unicoreEndPointURL)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.dataMovementInterfaceId is None:
raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
if self.securityProtocol is None:
raise TProtocolException(message='Required field securityProtocol is unset!')
if self.unicoreEndPointURL is None:
raise TProtocolException(message='Required field unicoreEndPointURL is unset!')
return
def __repr__(self):
L = ['%s=%r' % (key, value)
for key, value in self.__dict__.items()]
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(object):
"""
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', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ), # 1
)
def __init__(self, dataMovementInterfaceId=thrift_spec[1][4],):
self.dataMovementInterfaceId = dataMovementInterfaceId
def read(self, iprot):
if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
iprot._fast_decode(self, iprot, (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().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
else:
iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
iprot.readStructEnd()
def write(self, oprot):
if oprot._fast_encode is not None and self.thrift_spec is not None:
oprot.trans.write(oprot._fast_encode(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.encode('utf-8') if sys.version_info[0] == 2 else self.dataMovementInterfaceId)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
def validate(self):
if self.dataMovementInterfaceId is None:
raise TProtocolException(message='Required field dataMovementInterfaceId is unset!')
return
def __repr__(self):
L = ['%s=%r' % (key, value)
for key, value in self.__dict__.items()]
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(object):
"""
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', 'UTF8', 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._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
iprot._fast_decode(self, iprot, (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().decode('utf-8') if sys.version_info[0] == 2 else 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._fast_encode is not None and self.thrift_spec is not None:
oprot.trans.write(oprot._fast_encode(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.encode('utf-8') if sys.version_info[0] == 2 else 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 TProtocolException(message='Required field dataMovementInterfaceId is unset!')
if self.dataMovementProtocol is None:
raise TProtocolException(message='Required field dataMovementProtocol is unset!')
if self.priorityOrder is None:
raise TProtocolException(message='Required field priorityOrder is unset!')
return
def __repr__(self):
L = ['%s=%r' % (key, value)
for key, value in self.__dict__.items()]
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)