You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2016/08/09 18:00:41 UTC
[01/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Repository: airavata-sandbox
Updated Branches:
refs/heads/master 4231ac353 -> 2352c0ffa
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/__init__.py
new file mode 100644
index 0000000..1bf6e25
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/__init__.py
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+__all__ = ['TServer', 'TNonblockingServer']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/THttpClient.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/THttpClient.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/THttpClient.py
new file mode 100644
index 0000000..eef0d98
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/THttpClient.py
@@ -0,0 +1,147 @@
+#
+# 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.
+#
+
+import httplib
+import os
+import socket
+import sys
+import urllib
+import urlparse
+import warnings
+
+from thrift.transport.TTransport import *
+
+
+class THttpClient(TTransportBase):
+ """Http implementation of TTransport base."""
+
+ def __init__(self, uri_or_host, port=None, path=None):
+ """THttpClient supports two different types constructor parameters.
+
+ THttpClient(host, port, path) - deprecated
+ THttpClient(uri)
+
+ Only the second supports https.
+ """
+ if port is not None:
+ warnings.warn(
+ "Please use the THttpClient('http://host:port/path') syntax",
+ DeprecationWarning,
+ stacklevel=2)
+ self.host = uri_or_host
+ self.port = port
+ assert path
+ self.path = path
+ self.scheme = 'http'
+ else:
+ parsed = urlparse.urlparse(uri_or_host)
+ self.scheme = parsed.scheme
+ assert self.scheme in ('http', 'https')
+ if self.scheme == 'http':
+ self.port = parsed.port or httplib.HTTP_PORT
+ elif self.scheme == 'https':
+ self.port = parsed.port or httplib.HTTPS_PORT
+ self.host = parsed.hostname
+ self.path = parsed.path
+ if parsed.query:
+ self.path += '?%s' % parsed.query
+ self.__wbuf = StringIO()
+ self.__http = None
+ self.__timeout = None
+ self.__custom_headers = None
+
+ def open(self):
+ if self.scheme == 'http':
+ self.__http = httplib.HTTP(self.host, self.port)
+ else:
+ self.__http = httplib.HTTPS(self.host, self.port)
+
+ def close(self):
+ self.__http.close()
+ self.__http = None
+
+ def isOpen(self):
+ return self.__http is not None
+
+ def setTimeout(self, ms):
+ if not hasattr(socket, 'getdefaulttimeout'):
+ raise NotImplementedError
+
+ if ms is None:
+ self.__timeout = None
+ else:
+ self.__timeout = ms / 1000.0
+
+ def setCustomHeaders(self, headers):
+ self.__custom_headers = headers
+
+ def read(self, sz):
+ return self.__http.file.read(sz)
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def __withTimeout(f):
+ def _f(*args, **kwargs):
+ orig_timeout = socket.getdefaulttimeout()
+ socket.setdefaulttimeout(args[0].__timeout)
+ result = f(*args, **kwargs)
+ socket.setdefaulttimeout(orig_timeout)
+ return result
+ return _f
+
+ def flush(self):
+ if self.isOpen():
+ self.close()
+ self.open()
+
+ # Pull data out of buffer
+ data = self.__wbuf.getvalue()
+ self.__wbuf = StringIO()
+
+ # HTTP request
+ self.__http.putrequest('POST', self.path)
+
+ # Write headers
+ self.__http.putheader('Host', self.host)
+ self.__http.putheader('Content-Type', 'application/x-thrift')
+ self.__http.putheader('Content-Length', str(len(data)))
+
+ if not self.__custom_headers or 'User-Agent' not in self.__custom_headers:
+ user_agent = 'Python/THttpClient'
+ script = os.path.basename(sys.argv[0])
+ if script:
+ user_agent = '%s (%s)' % (user_agent, urllib.quote(script))
+ self.__http.putheader('User-Agent', user_agent)
+
+ if self.__custom_headers:
+ for key, val in self.__custom_headers.iteritems():
+ self.__http.putheader(key, val)
+
+ self.__http.endheaders()
+
+ # Write payload
+ self.__http.send(data)
+
+ # Get reply to flush the request
+ self.code, self.message, self.headers = self.__http.getreply()
+
+ # Decorate if we know how to timeout
+ if hasattr(socket, 'getdefaulttimeout'):
+ flush = __withTimeout(flush)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.py
new file mode 100644
index 0000000..81e0984
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.py
@@ -0,0 +1,214 @@
+#
+# 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.
+#
+
+import os
+import socket
+import ssl
+
+from thrift.transport import TSocket
+from thrift.transport.TTransport import TTransportException
+
+
+class TSSLSocket(TSocket.TSocket):
+ """
+ SSL implementation of client-side TSocket
+
+ This class creates outbound sockets wrapped using the
+ python standard ssl module for encrypted connections.
+
+ The protocol used is set using the class variable
+ SSL_VERSION, which must be one of ssl.PROTOCOL_* and
+ defaults to ssl.PROTOCOL_TLSv1 for greatest security.
+ """
+ SSL_VERSION = ssl.PROTOCOL_TLSv1
+
+ def __init__(self,
+ host='localhost',
+ port=9090,
+ validate=True,
+ ca_certs=None,
+ keyfile=None,
+ certfile=None,
+ unix_socket=None):
+ """Create SSL TSocket
+
+ @param validate: Set to False to disable SSL certificate validation
+ @type validate: bool
+ @param ca_certs: Filename to the Certificate Authority pem file, possibly a
+ file downloaded from: http://curl.haxx.se/ca/cacert.pem This is passed to
+ the ssl_wrap function as the 'ca_certs' parameter.
+ @type ca_certs: str
+ @param keyfile: The private key
+ @type keyfile: str
+ @param certfile: The cert file
+ @type certfile: str
+
+ Raises an IOError exception if validate is True and the ca_certs file is
+ None, not present or unreadable.
+ """
+ self.validate = validate
+ self.is_valid = False
+ self.peercert = None
+ if not validate:
+ self.cert_reqs = ssl.CERT_NONE
+ else:
+ self.cert_reqs = ssl.CERT_REQUIRED
+ self.ca_certs = ca_certs
+ self.keyfile = keyfile
+ self.certfile = certfile
+ if validate:
+ if ca_certs is None or not os.access(ca_certs, os.R_OK):
+ raise IOError('Certificate Authority ca_certs file "%s" '
+ 'is not readable, cannot validate SSL '
+ 'certificates.' % (ca_certs))
+ TSocket.TSocket.__init__(self, host, port, unix_socket)
+
+ def open(self):
+ try:
+ res0 = self._resolveAddr()
+ for res in res0:
+ sock_family, sock_type = res[0:2]
+ ip_port = res[4]
+ plain_sock = socket.socket(sock_family, sock_type)
+ self.handle = ssl.wrap_socket(plain_sock,
+ ssl_version=self.SSL_VERSION,
+ do_handshake_on_connect=True,
+ ca_certs=self.ca_certs,
+ keyfile=self.keyfile,
+ certfile=self.certfile,
+ cert_reqs=self.cert_reqs)
+ self.handle.settimeout(self._timeout)
+ try:
+ self.handle.connect(ip_port)
+ except socket.error, e:
+ if res is not res0[-1]:
+ continue
+ else:
+ raise e
+ break
+ except socket.error, e:
+ if self._unix_socket:
+ message = 'Could not connect to secure socket %s: %s' \
+ % (self._unix_socket, e)
+ else:
+ message = 'Could not connect to %s:%d: %s' % (self.host, self.port, e)
+ raise TTransportException(type=TTransportException.NOT_OPEN,
+ message=message)
+ if self.validate:
+ self._validate_cert()
+
+ def _validate_cert(self):
+ """internal method to validate the peer's SSL certificate, and to check the
+ commonName of the certificate to ensure it matches the hostname we
+ used to make this connection. Does not support subjectAltName records
+ in certificates.
+
+ raises TTransportException if the certificate fails validation.
+ """
+ cert = self.handle.getpeercert()
+ self.peercert = cert
+ if 'subject' not in cert:
+ raise TTransportException(
+ type=TTransportException.NOT_OPEN,
+ message='No SSL certificate found from %s:%s' % (self.host, self.port))
+ fields = cert['subject']
+ for field in fields:
+ # ensure structure we get back is what we expect
+ if not isinstance(field, tuple):
+ continue
+ cert_pair = field[0]
+ if len(cert_pair) < 2:
+ continue
+ cert_key, cert_value = cert_pair[0:2]
+ if cert_key != 'commonName':
+ continue
+ certhost = cert_value
+ # this check should be performed by some sort of Access Manager
+ if certhost == self.host:
+ # success, cert commonName matches desired hostname
+ self.is_valid = True
+ return
+ else:
+ raise TTransportException(
+ type=TTransportException.UNKNOWN,
+ message='Hostname we connected to "%s" doesn\'t match certificate '
+ 'provided commonName "%s"' % (self.host, certhost))
+ raise TTransportException(
+ type=TTransportException.UNKNOWN,
+ message='Could not validate SSL certificate from '
+ 'host "%s". Cert=%s' % (self.host, cert))
+
+
+class TSSLServerSocket(TSocket.TServerSocket):
+ """SSL implementation of TServerSocket
+
+ This uses the ssl module's wrap_socket() method to provide SSL
+ negotiated encryption.
+ """
+ SSL_VERSION = ssl.PROTOCOL_TLSv1
+
+ def __init__(self,
+ host=None,
+ port=9090,
+ certfile='cert.pem',
+ unix_socket=None):
+ """Initialize a TSSLServerSocket
+
+ @param certfile: filename of the server certificate, defaults to cert.pem
+ @type certfile: str
+ @param host: The hostname or IP to bind the listen socket to,
+ i.e. 'localhost' for only allowing local network connections.
+ Pass None to bind to all interfaces.
+ @type host: str
+ @param port: The port to listen on for inbound connections.
+ @type port: int
+ """
+ self.setCertfile(certfile)
+ TSocket.TServerSocket.__init__(self, host, port)
+
+ def setCertfile(self, certfile):
+ """Set or change the server certificate file used to wrap new connections.
+
+ @param certfile: The filename of the server certificate,
+ i.e. '/etc/certs/server.pem'
+ @type certfile: str
+
+ Raises an IOError exception if the certfile is not present or unreadable.
+ """
+ if not os.access(certfile, os.R_OK):
+ raise IOError('No such certfile found: %s' % (certfile))
+ self.certfile = certfile
+
+ def accept(self):
+ plain_client, addr = self.handle.accept()
+ try:
+ client = ssl.wrap_socket(plain_client, certfile=self.certfile,
+ server_side=True, ssl_version=self.SSL_VERSION)
+ except ssl.SSLError, ssl_exc:
+ # failed handshake/ssl wrap, close socket to client
+ plain_client.close()
+ # raise ssl_exc
+ # We can't raise the exception, because it kills most TServer derived
+ # serve() methods.
+ # Instead, return None, and let the TServer instance deal with it in
+ # other exception handling. (but TSimpleServer dies anyway)
+ return None
+ result = TSocket.TSocket()
+ result.setHandle(client)
+ return result
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc
new file mode 100644
index 0000000..291749d
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.py
new file mode 100644
index 0000000..971b526
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.py
@@ -0,0 +1,176 @@
+#
+# 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.
+#
+
+import errno
+import os
+import socket
+import sys
+
+from thrift.transport.TTransport import *
+
+
+class TSocketBase(TTransportBase):
+ def _resolveAddr(self):
+ if self._unix_socket is not None:
+ return [(socket.AF_UNIX, socket.SOCK_STREAM, None, None,
+ self._unix_socket)]
+ else:
+ return socket.getaddrinfo(self.host,
+ self.port,
+ socket.AF_UNSPEC,
+ socket.SOCK_STREAM,
+ 0,
+ socket.AI_PASSIVE | socket.AI_ADDRCONFIG)
+
+ def close(self):
+ if self.handle:
+ self.handle.close()
+ self.handle = None
+
+
+class TSocket(TSocketBase):
+ """Socket implementation of TTransport base."""
+
+ def __init__(self, host='localhost', port=9090, unix_socket=None):
+ """Initialize a TSocket
+
+ @param host(str) The host to connect to.
+ @param port(int) The (TCP) port to connect to.
+ @param unix_socket(str) The filename of a unix socket to connect to.
+ (host and port will be ignored.)
+ """
+ self.host = host
+ self.port = port
+ self.handle = None
+ self._unix_socket = unix_socket
+ self._timeout = None
+
+ def setHandle(self, h):
+ self.handle = h
+
+ def isOpen(self):
+ return self.handle is not None
+
+ def setTimeout(self, ms):
+ if ms is None:
+ self._timeout = None
+ else:
+ self._timeout = ms / 1000.0
+
+ if self.handle is not None:
+ self.handle.settimeout(self._timeout)
+
+ def open(self):
+ try:
+ res0 = self._resolveAddr()
+ for res in res0:
+ self.handle = socket.socket(res[0], res[1])
+ self.handle.settimeout(self._timeout)
+ try:
+ self.handle.connect(res[4])
+ except socket.error, e:
+ if res is not res0[-1]:
+ continue
+ else:
+ raise e
+ break
+ except socket.error, e:
+ if self._unix_socket:
+ message = 'Could not connect to socket %s' % self._unix_socket
+ else:
+ message = 'Could not connect to %s:%d' % (self.host, self.port)
+ raise TTransportException(type=TTransportException.NOT_OPEN,
+ message=message)
+
+ def read(self, sz):
+ try:
+ buff = self.handle.recv(sz)
+ except socket.error, e:
+ if (e.args[0] == errno.ECONNRESET and
+ (sys.platform == 'darwin' or sys.platform.startswith('freebsd'))):
+ # freebsd and Mach don't follow POSIX semantic of recv
+ # and fail with ECONNRESET if peer performed shutdown.
+ # See corresponding comment and code in TSocket::read()
+ # in lib/cpp/src/transport/TSocket.cpp.
+ self.close()
+ # Trigger the check to raise the END_OF_FILE exception below.
+ buff = ''
+ else:
+ raise
+ if len(buff) == 0:
+ raise TTransportException(type=TTransportException.END_OF_FILE,
+ message='TSocket read 0 bytes')
+ return buff
+
+ def write(self, buff):
+ if not self.handle:
+ raise TTransportException(type=TTransportException.NOT_OPEN,
+ message='Transport not open')
+ sent = 0
+ have = len(buff)
+ while sent < have:
+ plus = self.handle.send(buff)
+ if plus == 0:
+ raise TTransportException(type=TTransportException.END_OF_FILE,
+ message='TSocket sent 0 bytes')
+ sent += plus
+ buff = buff[plus:]
+
+ def flush(self):
+ pass
+
+
+class TServerSocket(TSocketBase, TServerTransportBase):
+ """Socket implementation of TServerTransport base."""
+
+ def __init__(self, host=None, port=9090, unix_socket=None):
+ self.host = host
+ self.port = port
+ self._unix_socket = unix_socket
+ self.handle = None
+
+ def listen(self):
+ res0 = self._resolveAddr()
+ for res in res0:
+ if res[0] is socket.AF_INET6 or res is res0[-1]:
+ break
+
+ # We need remove the old unix socket if the file exists and
+ # nobody is listening on it.
+ if self._unix_socket:
+ tmp = socket.socket(res[0], res[1])
+ try:
+ tmp.connect(res[4])
+ except socket.error, err:
+ eno, message = err.args
+ if eno == errno.ECONNREFUSED:
+ os.unlink(res[4])
+
+ self.handle = socket.socket(res[0], res[1])
+ self.handle.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+ if hasattr(self.handle, 'settimeout'):
+ self.handle.settimeout(None)
+ self.handle.bind(res[4])
+ self.handle.listen(128)
+
+ def accept(self):
+ client, addr = self.handle.accept()
+ result = TSocket()
+ result.setHandle(client)
+ return result
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc
new file mode 100644
index 0000000..fb5939b
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.py
new file mode 100644
index 0000000..4481371
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.py
@@ -0,0 +1,330 @@
+#
+# 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.
+#
+
+from cStringIO import StringIO
+from struct import pack, unpack
+from thrift.Thrift import TException
+
+
+class TTransportException(TException):
+ """Custom Transport Exception class"""
+
+ UNKNOWN = 0
+ NOT_OPEN = 1
+ ALREADY_OPEN = 2
+ TIMED_OUT = 3
+ END_OF_FILE = 4
+
+ def __init__(self, type=UNKNOWN, message=None):
+ TException.__init__(self, message)
+ self.type = type
+
+
+class TTransportBase:
+ """Base class for Thrift transport layer."""
+
+ def isOpen(self):
+ pass
+
+ def open(self):
+ pass
+
+ def close(self):
+ pass
+
+ def read(self, sz):
+ pass
+
+ def readAll(self, sz):
+ buff = ''
+ have = 0
+ while (have < sz):
+ chunk = self.read(sz - have)
+ have += len(chunk)
+ buff += chunk
+
+ if len(chunk) == 0:
+ raise EOFError()
+
+ return buff
+
+ def write(self, buf):
+ pass
+
+ def flush(self):
+ pass
+
+
+# This class should be thought of as an interface.
+class CReadableTransport:
+ """base class for transports that are readable from C"""
+
+ # TODO(dreiss): Think about changing this interface to allow us to use
+ # a (Python, not c) StringIO instead, because it allows
+ # you to write after reading.
+
+ # NOTE: This is a classic class, so properties will NOT work
+ # correctly for setting.
+ @property
+ def cstringio_buf(self):
+ """A cStringIO buffer that contains the current chunk we are reading."""
+ pass
+
+ def cstringio_refill(self, partialread, reqlen):
+ """Refills cstringio_buf.
+
+ Returns the currently used buffer (which can but need not be the same as
+ the old cstringio_buf). partialread is what the C code has read from the
+ buffer, and should be inserted into the buffer before any more reads. The
+ return value must be a new, not borrowed reference. Something along the
+ lines of self._buf should be fine.
+
+ If reqlen bytes can't be read, throw EOFError.
+ """
+ pass
+
+
+class TServerTransportBase:
+ """Base class for Thrift server transports."""
+
+ def listen(self):
+ pass
+
+ def accept(self):
+ pass
+
+ def close(self):
+ pass
+
+
+class TTransportFactoryBase:
+ """Base class for a Transport Factory"""
+
+ def getTransport(self, trans):
+ return trans
+
+
+class TBufferedTransportFactory:
+ """Factory transport that builds buffered transports"""
+
+ def getTransport(self, trans):
+ buffered = TBufferedTransport(trans)
+ return buffered
+
+
+class TBufferedTransport(TTransportBase, CReadableTransport):
+ """Class that wraps another transport and buffers its I/O.
+
+ The implementation uses a (configurable) fixed-size read buffer
+ but buffers all writes until a flush is performed.
+ """
+ DEFAULT_BUFFER = 4096
+
+ def __init__(self, trans, rbuf_size=DEFAULT_BUFFER):
+ self.__trans = trans
+ self.__wbuf = StringIO()
+ self.__rbuf = StringIO("")
+ self.__rbuf_size = rbuf_size
+
+ def isOpen(self):
+ return self.__trans.isOpen()
+
+ def open(self):
+ return self.__trans.open()
+
+ def close(self):
+ return self.__trans.close()
+
+ def read(self, sz):
+ ret = self.__rbuf.read(sz)
+ if len(ret) != 0:
+ return ret
+
+ self.__rbuf = StringIO(self.__trans.read(max(sz, self.__rbuf_size)))
+ return self.__rbuf.read(sz)
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def flush(self):
+ out = self.__wbuf.getvalue()
+ # reset wbuf before write/flush to preserve state on underlying failure
+ self.__wbuf = StringIO()
+ self.__trans.write(out)
+ self.__trans.flush()
+
+ # Implement the CReadableTransport interface.
+ @property
+ def cstringio_buf(self):
+ return self.__rbuf
+
+ def cstringio_refill(self, partialread, reqlen):
+ retstring = partialread
+ if reqlen < self.__rbuf_size:
+ # try to make a read of as much as we can.
+ retstring += self.__trans.read(self.__rbuf_size)
+
+ # but make sure we do read reqlen bytes.
+ if len(retstring) < reqlen:
+ retstring += self.__trans.readAll(reqlen - len(retstring))
+
+ self.__rbuf = StringIO(retstring)
+ return self.__rbuf
+
+
+class TMemoryBuffer(TTransportBase, CReadableTransport):
+ """Wraps a cStringIO object as a TTransport.
+
+ NOTE: Unlike the C++ version of this class, you cannot write to it
+ then immediately read from it. If you want to read from a
+ TMemoryBuffer, you must either pass a string to the constructor.
+ TODO(dreiss): Make this work like the C++ version.
+ """
+
+ def __init__(self, value=None):
+ """value -- a value to read from for stringio
+
+ If value is set, this will be a transport for reading,
+ otherwise, it is for writing"""
+ if value is not None:
+ self._buffer = StringIO(value)
+ else:
+ self._buffer = StringIO()
+
+ def isOpen(self):
+ return not self._buffer.closed
+
+ def open(self):
+ pass
+
+ def close(self):
+ self._buffer.close()
+
+ def read(self, sz):
+ return self._buffer.read(sz)
+
+ def write(self, buf):
+ self._buffer.write(buf)
+
+ def flush(self):
+ pass
+
+ def getvalue(self):
+ return self._buffer.getvalue()
+
+ # Implement the CReadableTransport interface.
+ @property
+ def cstringio_buf(self):
+ return self._buffer
+
+ def cstringio_refill(self, partialread, reqlen):
+ # only one shot at reading...
+ raise EOFError()
+
+
+class TFramedTransportFactory:
+ """Factory transport that builds framed transports"""
+
+ def getTransport(self, trans):
+ framed = TFramedTransport(trans)
+ return framed
+
+
+class TFramedTransport(TTransportBase, CReadableTransport):
+ """Class that wraps another transport and frames its I/O when writing."""
+
+ def __init__(self, trans,):
+ self.__trans = trans
+ self.__rbuf = StringIO()
+ self.__wbuf = StringIO()
+
+ def isOpen(self):
+ return self.__trans.isOpen()
+
+ def open(self):
+ return self.__trans.open()
+
+ def close(self):
+ return self.__trans.close()
+
+ def read(self, sz):
+ ret = self.__rbuf.read(sz)
+ if len(ret) != 0:
+ return ret
+
+ self.readFrame()
+ return self.__rbuf.read(sz)
+
+ def readFrame(self):
+ buff = self.__trans.readAll(4)
+ sz, = unpack('!i', buff)
+ self.__rbuf = StringIO(self.__trans.readAll(sz))
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def flush(self):
+ wout = self.__wbuf.getvalue()
+ wsz = len(wout)
+ # reset wbuf before write/flush to preserve state on underlying failure
+ self.__wbuf = StringIO()
+ # N.B.: Doing this string concatenation is WAY cheaper than making
+ # two separate calls to the underlying socket object. Socket writes in
+ # Python turn out to be REALLY expensive, but it seems to do a pretty
+ # good job of managing string buffer operations without excessive copies
+ buf = pack("!i", wsz) + wout
+ self.__trans.write(buf)
+ self.__trans.flush()
+
+ # Implement the CReadableTransport interface.
+ @property
+ def cstringio_buf(self):
+ return self.__rbuf
+
+ def cstringio_refill(self, prefix, reqlen):
+ # self.__rbuf will already be empty here because fastbinary doesn't
+ # ask for a refill until the previous buffer is empty. Therefore,
+ # we can start reading new frames immediately.
+ while len(prefix) < reqlen:
+ self.readFrame()
+ prefix += self.__rbuf.getvalue()
+ self.__rbuf = StringIO(prefix)
+ return self.__rbuf
+
+
+class TFileObjectTransport(TTransportBase):
+ """Wraps a file-like object to make it work as a Thrift transport."""
+
+ def __init__(self, fileobj):
+ self.fileobj = fileobj
+
+ def isOpen(self):
+ return True
+
+ def close(self):
+ self.fileobj.close()
+
+ def read(self, sz):
+ return self.fileobj.read(sz)
+
+ def write(self, buf):
+ self.fileobj.write(buf)
+
+ def flush(self):
+ self.fileobj.flush()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc
new file mode 100644
index 0000000..5e7c2fc
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTwisted.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTwisted.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTwisted.py
new file mode 100644
index 0000000..3ce3eb2
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTwisted.py
@@ -0,0 +1,221 @@
+#
+# 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.
+#
+
+from cStringIO import StringIO
+
+from zope.interface import implements, Interface, Attribute
+from twisted.internet.protocol import Protocol, ServerFactory, ClientFactory, \
+ connectionDone
+from twisted.internet import defer
+from twisted.protocols import basic
+from twisted.python import log
+from twisted.web import server, resource, http
+
+from thrift.transport import TTransport
+
+
+class TMessageSenderTransport(TTransport.TTransportBase):
+
+ def __init__(self):
+ self.__wbuf = StringIO()
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def flush(self):
+ msg = self.__wbuf.getvalue()
+ self.__wbuf = StringIO()
+ self.sendMessage(msg)
+
+ def sendMessage(self, message):
+ raise NotImplementedError
+
+
+class TCallbackTransport(TMessageSenderTransport):
+
+ def __init__(self, func):
+ TMessageSenderTransport.__init__(self)
+ self.func = func
+
+ def sendMessage(self, message):
+ self.func(message)
+
+
+class ThriftClientProtocol(basic.Int32StringReceiver):
+
+ MAX_LENGTH = 2 ** 31 - 1
+
+ def __init__(self, client_class, iprot_factory, oprot_factory=None):
+ self._client_class = client_class
+ self._iprot_factory = iprot_factory
+ if oprot_factory is None:
+ self._oprot_factory = iprot_factory
+ else:
+ self._oprot_factory = oprot_factory
+
+ self.recv_map = {}
+ self.started = defer.Deferred()
+
+ def dispatch(self, msg):
+ self.sendString(msg)
+
+ def connectionMade(self):
+ tmo = TCallbackTransport(self.dispatch)
+ self.client = self._client_class(tmo, self._oprot_factory)
+ self.started.callback(self.client)
+
+ def connectionLost(self, reason=connectionDone):
+ for k, v in self.client._reqs.iteritems():
+ tex = TTransport.TTransportException(
+ type=TTransport.TTransportException.END_OF_FILE,
+ message='Connection closed')
+ v.errback(tex)
+
+ def stringReceived(self, frame):
+ tr = TTransport.TMemoryBuffer(frame)
+ iprot = self._iprot_factory.getProtocol(tr)
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+
+ try:
+ method = self.recv_map[fname]
+ except KeyError:
+ method = getattr(self.client, 'recv_' + fname)
+ self.recv_map[fname] = method
+
+ method(iprot, mtype, rseqid)
+
+
+class ThriftServerProtocol(basic.Int32StringReceiver):
+
+ MAX_LENGTH = 2 ** 31 - 1
+
+ def dispatch(self, msg):
+ self.sendString(msg)
+
+ def processError(self, error):
+ self.transport.loseConnection()
+
+ def processOk(self, _, tmo):
+ msg = tmo.getvalue()
+
+ if len(msg) > 0:
+ self.dispatch(msg)
+
+ def stringReceived(self, frame):
+ tmi = TTransport.TMemoryBuffer(frame)
+ tmo = TTransport.TMemoryBuffer()
+
+ iprot = self.factory.iprot_factory.getProtocol(tmi)
+ oprot = self.factory.oprot_factory.getProtocol(tmo)
+
+ d = self.factory.processor.process(iprot, oprot)
+ d.addCallbacks(self.processOk, self.processError,
+ callbackArgs=(tmo,))
+
+
+class IThriftServerFactory(Interface):
+
+ processor = Attribute("Thrift processor")
+
+ iprot_factory = Attribute("Input protocol factory")
+
+ oprot_factory = Attribute("Output protocol factory")
+
+
+class IThriftClientFactory(Interface):
+
+ client_class = Attribute("Thrift client class")
+
+ iprot_factory = Attribute("Input protocol factory")
+
+ oprot_factory = Attribute("Output protocol factory")
+
+
+class ThriftServerFactory(ServerFactory):
+
+ implements(IThriftServerFactory)
+
+ protocol = ThriftServerProtocol
+
+ def __init__(self, processor, iprot_factory, oprot_factory=None):
+ self.processor = processor
+ self.iprot_factory = iprot_factory
+ if oprot_factory is None:
+ self.oprot_factory = iprot_factory
+ else:
+ self.oprot_factory = oprot_factory
+
+
+class ThriftClientFactory(ClientFactory):
+
+ implements(IThriftClientFactory)
+
+ protocol = ThriftClientProtocol
+
+ def __init__(self, client_class, iprot_factory, oprot_factory=None):
+ self.client_class = client_class
+ self.iprot_factory = iprot_factory
+ if oprot_factory is None:
+ self.oprot_factory = iprot_factory
+ else:
+ self.oprot_factory = oprot_factory
+
+ def buildProtocol(self, addr):
+ p = self.protocol(self.client_class, self.iprot_factory,
+ self.oprot_factory)
+ p.factory = self
+ return p
+
+
+class ThriftResource(resource.Resource):
+
+ allowedMethods = ('POST',)
+
+ def __init__(self, processor, inputProtocolFactory,
+ outputProtocolFactory=None):
+ resource.Resource.__init__(self)
+ self.inputProtocolFactory = inputProtocolFactory
+ if outputProtocolFactory is None:
+ self.outputProtocolFactory = inputProtocolFactory
+ else:
+ self.outputProtocolFactory = outputProtocolFactory
+ self.processor = processor
+
+ def getChild(self, path, request):
+ return self
+
+ def _cbProcess(self, _, request, tmo):
+ msg = tmo.getvalue()
+ request.setResponseCode(http.OK)
+ request.setHeader("content-type", "application/x-thrift")
+ request.write(msg)
+ request.finish()
+
+ def render_POST(self, request):
+ request.content.seek(0, 0)
+ data = request.content.read()
+ tmi = TTransport.TMemoryBuffer(data)
+ tmo = TTransport.TMemoryBuffer()
+
+ iprot = self.inputProtocolFactory.getProtocol(tmi)
+ oprot = self.outputProtocolFactory.getProtocol(tmo)
+
+ d = self.processor.process(iprot, oprot)
+ d.addCallback(self._cbProcess, request, tmo)
+ return server.NOT_DONE_YET
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TZlibTransport.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TZlibTransport.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TZlibTransport.py
new file mode 100644
index 0000000..e90586e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TZlibTransport.py
@@ -0,0 +1,249 @@
+#
+# 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.
+#
+
+"""TZlibTransport provides a compressed transport and transport factory
+class, using the python standard library zlib module to implement
+data compression.
+"""
+
+from __future__ import division
+import zlib
+from cStringIO import StringIO
+
+from thrift.transport.TTransport import TTransportBase, CReadableTransport
+
+
+class TZlibTransportFactory(object):
+ """Factory transport that builds zlib compressed transports.
+
+ This factory caches the last single client/transport that it was passed
+ and returns the same TZlibTransport object that was created.
+
+ This caching means the TServer class will get the _same_ transport
+ object for both input and output transports from this factory.
+ (For non-threaded scenarios only, since the cache only holds one object)
+
+ The purpose of this caching is to allocate only one TZlibTransport where
+ only one is really needed (since it must have separate read/write buffers),
+ and makes the statistics from getCompSavings() and getCompRatio()
+ easier to understand.
+ """
+ # class scoped cache of last transport given and zlibtransport returned
+ _last_trans = None
+ _last_z = None
+
+ def getTransport(self, trans, compresslevel=9):
+ """Wrap a transport, trans, with the TZlibTransport
+ compressed transport class, returning a new
+ transport to the caller.
+
+ @param compresslevel: The zlib compression level, ranging
+ from 0 (no compression) to 9 (best compression). Defaults to 9.
+ @type compresslevel: int
+
+ This method returns a TZlibTransport which wraps the
+ passed C{trans} TTransport derived instance.
+ """
+ if trans == self._last_trans:
+ return self._last_z
+ ztrans = TZlibTransport(trans, compresslevel)
+ self._last_trans = trans
+ self._last_z = ztrans
+ return ztrans
+
+
+class TZlibTransport(TTransportBase, CReadableTransport):
+ """Class that wraps a transport with zlib, compressing writes
+ and decompresses reads, using the python standard
+ library zlib module.
+ """
+ # Read buffer size for the python fastbinary C extension,
+ # the TBinaryProtocolAccelerated class.
+ DEFAULT_BUFFSIZE = 4096
+
+ def __init__(self, trans, compresslevel=9):
+ """Create a new TZlibTransport, wrapping C{trans}, another
+ TTransport derived object.
+
+ @param trans: A thrift transport object, i.e. a TSocket() object.
+ @type trans: TTransport
+ @param compresslevel: The zlib compression level, ranging
+ from 0 (no compression) to 9 (best compression). Default is 9.
+ @type compresslevel: int
+ """
+ self.__trans = trans
+ self.compresslevel = compresslevel
+ self.__rbuf = StringIO()
+ self.__wbuf = StringIO()
+ self._init_zlib()
+ self._init_stats()
+
+ def _reinit_buffers(self):
+ """Internal method to initialize/reset the internal StringIO objects
+ for read and write buffers.
+ """
+ self.__rbuf = StringIO()
+ self.__wbuf = StringIO()
+
+ def _init_stats(self):
+ """Internal method to reset the internal statistics counters
+ for compression ratios and bandwidth savings.
+ """
+ self.bytes_in = 0
+ self.bytes_out = 0
+ self.bytes_in_comp = 0
+ self.bytes_out_comp = 0
+
+ def _init_zlib(self):
+ """Internal method for setting up the zlib compression and
+ decompression objects.
+ """
+ self._zcomp_read = zlib.decompressobj()
+ self._zcomp_write = zlib.compressobj(self.compresslevel)
+
+ def getCompRatio(self):
+ """Get the current measured compression ratios (in,out) from
+ this transport.
+
+ Returns a tuple of:
+ (inbound_compression_ratio, outbound_compression_ratio)
+
+ The compression ratios are computed as:
+ compressed / uncompressed
+
+ E.g., data that compresses by 10x will have a ratio of: 0.10
+ and data that compresses to half of ts original size will
+ have a ratio of 0.5
+
+ None is returned if no bytes have yet been processed in
+ a particular direction.
+ """
+ r_percent, w_percent = (None, None)
+ if self.bytes_in > 0:
+ r_percent = self.bytes_in_comp / self.bytes_in
+ if self.bytes_out > 0:
+ w_percent = self.bytes_out_comp / self.bytes_out
+ return (r_percent, w_percent)
+
+ def getCompSavings(self):
+ """Get the current count of saved bytes due to data
+ compression.
+
+ Returns a tuple of:
+ (inbound_saved_bytes, outbound_saved_bytes)
+
+ Note: if compression is actually expanding your
+ data (only likely with very tiny thrift objects), then
+ the values returned will be negative.
+ """
+ r_saved = self.bytes_in - self.bytes_in_comp
+ w_saved = self.bytes_out - self.bytes_out_comp
+ return (r_saved, w_saved)
+
+ def isOpen(self):
+ """Return the underlying transport's open status"""
+ return self.__trans.isOpen()
+
+ def open(self):
+ """Open the underlying transport"""
+ self._init_stats()
+ return self.__trans.open()
+
+ def listen(self):
+ """Invoke the underlying transport's listen() method"""
+ self.__trans.listen()
+
+ def accept(self):
+ """Accept connections on the underlying transport"""
+ return self.__trans.accept()
+
+ def close(self):
+ """Close the underlying transport,"""
+ self._reinit_buffers()
+ self._init_zlib()
+ return self.__trans.close()
+
+ def read(self, sz):
+ """Read up to sz bytes from the decompressed bytes buffer, and
+ read from the underlying transport if the decompression
+ buffer is empty.
+ """
+ ret = self.__rbuf.read(sz)
+ if len(ret) > 0:
+ return ret
+ # keep reading from transport until something comes back
+ while True:
+ if self.readComp(sz):
+ break
+ ret = self.__rbuf.read(sz)
+ return ret
+
+ def readComp(self, sz):
+ """Read compressed data from the underlying transport, then
+ decompress it and append it to the internal StringIO read buffer
+ """
+ zbuf = self.__trans.read(sz)
+ zbuf = self._zcomp_read.unconsumed_tail + zbuf
+ buf = self._zcomp_read.decompress(zbuf)
+ self.bytes_in += len(zbuf)
+ self.bytes_in_comp += len(buf)
+ old = self.__rbuf.read()
+ self.__rbuf = StringIO(old + buf)
+ if len(old) + len(buf) == 0:
+ return False
+ return True
+
+ def write(self, buf):
+ """Write some bytes, putting them into the internal write
+ buffer for eventual compression.
+ """
+ self.__wbuf.write(buf)
+
+ def flush(self):
+ """Flush any queued up data in the write buffer and ensure the
+ compression buffer is flushed out to the underlying transport
+ """
+ wout = self.__wbuf.getvalue()
+ if len(wout) > 0:
+ zbuf = self._zcomp_write.compress(wout)
+ self.bytes_out += len(wout)
+ self.bytes_out_comp += len(zbuf)
+ else:
+ zbuf = ''
+ ztail = self._zcomp_write.flush(zlib.Z_SYNC_FLUSH)
+ self.bytes_out_comp += len(ztail)
+ if (len(zbuf) + len(ztail)) > 0:
+ self.__wbuf = StringIO()
+ self.__trans.write(zbuf + ztail)
+ self.__trans.flush()
+
+ @property
+ def cstringio_buf(self):
+ """Implement the CReadableTransport interface"""
+ return self.__rbuf
+
+ def cstringio_refill(self, partialread, reqlen):
+ """Implement the CReadableTransport interface for refill"""
+ retstring = partialread
+ if reqlen < self.DEFAULT_BUFFSIZE:
+ retstring += self.read(self.DEFAULT_BUFFSIZE)
+ while len(retstring) < reqlen:
+ retstring += self.read(reqlen - len(retstring))
+ self.__rbuf = StringIO(retstring)
+ return self.__rbuf
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.py
new file mode 100644
index 0000000..c9596d9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.py
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+__all__ = ['TTransport', 'TSocket', 'THttpClient', 'TZlibTransport']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc
new file mode 100644
index 0000000..6f04147
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc differ
[20/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/ttypes.py
new file mode 100644
index 0000000..a3bba10
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/ttypes.py
@@ -0,0 +1,460 @@
+#
+# 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 Group:
+ """
+ Attributes:
+ - groupName
+ - description
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'groupName', None, None, ), # 1
+ (2, TType.STRING, 'description', None, None, ), # 2
+ )
+
+ def __init__(self, groupName=None, description=None,):
+ self.groupName = groupName
+ self.description = description
+
+ 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.groupName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.description = 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('Group')
+ if self.groupName is not None:
+ oprot.writeFieldBegin('groupName', TType.STRING, 1)
+ oprot.writeString(self.groupName)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 2)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.groupName is None:
+ raise TProtocol.TProtocolException(message='Required field groupName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.groupName)
+ value = (value * 31) ^ hash(self.description)
+ 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 Project:
+ """
+ Attributes:
+ - projectID
+ - owner
+ - name
+ - description
+ - creationTime
+ - sharedUsers
+ - sharedGroups
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'projectID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'owner', None, None, ), # 2
+ (3, TType.STRING, 'name', None, None, ), # 3
+ (4, TType.STRING, 'description', None, None, ), # 4
+ (5, TType.I64, 'creationTime', None, None, ), # 5
+ (6, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 6
+ (7, TType.LIST, 'sharedGroups', (TType.STRING,None), None, ), # 7
+ )
+
+ def __init__(self, projectID=thrift_spec[1][4], owner=None, name=None, description=None, creationTime=None, sharedUsers=None, sharedGroups=None,):
+ self.projectID = projectID
+ self.owner = owner
+ self.name = name
+ self.description = description
+ self.creationTime = creationTime
+ self.sharedUsers = sharedUsers
+ self.sharedGroups = sharedGroups
+
+ 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.projectID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.owner = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.name = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.description = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.sharedUsers = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString();
+ self.sharedUsers.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.sharedGroups = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = iprot.readString();
+ self.sharedGroups.append(_elem11)
+ 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('Project')
+ if self.projectID is not None:
+ oprot.writeFieldBegin('projectID', TType.STRING, 1)
+ oprot.writeString(self.projectID)
+ oprot.writeFieldEnd()
+ if self.owner is not None:
+ oprot.writeFieldBegin('owner', TType.STRING, 2)
+ oprot.writeString(self.owner)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 3)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 4)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 5)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.sharedUsers is not None:
+ oprot.writeFieldBegin('sharedUsers', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
+ for iter12 in self.sharedUsers:
+ oprot.writeString(iter12)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.sharedGroups is not None:
+ oprot.writeFieldBegin('sharedGroups', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRING, len(self.sharedGroups))
+ for iter13 in self.sharedGroups:
+ oprot.writeString(iter13)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.projectID is None:
+ raise TProtocol.TProtocolException(message='Required field projectID is unset!')
+ if self.owner is None:
+ raise TProtocol.TProtocolException(message='Required field owner is unset!')
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.projectID)
+ value = (value * 31) ^ hash(self.owner)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.description)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.sharedUsers)
+ value = (value * 31) ^ hash(self.sharedGroups)
+ 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 User:
+ """
+ Attributes:
+ - userName
+ - groupList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'userName', None, None, ), # 1
+ (2, TType.LIST, 'groupList', (TType.STRUCT,(Group, Group.thrift_spec)), None, ), # 2
+ )
+
+ def __init__(self, userName=None, groupList=None,):
+ self.userName = userName
+ self.groupList = groupList
+
+ 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.userName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.LIST:
+ self.groupList = []
+ (_etype17, _size14) = iprot.readListBegin()
+ for _i18 in xrange(_size14):
+ _elem19 = Group()
+ _elem19.read(iprot)
+ self.groupList.append(_elem19)
+ 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('User')
+ if self.userName is not None:
+ oprot.writeFieldBegin('userName', TType.STRING, 1)
+ oprot.writeString(self.userName)
+ oprot.writeFieldEnd()
+ if self.groupList is not None:
+ oprot.writeFieldBegin('groupList', TType.LIST, 2)
+ oprot.writeListBegin(TType.STRUCT, len(self.groupList))
+ for iter20 in self.groupList:
+ iter20.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.userName is None:
+ raise TProtocol.TProtocolException(message='Required field userName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.userName)
+ value = (value * 31) ^ hash(self.groupList)
+ 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 Gateway:
+ """
+ Attributes:
+ - gatewayId
+ - gatewayName
+ - domain
+ - emailAddress
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'gatewayId', None, None, ), # 1
+ (2, TType.STRING, 'gatewayName', None, None, ), # 2
+ (3, TType.STRING, 'domain', None, None, ), # 3
+ (4, TType.STRING, 'emailAddress', None, None, ), # 4
+ )
+
+ def __init__(self, gatewayId=None, gatewayName=None, domain=None, emailAddress=None,):
+ self.gatewayId = gatewayId
+ self.gatewayName = gatewayName
+ self.domain = domain
+ self.emailAddress = emailAddress
+
+ 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.gatewayId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.domain = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.emailAddress = 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('Gateway')
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 1)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.gatewayName is not None:
+ oprot.writeFieldBegin('gatewayName', TType.STRING, 2)
+ oprot.writeString(self.gatewayName)
+ oprot.writeFieldEnd()
+ if self.domain is not None:
+ oprot.writeFieldBegin('domain', TType.STRING, 3)
+ oprot.writeString(self.domain)
+ oprot.writeFieldEnd()
+ if self.emailAddress is not None:
+ oprot.writeFieldBegin('emailAddress', TType.STRING, 4)
+ oprot.writeString(self.emailAddress)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.gatewayName)
+ value = (value * 31) ^ hash(self.domain)
+ value = (value * 31) ^ hash(self.emailAddress)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/ttypes.pyc
new file mode 100644
index 0000000..a20c81a
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc
index bf85e3f..44b292c 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py
index dce34d6..1716cdf 100644
--- a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py
@@ -33,8 +33,8 @@ class AppCatalog:
transport.open()
- client_id = r'XXXXXXXXXXXX'
- client_secret = r'XXXXXXXX'
+ client_id = r'XXXXXXXXXX'
+ client_secret = r'XXXXXXXXXXX'
client = BackendApplicationClient(client_id=client_id)
oauth = OAuth2Session(client=client)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc
index 5774dbf..6fbba45 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc
index b2d149f..5a53b9b 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc
index d44337b..a133987 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc
index 8b7f8b1..c7b8992 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc
index 42aabd6..2759405 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc
index 981be1c..8dfe443 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc
index f56fe4a..642147f 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc
index ca53f73..9075e73 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc
index a94c5e2..7fd3984 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc
index 33fcc1c..060f414 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc
index ef72ead..b8d4301 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc
index 144e9b9..6fa359e 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc
index ba42260..2c81a27 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc
index b3bb83c..73666e6 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc
index f0e0034..14d0f3e 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc
index 4fb8cfc..cfac9f1 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc
index 36167e2..3153b65 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc
index 704ca78..01ca37b 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc
index e54cd41..f27c624 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc
index 638440f..f8f062f 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc
index 744413f..73413cb 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc
index 73048c5..db56b17 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc
index 2afd1e2..16d2dc4 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc
index 3afed92..72a3d82 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc
index 2a2fba7..83b4c49 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc
index 9e3374c..5ab62a8 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc
index c94e072..c3a7783 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc
index a6a29df..584b6d3 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc
index 2577f2b..3294077 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc
index 3485168..c9c21dd 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc
index dc82372..23b91ef 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc
index 3cb2bed..0858f83 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc
index b806d59..1e7e53c 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc
index eb40934..7119cf7 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc
index ad38d28..56c2145 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc
index 78b00cc..a128e34 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc
index 1b27961..3c45c20 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc
index 6a02e2f..2129a98 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc
index b4638db..37bbe5d 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc
index 12a05dd..49ea427 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc
index 1a93a89..d81ac40 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc
index a0eec2f..d523971 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc
index 46e6627..9ff4c25 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc
index c87be3d..62c39c2 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc
index 6dc6d9d..89017bc 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc
index b8c2604..7d500cb 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc
index f7b1956..ab2afab 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc
index 8332279..ff32125 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc
index dfe4eb0..511575c 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc
index 07f7166..c30c6bf 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc
index 6244a8e..54bc9ff 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc
index ad3edc6..cbd08b0 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc
index 23c9673..622721c 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc
index 4ed336e..c7d3beb 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc
index 820528b..de391b4 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc
index 364840e..c44d31d 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc
index 27429d0..18bd481 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc
index e152584..680ac9d 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc
index 6997fb0..4e5300b 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc
index 3a2b6e8..edfaaf8 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc
index 08a1ef8..6c15036 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc
index 18ba5f6..bb15369 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc
index 0203575..01a91e1 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc
index de0c9c1..cad6ffb 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc
index 2748ee1..996737d 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc
index 518db0a..7e61828 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc
index 5b238c6..0b02fd8 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc
index c9050e3..5a618b7 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc
index 829e502..504e288 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc
index f8f5649..b7534b2 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc
index 85a6486..c76987a 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc
index 4e8a9e4..be147d6 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc
index caaf521..90cf0ea 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc
index 291749d..9f0b21d 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSSLSocket.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc
index fb5939b..1d3f379 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TSocket.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc
index 5e7c2fc..985c59e 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/TTransport.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc
index 6f04147..a43fb77 100644
Binary files a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/transport/__init__.pyc differ
[29/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/airavata_cli.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/airavata_cli.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/airavata_cli.py
new file mode 100644
index 0000000..3fdfb83
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/airavata_cli.py
@@ -0,0 +1,134 @@
+import sys,random,time
+import threading
+from expcatalog.expcatalog import ExpCatalog
+from appcatalog.appcatalog import AppCatalog
+
+VERSION = "0.0.1"
+
+BANNER = """
+Welcome to Airavata CLI v%s - Wirtten in python
+
+""" % VERSION
+
+exitMsg = "Bye, See you soon :)"
+cli_prompt = "=> "
+
+
+class AiravataCLI:
+
+ def __init__(self, hostName, port):
+ self.exit = False
+ self.expCatalog = ExpCatalog(hostName, port)
+ self.AppCatalog = AppCatalog(hostName, port)
+ self.experimentState = "Hukarz"
+ self.jobStateMapper = {
+ 0: "SUBMITTED",
+ 1: "QUEUED",
+ 2: "ACTIVE",
+ 3: "COMPLETE",
+ 4: "CANCELED",
+ 5: "FAILED",
+ 6: "SUSPENDED",
+ 7: "UNKNOWN"
+ }
+
+ self.experimentStateMapper = {
+ 0: "CREATED",
+ 1: "VALIDATED",
+ 2: "SCHEDULED",
+ 3: "LAUNCHED",
+ 4: "EXECUTING",
+ 5: "CANCELLING",
+ 6: "CANCELED",
+ 7: "COMPLETED",
+ 8: "FAILED"
+ }
+
+ # set initial properties
+ def printVersion(self):
+ print (BANNER)
+
+ def start(self):
+ command ='expid gaussianfromclient11_62221967-646d-475c-9c46-ed093d09c610'
+ while not self.exit:
+ cInputs = command.split(" ")
+ if cInputs[0] == 'q' or cInputs[0] == 'quit':
+ print (exitMsg)
+ self.exit = True
+ elif cInputs[0] == 'expid':
+ self.monitorExperiment(cInputs[1])
+ else:
+ print ("not yet implemented")
+
+ if not self.exit:
+ command = raw_input(cli_prompt)
+
+ def monitorExperiment(self, expId):
+ experimentSum = self.expCatalog.getExperimentSummary(expId) ## get experiment id from input and pass it to this
+ self.experimentState = self.experimentStateMapper.get(experimentSum.status.state, "Hukarz")
+ indent = " |- "
+ print (indent + "name :" + experimentSum.name)
+ print (indent + "Id :" + experimentSum.id)
+ print (indent + "status :" + self.experimentState)
+ indent = " " + indent
+ for job in experimentSum.jobs:
+ print (indent + "jobId :" + job.jobId)
+ print (indent + "jobStatus :" + self.jobStateMapper.get(job.jobStatus.jobState, "Hukarz"))
+ print (indent + " ---- ")
+
+ return self.experimentState
+
+ def createExperiment(self, applicationName):
+ return self.expCatalog.createExperiment(applicationName)
+
+ def cancelExperiment(self, expId):
+ return self.expCatalog.cancelExperiment(expId)
+
+ def computer_resources(self):
+ return self.AppCatalog.computer_resources()
+
+ def list_of_applications(self, gatewayId):
+ return self.AppCatalog.list_of_applications(gatewayId)
+
+ def application_deployments(self, applicationInterfaceId):
+ return self.AppCatalog.application_deployments(applicationInterfaceId)
+
+ def module_descriptions(self,gatewayId):
+ return self.AppCatalog.module_descriptions(gatewayId)
+
+ def get_gatewaylist(self):
+ return self.AppCatalog.get_gatewaylist()
+
+ def launchExperiment(self, expId):
+ self.expCatalog.launchExperiment(expId)
+ # while True:
+ # self.monitorExperiment(expId)
+
+
+ def monitorStatus(self, expId):
+ self.sendCancel = False
+ delay = 7
+ while True:
+ state = (self.monitorExperiment(expId))
+ if (state == "EXECUTING"):
+ if (not self.sendCancel):
+ if delay == 0:
+ print ("sending cancel request for " + expId)
+ self.cancelExperiment(expId)
+ print ("sent cancel request for " + expId)
+ self.sendCancel = True
+
+ else:
+ delay -= 1
+
+ if (state == "COMPLETED" or state == "FAILED" or state == "CANCELLED"):
+ return
+ # airavata_cli.monitorExperiment("Einstein_c33d855b-8c10-4d2a-961a-4b55aff807f7")
+ time.sleep(2)
+
+ def experiment_statistics(self, gatewayId, fromTime, toTime):
+ return self.expCatalog.experiment_statistics(gatewayId,fromTime,toTime)
+
+ def createExperiment1(self,authzToken,gatewayId,experiment):
+ return self.expCatalog.create_experiment1(authzToken,gatewayId,experiment)
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/airavata_cli.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/airavata_cli.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/airavata_cli.pyc
new file mode 100644
index 0000000..f5fecc3
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/airavata_cli.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__init__.pyc
new file mode 100644
index 0000000..80ae182
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..0399757
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__init__.pyc
new file mode 100644
index 0000000..cbee7a2
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..5de84f4
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata-remote b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata-remote
new file mode 100644
index 0000000..1e6a3c0
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata-remote
@@ -0,0 +1,955 @@
+#!/usr/bin/env python
+#
+# Autogenerated by Thrift Compiler (0.9.2)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+# options string: py
+#
+
+import sys
+import pprint
+from urlparse import urlparse
+from thrift.transport import TTransport
+from thrift.transport import TSocket
+from thrift.transport import TSSLSocket
+from thrift.transport import THttpClient
+from thrift.protocol import TBinaryProtocol
+
+from apache.airavata.api import Airavata
+from apache.airavata.api.ttypes import *
+
+if len(sys.argv) <= 1 or sys.argv[1] == '--help':
+ print('')
+ print('Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] [-s[sl]] function [arg1 [arg2...]]')
+ print('')
+ print('Functions:')
+ print(' string getAPIVersion(AuthzToken authzToken)')
+ print(' string addGateway(AuthzToken authzToken, Gateway gateway)')
+ print(' void updateGateway(AuthzToken authzToken, string gatewayId, Gateway updatedGateway)')
+ print(' Gateway getGateway(AuthzToken authzToken, string gatewayId)')
+ print(' bool deleteGateway(AuthzToken authzToken, string gatewayId)')
+ print(' getAllGateways(AuthzToken authzToken)')
+ print(' bool isGatewayExist(AuthzToken authzToken, string gatewayId)')
+ print(' string generateAndRegisterSSHKeys(AuthzToken authzToken, string gatewayId, string userName)')
+ print(' string getSSHPubKey(AuthzToken authzToken, string airavataCredStoreToken, string gatewayId)')
+ print(' getAllUserSSHPubKeys(AuthzToken authzToken, string userName)')
+ print(' string createProject(AuthzToken authzToken, string gatewayId, Project project)')
+ print(' void updateProject(AuthzToken authzToken, string projectId, Project updatedProject)')
+ print(' Project getProject(AuthzToken authzToken, string projectId)')
+ print(' bool deleteProject(AuthzToken authzToken, string projectId)')
+ print(' getUserProjects(AuthzToken authzToken, string gatewayId, string userName, i32 limit, i32 offset)')
+ print(' searchProjectsByProjectName(AuthzToken authzToken, string gatewayId, string userName, string projectName, i32 limit, i32 offset)')
+ print(' searchProjectsByProjectDesc(AuthzToken authzToken, string gatewayId, string userName, string description, i32 limit, i32 offset)')
+ print(' searchExperimentsByName(AuthzToken authzToken, string gatewayId, string userName, string expName, i32 limit, i32 offset)')
+ print(' searchExperimentsByDesc(AuthzToken authzToken, string gatewayId, string userName, string description, i32 limit, i32 offset)')
+ print(' searchExperimentsByApplication(AuthzToken authzToken, string gatewayId, string userName, string applicationId, i32 limit, i32 offset)')
+ print(' searchExperimentsByStatus(AuthzToken authzToken, string gatewayId, string userName, ExperimentState experimentState, i32 limit, i32 offset)')
+ print(' searchExperimentsByCreationTime(AuthzToken authzToken, string gatewayId, string userName, i64 fromTime, i64 toTime, i32 limit, i32 offset)')
+ print(' searchExperiments(AuthzToken authzToken, string gatewayId, string userName, filters, i32 limit, i32 offset)')
+ print(' ExperimentStatistics getExperimentStatistics(AuthzToken authzToken, string gatewayId, i64 fromTime, i64 toTime)')
+ print(' getExperimentsInProject(AuthzToken authzToken, string projectId, i32 limit, i32 offset)')
+ print(' getUserExperiments(AuthzToken authzToken, string gatewayId, string userName, i32 limit, i32 offset)')
+ print(' string createExperiment(AuthzToken authzToken, string gatewayId, ExperimentModel experiment)')
+ print(' bool deleteExperiment(AuthzToken authzToken, string experimentId)')
+ print(' ExperimentModel getExperiment(AuthzToken authzToken, string airavataExperimentId)')
+ print(' void updateExperiment(AuthzToken authzToken, string airavataExperimentId, ExperimentModel experiment)')
+ print(' void updateExperimentConfiguration(AuthzToken authzToken, string airavataExperimentId, UserConfigurationDataModel userConfiguration)')
+ print(' void updateResourceScheduleing(AuthzToken authzToken, string airavataExperimentId, ComputationalResourceSchedulingModel resourceScheduling)')
+ print(' bool validateExperiment(AuthzToken authzToken, string airavataExperimentId)')
+ print(' void launchExperiment(AuthzToken authzToken, string airavataExperimentId, string gatewayId)')
+ print(' ExperimentStatus getExperimentStatus(AuthzToken authzToken, string airavataExperimentId)')
+ print(' getExperimentOutputs(AuthzToken authzToken, string airavataExperimentId)')
+ print(' getIntermediateOutputs(AuthzToken authzToken, string airavataExperimentId)')
+ print(' getJobStatuses(AuthzToken authzToken, string airavataExperimentId)')
+ print(' getJobDetails(AuthzToken authzToken, string airavataExperimentId)')
+ print(' string cloneExperiment(AuthzToken authzToken, string existingExperimentID, string newExperimentName)')
+ print(' void terminateExperiment(AuthzToken authzToken, string airavataExperimentId, string gatewayId)')
+ print(' string registerApplicationModule(AuthzToken authzToken, string gatewayId, ApplicationModule applicationModule)')
+ print(' ApplicationModule getApplicationModule(AuthzToken authzToken, string appModuleId)')
+ print(' bool updateApplicationModule(AuthzToken authzToken, string appModuleId, ApplicationModule applicationModule)')
+ print(' getAllAppModules(AuthzToken authzToken, string gatewayId)')
+ print(' bool deleteApplicationModule(AuthzToken authzToken, string appModuleId)')
+ print(' string registerApplicationDeployment(AuthzToken authzToken, string gatewayId, ApplicationDeploymentDescription applicationDeployment)')
+ print(' ApplicationDeploymentDescription getApplicationDeployment(AuthzToken authzToken, string appDeploymentId)')
+ print(' bool updateApplicationDeployment(AuthzToken authzToken, string appDeploymentId, ApplicationDeploymentDescription applicationDeployment)')
+ print(' bool deleteApplicationDeployment(AuthzToken authzToken, string appDeploymentId)')
+ print(' getAllApplicationDeployments(AuthzToken authzToken, string gatewayId)')
+ print(' getAppModuleDeployedResources(AuthzToken authzToken, string appModuleId)')
+ print(' string registerApplicationInterface(AuthzToken authzToken, string gatewayId, ApplicationInterfaceDescription applicationInterface)')
+ print(' ApplicationInterfaceDescription getApplicationInterface(AuthzToken authzToken, string appInterfaceId)')
+ print(' bool updateApplicationInterface(AuthzToken authzToken, string appInterfaceId, ApplicationInterfaceDescription applicationInterface)')
+ print(' bool deleteApplicationInterface(AuthzToken authzToken, string appInterfaceId)')
+ print(' getAllApplicationInterfaceNames(AuthzToken authzToken, string gatewayId)')
+ print(' getAllApplicationInterfaces(AuthzToken authzToken, string gatewayId)')
+ print(' getApplicationInputs(AuthzToken authzToken, string appInterfaceId)')
+ print(' getApplicationOutputs(AuthzToken authzToken, string appInterfaceId)')
+ print(' getAvailableAppInterfaceComputeResources(AuthzToken authzToken, string appInterfaceId)')
+ print(' string registerComputeResource(AuthzToken authzToken, ComputeResourceDescription computeResourceDescription)')
+ print(' ComputeResourceDescription getComputeResource(AuthzToken authzToken, string computeResourceId)')
+ print(' getAllComputeResourceNames(AuthzToken authzToken)')
+ print(' bool updateComputeResource(AuthzToken authzToken, string computeResourceId, ComputeResourceDescription computeResourceDescription)')
+ print(' bool deleteComputeResource(AuthzToken authzToken, string computeResourceId)')
+ print(' string addLocalSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, LOCALSubmission localSubmission)')
+ print(' bool updateLocalSubmissionDetails(AuthzToken authzToken, string jobSubmissionInterfaceId, LOCALSubmission localSubmission)')
+ print(' LOCALSubmission getLocalJobSubmission(AuthzToken authzToken, string jobSubmissionId)')
+ print(' string addSSHJobSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, SSHJobSubmission sshJobSubmission)')
+ print(' string addSSHForkJobSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, SSHJobSubmission sshJobSubmission)')
+ print(' SSHJobSubmission getSSHJobSubmission(AuthzToken authzToken, string jobSubmissionId)')
+ print(' string addUNICOREJobSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, UnicoreJobSubmission unicoreJobSubmission)')
+ print(' UnicoreJobSubmission getUnicoreJobSubmission(AuthzToken authzToken, string jobSubmissionId)')
+ print(' string addCloudJobSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, CloudJobSubmission cloudSubmission)')
+ print(' CloudJobSubmission getCloudJobSubmission(AuthzToken authzToken, string jobSubmissionId)')
+ print(' bool updateSSHJobSubmissionDetails(AuthzToken authzToken, string jobSubmissionInterfaceId, SSHJobSubmission sshJobSubmission)')
+ print(' bool updateCloudJobSubmissionDetails(AuthzToken authzToken, string jobSubmissionInterfaceId, CloudJobSubmission sshJobSubmission)')
+ print(' bool updateUnicoreJobSubmissionDetails(AuthzToken authzToken, string jobSubmissionInterfaceId, UnicoreJobSubmission unicoreJobSubmission)')
+ print(' string addLocalDataMovementDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, LOCALDataMovement localDataMovement)')
+ print(' bool updateLocalDataMovementDetails(AuthzToken authzToken, string dataMovementInterfaceId, LOCALDataMovement localDataMovement)')
+ print(' LOCALDataMovement getLocalDataMovement(AuthzToken authzToken, string dataMovementId)')
+ print(' string addSCPDataMovementDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, SCPDataMovement scpDataMovement)')
+ print(' bool updateSCPDataMovementDetails(AuthzToken authzToken, string dataMovementInterfaceId, SCPDataMovement scpDataMovement)')
+ print(' SCPDataMovement getSCPDataMovement(AuthzToken authzToken, string dataMovementId)')
+ print(' string addUnicoreDataMovementDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, UnicoreDataMovement unicoreDataMovement)')
+ print(' bool updateUnicoreDataMovementDetails(AuthzToken authzToken, string dataMovementInterfaceId, UnicoreDataMovement unicoreDataMovement)')
+ print(' UnicoreDataMovement getUnicoreDataMovement(AuthzToken authzToken, string dataMovementId)')
+ print(' string addGridFTPDataMovementDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, GridFTPDataMovement gridFTPDataMovement)')
+ print(' bool updateGridFTPDataMovementDetails(AuthzToken authzToken, string dataMovementInterfaceId, GridFTPDataMovement gridFTPDataMovement)')
+ print(' GridFTPDataMovement getGridFTPDataMovement(AuthzToken authzToken, string dataMovementId)')
+ print(' bool changeJobSubmissionPriority(AuthzToken authzToken, string jobSubmissionInterfaceId, i32 newPriorityOrder)')
+ print(' bool changeDataMovementPriority(AuthzToken authzToken, string dataMovementInterfaceId, i32 newPriorityOrder)')
+ print(' bool changeJobSubmissionPriorities(AuthzToken authzToken, jobSubmissionPriorityMap)')
+ print(' bool changeDataMovementPriorities(AuthzToken authzToken, dataMovementPriorityMap)')
+ print(' bool deleteJobSubmissionInterface(AuthzToken authzToken, string computeResourceId, string jobSubmissionInterfaceId)')
+ print(' bool deleteDataMovementInterface(AuthzToken authzToken, string computeResourceId, string dataMovementInterfaceId)')
+ print(' string registerResourceJobManager(AuthzToken authzToken, ResourceJobManager resourceJobManager)')
+ print(' bool updateResourceJobManager(AuthzToken authzToken, string resourceJobManagerId, ResourceJobManager updatedResourceJobManager)')
+ print(' ResourceJobManager getResourceJobManager(AuthzToken authzToken, string resourceJobManagerId)')
+ print(' bool deleteResourceJobManager(AuthzToken authzToken, string resourceJobManagerId)')
+ print(' bool deleteBatchQueue(AuthzToken authzToken, string computeResourceId, string queueName)')
+ print(' string registerGatewayResourceProfile(AuthzToken authzToken, GatewayResourceProfile gatewayResourceProfile)')
+ print(' GatewayResourceProfile getGatewayResourceProfile(AuthzToken authzToken, string gatewayID)')
+ print(' bool updateGatewayResourceProfile(AuthzToken authzToken, string gatewayID, GatewayResourceProfile gatewayResourceProfile)')
+ print(' bool deleteGatewayResourceProfile(AuthzToken authzToken, string gatewayID)')
+ print(' bool addGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId, ComputeResourcePreference computeResourcePreference)')
+ print(' bool addGatewayDataStoragePreference(AuthzToken authzToken, string gatewayID, string dataMoveId, DataStoragePreference dataStoragePreference)')
+ print(' ComputeResourcePreference getGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId)')
+ print(' DataStoragePreference getGatewayDataStoragePreference(AuthzToken authzToken, string gatewayID, string dataMoveId)')
+ print(' getAllGatewayComputeResourcePreferences(AuthzToken authzToken, string gatewayID)')
+ print(' getAllGatewayDataStoragePreferences(AuthzToken authzToken, string gatewayID)')
+ print(' getAllGatewayResourceProfiles(AuthzToken authzToken)')
+ print(' bool updateGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId, ComputeResourcePreference computeResourcePreference)')
+ print(' bool updateGatewayDataStoragePreference(AuthzToken authzToken, string gatewayID, string dataMoveId, DataStoragePreference dataStoragePreference)')
+ print(' bool deleteGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId)')
+ print(' bool deleteGatewayDataStoragePreference(AuthzToken authzToken, string gatewayID, string dataMoveId)')
+ print(' getAllWorkflows(AuthzToken authzToken, string gatewayId)')
+ print(' Workflow getWorkflow(AuthzToken authzToken, string workflowTemplateId)')
+ print(' void deleteWorkflow(AuthzToken authzToken, string workflowTemplateId)')
+ print(' string registerWorkflow(AuthzToken authzToken, string gatewayId, Workflow workflow)')
+ print(' void updateWorkflow(AuthzToken authzToken, string workflowTemplateId, Workflow workflow)')
+ print(' string getWorkflowTemplateId(AuthzToken authzToken, string workflowName)')
+ print(' bool isWorkflowExistWithName(AuthzToken authzToken, string workflowName)')
+ print('')
+ sys.exit(0)
+
+pp = pprint.PrettyPrinter(indent = 2)
+host = 'localhost'
+port = 9090
+uri = ''
+framed = False
+ssl = False
+http = False
+argi = 1
+
+if sys.argv[argi] == '-h':
+ parts = sys.argv[argi+1].split(':')
+ host = parts[0]
+ if len(parts) > 1:
+ port = int(parts[1])
+ argi += 2
+
+if sys.argv[argi] == '-u':
+ url = urlparse(sys.argv[argi+1])
+ parts = url[1].split(':')
+ host = parts[0]
+ if len(parts) > 1:
+ port = int(parts[1])
+ else:
+ port = 80
+ uri = url[2]
+ if url[4]:
+ uri += '?%s' % url[4]
+ http = True
+ argi += 2
+
+if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
+ framed = True
+ argi += 1
+
+if sys.argv[argi] == '-s' or sys.argv[argi] == '-ssl':
+ ssl = True
+ argi += 1
+
+cmd = sys.argv[argi]
+args = sys.argv[argi+1:]
+
+if http:
+ transport = THttpClient.THttpClient(host, port, uri)
+else:
+ socket = TSSLSocket.TSSLSocket(host, port, validate=False) if ssl else TSocket.TSocket(host, port)
+ if framed:
+ transport = TTransport.TFramedTransport(socket)
+ else:
+ transport = TTransport.TBufferedTransport(socket)
+protocol = TBinaryProtocol.TBinaryProtocol(transport)
+client = Airavata.Client(protocol)
+transport.open()
+
+if cmd == 'getAPIVersion':
+ if len(args) != 1:
+ print('getAPIVersion requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAPIVersion(eval(args[0]),))
+
+elif cmd == 'addGateway':
+ if len(args) != 2:
+ print('addGateway requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.addGateway(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'updateGateway':
+ if len(args) != 3:
+ print('updateGateway requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateGateway(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getGateway':
+ if len(args) != 2:
+ print('getGateway requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getGateway(eval(args[0]),args[1],))
+
+elif cmd == 'deleteGateway':
+ if len(args) != 2:
+ print('deleteGateway requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGateway(eval(args[0]),args[1],))
+
+elif cmd == 'getAllGateways':
+ if len(args) != 1:
+ print('getAllGateways requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGateways(eval(args[0]),))
+
+elif cmd == 'isGatewayExist':
+ if len(args) != 2:
+ print('isGatewayExist requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.isGatewayExist(eval(args[0]),args[1],))
+
+elif cmd == 'generateAndRegisterSSHKeys':
+ if len(args) != 3:
+ print('generateAndRegisterSSHKeys requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.generateAndRegisterSSHKeys(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getSSHPubKey':
+ if len(args) != 3:
+ print('getSSHPubKey requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.getSSHPubKey(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllUserSSHPubKeys':
+ if len(args) != 2:
+ print('getAllUserSSHPubKeys requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllUserSSHPubKeys(eval(args[0]),args[1],))
+
+elif cmd == 'createProject':
+ if len(args) != 3:
+ print('createProject requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.createProject(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateProject':
+ if len(args) != 3:
+ print('updateProject requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateProject(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getProject':
+ if len(args) != 2:
+ print('getProject requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getProject(eval(args[0]),args[1],))
+
+elif cmd == 'deleteProject':
+ if len(args) != 2:
+ print('deleteProject requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteProject(eval(args[0]),args[1],))
+
+elif cmd == 'getUserProjects':
+ if len(args) != 5:
+ print('getUserProjects requires 5 args')
+ sys.exit(1)
+ pp.pprint(client.getUserProjects(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),))
+
+elif cmd == 'searchProjectsByProjectName':
+ if len(args) != 6:
+ print('searchProjectsByProjectName requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchProjectsByProjectName(eval(args[0]),args[1],args[2],args[3],eval(args[4]),eval(args[5]),))
+
+elif cmd == 'searchProjectsByProjectDesc':
+ if len(args) != 6:
+ print('searchProjectsByProjectDesc requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchProjectsByProjectDesc(eval(args[0]),args[1],args[2],args[3],eval(args[4]),eval(args[5]),))
+
+elif cmd == 'searchExperimentsByName':
+ if len(args) != 6:
+ print('searchExperimentsByName requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchExperimentsByName(eval(args[0]),args[1],args[2],args[3],eval(args[4]),eval(args[5]),))
+
+elif cmd == 'searchExperimentsByDesc':
+ if len(args) != 6:
+ print('searchExperimentsByDesc requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchExperimentsByDesc(eval(args[0]),args[1],args[2],args[3],eval(args[4]),eval(args[5]),))
+
+elif cmd == 'searchExperimentsByApplication':
+ if len(args) != 6:
+ print('searchExperimentsByApplication requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchExperimentsByApplication(eval(args[0]),args[1],args[2],args[3],eval(args[4]),eval(args[5]),))
+
+elif cmd == 'searchExperimentsByStatus':
+ if len(args) != 6:
+ print('searchExperimentsByStatus requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchExperimentsByStatus(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),eval(args[5]),))
+
+elif cmd == 'searchExperimentsByCreationTime':
+ if len(args) != 7:
+ print('searchExperimentsByCreationTime requires 7 args')
+ sys.exit(1)
+ pp.pprint(client.searchExperimentsByCreationTime(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),eval(args[5]),eval(args[6]),))
+
+elif cmd == 'searchExperiments':
+ if len(args) != 6:
+ print('searchExperiments requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchExperiments(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),eval(args[5]),))
+
+elif cmd == 'getExperimentStatistics':
+ if len(args) != 4:
+ print('getExperimentStatistics requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.getExperimentStatistics(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getExperimentsInProject':
+ if len(args) != 4:
+ print('getExperimentsInProject requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.getExperimentsInProject(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getUserExperiments':
+ if len(args) != 5:
+ print('getUserExperiments requires 5 args')
+ sys.exit(1)
+ pp.pprint(client.getUserExperiments(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),))
+
+elif cmd == 'createExperiment':
+ if len(args) != 3:
+ print('createExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.createExperiment(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteExperiment':
+ if len(args) != 2:
+ print('deleteExperiment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteExperiment(eval(args[0]),args[1],))
+
+elif cmd == 'getExperiment':
+ if len(args) != 2:
+ print('getExperiment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getExperiment(eval(args[0]),args[1],))
+
+elif cmd == 'updateExperiment':
+ if len(args) != 3:
+ print('updateExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateExperiment(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateExperimentConfiguration':
+ if len(args) != 3:
+ print('updateExperimentConfiguration requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateExperimentConfiguration(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateResourceScheduleing':
+ if len(args) != 3:
+ print('updateResourceScheduleing requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateResourceScheduleing(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'validateExperiment':
+ if len(args) != 2:
+ print('validateExperiment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.validateExperiment(eval(args[0]),args[1],))
+
+elif cmd == 'launchExperiment':
+ if len(args) != 3:
+ print('launchExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.launchExperiment(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getExperimentStatus':
+ if len(args) != 2:
+ print('getExperimentStatus requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getExperimentStatus(eval(args[0]),args[1],))
+
+elif cmd == 'getExperimentOutputs':
+ if len(args) != 2:
+ print('getExperimentOutputs requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getExperimentOutputs(eval(args[0]),args[1],))
+
+elif cmd == 'getIntermediateOutputs':
+ if len(args) != 2:
+ print('getIntermediateOutputs requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getIntermediateOutputs(eval(args[0]),args[1],))
+
+elif cmd == 'getJobStatuses':
+ if len(args) != 2:
+ print('getJobStatuses requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getJobStatuses(eval(args[0]),args[1],))
+
+elif cmd == 'getJobDetails':
+ if len(args) != 2:
+ print('getJobDetails requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getJobDetails(eval(args[0]),args[1],))
+
+elif cmd == 'cloneExperiment':
+ if len(args) != 3:
+ print('cloneExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.cloneExperiment(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'terminateExperiment':
+ if len(args) != 3:
+ print('terminateExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.terminateExperiment(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'registerApplicationModule':
+ if len(args) != 3:
+ print('registerApplicationModule requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.registerApplicationModule(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getApplicationModule':
+ if len(args) != 2:
+ print('getApplicationModule requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationModule(eval(args[0]),args[1],))
+
+elif cmd == 'updateApplicationModule':
+ if len(args) != 3:
+ print('updateApplicationModule requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateApplicationModule(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getAllAppModules':
+ if len(args) != 2:
+ print('getAllAppModules requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllAppModules(eval(args[0]),args[1],))
+
+elif cmd == 'deleteApplicationModule':
+ if len(args) != 2:
+ print('deleteApplicationModule requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteApplicationModule(eval(args[0]),args[1],))
+
+elif cmd == 'registerApplicationDeployment':
+ if len(args) != 3:
+ print('registerApplicationDeployment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.registerApplicationDeployment(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getApplicationDeployment':
+ if len(args) != 2:
+ print('getApplicationDeployment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationDeployment(eval(args[0]),args[1],))
+
+elif cmd == 'updateApplicationDeployment':
+ if len(args) != 3:
+ print('updateApplicationDeployment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateApplicationDeployment(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteApplicationDeployment':
+ if len(args) != 2:
+ print('deleteApplicationDeployment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteApplicationDeployment(eval(args[0]),args[1],))
+
+elif cmd == 'getAllApplicationDeployments':
+ if len(args) != 2:
+ print('getAllApplicationDeployments requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllApplicationDeployments(eval(args[0]),args[1],))
+
+elif cmd == 'getAppModuleDeployedResources':
+ if len(args) != 2:
+ print('getAppModuleDeployedResources requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAppModuleDeployedResources(eval(args[0]),args[1],))
+
+elif cmd == 'registerApplicationInterface':
+ if len(args) != 3:
+ print('registerApplicationInterface requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.registerApplicationInterface(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getApplicationInterface':
+ if len(args) != 2:
+ print('getApplicationInterface requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationInterface(eval(args[0]),args[1],))
+
+elif cmd == 'updateApplicationInterface':
+ if len(args) != 3:
+ print('updateApplicationInterface requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateApplicationInterface(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteApplicationInterface':
+ if len(args) != 2:
+ print('deleteApplicationInterface requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteApplicationInterface(eval(args[0]),args[1],))
+
+elif cmd == 'getAllApplicationInterfaceNames':
+ if len(args) != 2:
+ print('getAllApplicationInterfaceNames requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllApplicationInterfaceNames(eval(args[0]),args[1],))
+
+elif cmd == 'getAllApplicationInterfaces':
+ if len(args) != 2:
+ print('getAllApplicationInterfaces requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllApplicationInterfaces(eval(args[0]),args[1],))
+
+elif cmd == 'getApplicationInputs':
+ if len(args) != 2:
+ print('getApplicationInputs requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationInputs(eval(args[0]),args[1],))
+
+elif cmd == 'getApplicationOutputs':
+ if len(args) != 2:
+ print('getApplicationOutputs requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationOutputs(eval(args[0]),args[1],))
+
+elif cmd == 'getAvailableAppInterfaceComputeResources':
+ if len(args) != 2:
+ print('getAvailableAppInterfaceComputeResources requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAvailableAppInterfaceComputeResources(eval(args[0]),args[1],))
+
+elif cmd == 'registerComputeResource':
+ if len(args) != 2:
+ print('registerComputeResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerComputeResource(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getComputeResource':
+ if len(args) != 2:
+ print('getComputeResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getComputeResource(eval(args[0]),args[1],))
+
+elif cmd == 'getAllComputeResourceNames':
+ if len(args) != 1:
+ print('getAllComputeResourceNames requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAllComputeResourceNames(eval(args[0]),))
+
+elif cmd == 'updateComputeResource':
+ if len(args) != 3:
+ print('updateComputeResource requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateComputeResource(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteComputeResource':
+ if len(args) != 2:
+ print('deleteComputeResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteComputeResource(eval(args[0]),args[1],))
+
+elif cmd == 'addLocalSubmissionDetails':
+ if len(args) != 4:
+ print('addLocalSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addLocalSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'updateLocalSubmissionDetails':
+ if len(args) != 3:
+ print('updateLocalSubmissionDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateLocalSubmissionDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getLocalJobSubmission':
+ if len(args) != 2:
+ print('getLocalJobSubmission requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getLocalJobSubmission(eval(args[0]),args[1],))
+
+elif cmd == 'addSSHJobSubmissionDetails':
+ if len(args) != 4:
+ print('addSSHJobSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addSSHJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'addSSHForkJobSubmissionDetails':
+ if len(args) != 4:
+ print('addSSHForkJobSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addSSHForkJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getSSHJobSubmission':
+ if len(args) != 2:
+ print('getSSHJobSubmission requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getSSHJobSubmission(eval(args[0]),args[1],))
+
+elif cmd == 'addUNICOREJobSubmissionDetails':
+ if len(args) != 4:
+ print('addUNICOREJobSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addUNICOREJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getUnicoreJobSubmission':
+ if len(args) != 2:
+ print('getUnicoreJobSubmission requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getUnicoreJobSubmission(eval(args[0]),args[1],))
+
+elif cmd == 'addCloudJobSubmissionDetails':
+ if len(args) != 4:
+ print('addCloudJobSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addCloudJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getCloudJobSubmission':
+ if len(args) != 2:
+ print('getCloudJobSubmission requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getCloudJobSubmission(eval(args[0]),args[1],))
+
+elif cmd == 'updateSSHJobSubmissionDetails':
+ if len(args) != 3:
+ print('updateSSHJobSubmissionDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateSSHJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateCloudJobSubmissionDetails':
+ if len(args) != 3:
+ print('updateCloudJobSubmissionDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateCloudJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateUnicoreJobSubmissionDetails':
+ if len(args) != 3:
+ print('updateUnicoreJobSubmissionDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateUnicoreJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'addLocalDataMovementDetails':
+ if len(args) != 4:
+ print('addLocalDataMovementDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addLocalDataMovementDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'updateLocalDataMovementDetails':
+ if len(args) != 3:
+ print('updateLocalDataMovementDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateLocalDataMovementDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getLocalDataMovement':
+ if len(args) != 2:
+ print('getLocalDataMovement requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getLocalDataMovement(eval(args[0]),args[1],))
+
+elif cmd == 'addSCPDataMovementDetails':
+ if len(args) != 4:
+ print('addSCPDataMovementDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addSCPDataMovementDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'updateSCPDataMovementDetails':
+ if len(args) != 3:
+ print('updateSCPDataMovementDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateSCPDataMovementDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getSCPDataMovement':
+ if len(args) != 2:
+ print('getSCPDataMovement requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getSCPDataMovement(eval(args[0]),args[1],))
+
+elif cmd == 'addUnicoreDataMovementDetails':
+ if len(args) != 4:
+ print('addUnicoreDataMovementDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addUnicoreDataMovementDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'updateUnicoreDataMovementDetails':
+ if len(args) != 3:
+ print('updateUnicoreDataMovementDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateUnicoreDataMovementDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getUnicoreDataMovement':
+ if len(args) != 2:
+ print('getUnicoreDataMovement requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getUnicoreDataMovement(eval(args[0]),args[1],))
+
+elif cmd == 'addGridFTPDataMovementDetails':
+ if len(args) != 4:
+ print('addGridFTPDataMovementDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addGridFTPDataMovementDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'updateGridFTPDataMovementDetails':
+ if len(args) != 3:
+ print('updateGridFTPDataMovementDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateGridFTPDataMovementDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getGridFTPDataMovement':
+ if len(args) != 2:
+ print('getGridFTPDataMovement requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getGridFTPDataMovement(eval(args[0]),args[1],))
+
+elif cmd == 'changeJobSubmissionPriority':
+ if len(args) != 3:
+ print('changeJobSubmissionPriority requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.changeJobSubmissionPriority(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'changeDataMovementPriority':
+ if len(args) != 3:
+ print('changeDataMovementPriority requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.changeDataMovementPriority(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'changeJobSubmissionPriorities':
+ if len(args) != 2:
+ print('changeJobSubmissionPriorities requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.changeJobSubmissionPriorities(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'changeDataMovementPriorities':
+ if len(args) != 2:
+ print('changeDataMovementPriorities requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.changeDataMovementPriorities(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'deleteJobSubmissionInterface':
+ if len(args) != 3:
+ print('deleteJobSubmissionInterface requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteJobSubmissionInterface(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'deleteDataMovementInterface':
+ if len(args) != 3:
+ print('deleteDataMovementInterface requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteDataMovementInterface(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'registerResourceJobManager':
+ if len(args) != 2:
+ print('registerResourceJobManager requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerResourceJobManager(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'updateResourceJobManager':
+ if len(args) != 3:
+ print('updateResourceJobManager requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateResourceJobManager(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getResourceJobManager':
+ if len(args) != 2:
+ print('getResourceJobManager requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getResourceJobManager(eval(args[0]),args[1],))
+
+elif cmd == 'deleteResourceJobManager':
+ if len(args) != 2:
+ print('deleteResourceJobManager requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteResourceJobManager(eval(args[0]),args[1],))
+
+elif cmd == 'deleteBatchQueue':
+ if len(args) != 3:
+ print('deleteBatchQueue requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteBatchQueue(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'registerGatewayResourceProfile':
+ if len(args) != 2:
+ print('registerGatewayResourceProfile requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerGatewayResourceProfile(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getGatewayResourceProfile':
+ if len(args) != 2:
+ print('getGatewayResourceProfile requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getGatewayResourceProfile(eval(args[0]),args[1],))
+
+elif cmd == 'updateGatewayResourceProfile':
+ if len(args) != 3:
+ print('updateGatewayResourceProfile requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateGatewayResourceProfile(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteGatewayResourceProfile':
+ if len(args) != 2:
+ print('deleteGatewayResourceProfile requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGatewayResourceProfile(eval(args[0]),args[1],))
+
+elif cmd == 'addGatewayComputeResourcePreference':
+ if len(args) != 4:
+ print('addGatewayComputeResourcePreference requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'addGatewayDataStoragePreference':
+ if len(args) != 4:
+ print('addGatewayDataStoragePreference requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addGatewayDataStoragePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'getGatewayComputeResourcePreference':
+ if len(args) != 3:
+ print('getGatewayComputeResourcePreference requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.getGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getGatewayDataStoragePreference':
+ if len(args) != 3:
+ print('getGatewayDataStoragePreference requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.getGatewayDataStoragePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllGatewayComputeResourcePreferences':
+ if len(args) != 2:
+ print('getAllGatewayComputeResourcePreferences requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGatewayComputeResourcePreferences(eval(args[0]),args[1],))
+
+elif cmd == 'getAllGatewayDataStoragePreferences':
+ if len(args) != 2:
+ print('getAllGatewayDataStoragePreferences requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGatewayDataStoragePreferences(eval(args[0]),args[1],))
+
+elif cmd == 'getAllGatewayResourceProfiles':
+ if len(args) != 1:
+ print('getAllGatewayResourceProfiles requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGatewayResourceProfiles(eval(args[0]),))
+
+elif cmd == 'updateGatewayComputeResourcePreference':
+ if len(args) != 4:
+ print('updateGatewayComputeResourcePreference requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.updateGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'updateGatewayDataStoragePreference':
+ if len(args) != 4:
+ print('updateGatewayDataStoragePreference requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.updateGatewayDataStoragePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'deleteGatewayComputeResourcePreference':
+ if len(args) != 3:
+ print('deleteGatewayComputeResourcePreference requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'deleteGatewayDataStoragePreference':
+ if len(args) != 3:
+ print('deleteGatewayDataStoragePreference requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGatewayDataStoragePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllWorkflows':
+ if len(args) != 2:
+ print('getAllWorkflows requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllWorkflows(eval(args[0]),args[1],))
+
+elif cmd == 'getWorkflow':
+ if len(args) != 2:
+ print('getWorkflow requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getWorkflow(eval(args[0]),args[1],))
+
+elif cmd == 'deleteWorkflow':
+ if len(args) != 2:
+ print('deleteWorkflow requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteWorkflow(eval(args[0]),args[1],))
+
+elif cmd == 'registerWorkflow':
+ if len(args) != 3:
+ print('registerWorkflow requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.registerWorkflow(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateWorkflow':
+ if len(args) != 3:
+ print('updateWorkflow requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateWorkflow(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getWorkflowTemplateId':
+ if len(args) != 2:
+ print('getWorkflowTemplateId requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getWorkflowTemplateId(eval(args[0]),args[1],))
+
+elif cmd == 'isWorkflowExistWithName':
+ if len(args) != 2:
+ print('isWorkflowExistWithName requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.isWorkflowExistWithName(eval(args[0]),args[1],))
+
+else:
+ print('Unrecognized method %s' % cmd)
+ sys.exit(1)
+
+transport.close()
[26/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/ttypes.py
new file mode 100644
index 0000000..2842f36
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/ttypes.py
@@ -0,0 +1,2155 @@
+#
+# 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)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/ttypes.pyc
new file mode 100644
index 0000000..117fe80
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc
new file mode 100644
index 0000000..cb39d90
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
[10/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc
new file mode 100644
index 0000000..dc82372
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.py
new file mode 100644
index 0000000..32a9325
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.py
@@ -0,0 +1,167 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+import apache.airavata.model.data.movement.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class StorageResourceDescription:
+ """
+ Storage Resource Description
+
+ storageResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
+
+ hostName:
+ Fully Qualified Host Name.
+
+ storageResourceDescription:
+ A user friendly description of the resource.
+
+
+ DataMovementProtocol:
+ Option to specify a prefered data movement mechanism of the available options.
+
+
+
+ Attributes:
+ - storageResourceId
+ - hostName
+ - storageResourceDescription
+ - enabled
+ - dataMovementInterfaces
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'storageResourceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'hostName', None, None, ), # 2
+ (3, TType.STRING, 'storageResourceDescription', None, None, ), # 3
+ (4, TType.BOOL, 'enabled', None, None, ), # 4
+ (5, TType.LIST, 'dataMovementInterfaces', (TType.STRUCT,(apache.airavata.model.data.movement.ttypes.DataMovementInterface, apache.airavata.model.data.movement.ttypes.DataMovementInterface.thrift_spec)), None, ), # 5
+ )
+
+ def __init__(self, storageResourceId=thrift_spec[1][4], hostName=None, storageResourceDescription=None, enabled=None, dataMovementInterfaces=None,):
+ self.storageResourceId = storageResourceId
+ self.hostName = hostName
+ self.storageResourceDescription = storageResourceDescription
+ self.enabled = enabled
+ self.dataMovementInterfaces = dataMovementInterfaces
+
+ 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.storageResourceId = 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.STRING:
+ self.storageResourceDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.BOOL:
+ self.enabled = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.LIST:
+ self.dataMovementInterfaces = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = apache.airavata.model.data.movement.ttypes.DataMovementInterface()
+ _elem5.read(iprot)
+ self.dataMovementInterfaces.append(_elem5)
+ 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('StorageResourceDescription')
+ if self.storageResourceId is not None:
+ oprot.writeFieldBegin('storageResourceId', TType.STRING, 1)
+ oprot.writeString(self.storageResourceId)
+ oprot.writeFieldEnd()
+ if self.hostName is not None:
+ oprot.writeFieldBegin('hostName', TType.STRING, 2)
+ oprot.writeString(self.hostName)
+ oprot.writeFieldEnd()
+ if self.storageResourceDescription is not None:
+ oprot.writeFieldBegin('storageResourceDescription', TType.STRING, 3)
+ oprot.writeString(self.storageResourceDescription)
+ oprot.writeFieldEnd()
+ if self.enabled is not None:
+ oprot.writeFieldBegin('enabled', TType.BOOL, 4)
+ oprot.writeBool(self.enabled)
+ oprot.writeFieldEnd()
+ if self.dataMovementInterfaces is not None:
+ oprot.writeFieldBegin('dataMovementInterfaces', TType.LIST, 5)
+ oprot.writeListBegin(TType.STRUCT, len(self.dataMovementInterfaces))
+ for iter6 in self.dataMovementInterfaces:
+ iter6.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.storageResourceId is None:
+ raise TProtocol.TProtocolException(message='Required field storageResourceId 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.storageResourceId)
+ value = (value * 31) ^ hash(self.hostName)
+ value = (value * 31) ^ hash(self.storageResourceDescription)
+ value = (value * 31) ^ hash(self.enabled)
+ value = (value * 31) ^ hash(self.dataMovementInterfaces)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc
new file mode 100644
index 0000000..3cb2bed
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc
new file mode 100644
index 0000000..b806d59
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc
new file mode 100644
index 0000000..eb40934
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.py
new file mode 100644
index 0000000..3b255a5
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.py
@@ -0,0 +1,510 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.appcatalog.computeresource.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class DataType:
+ """
+ Data Types supported in Airavata. The primitive data types
+
+ """
+ STRING = 0
+ INTEGER = 1
+ FLOAT = 2
+ URI = 3
+ URI_COLLECTION = 4
+ STDOUT = 5
+ STDERR = 6
+
+ _VALUES_TO_NAMES = {
+ 0: "STRING",
+ 1: "INTEGER",
+ 2: "FLOAT",
+ 3: "URI",
+ 4: "URI_COLLECTION",
+ 5: "STDOUT",
+ 6: "STDERR",
+ }
+
+ _NAMES_TO_VALUES = {
+ "STRING": 0,
+ "INTEGER": 1,
+ "FLOAT": 2,
+ "URI": 3,
+ "URI_COLLECTION": 4,
+ "STDOUT": 5,
+ "STDERR": 6,
+ }
+
+
+class InputDataObjectType:
+ """
+ Application Inputs. The paramters describe how inputs are passed to the application.
+
+ name:
+ Name of the parameter.
+
+ value:
+ Value of the parameter. A default value could be set during registration.
+
+ type:
+ Data type of the parameter
+
+ applicationArguement:
+ The argument flag sent to the application. Such as -p pressure.
+
+ standardInput:
+ When this value is set, the parameter is sent as standard input rather than a parameter.
+ Typically this is passed using redirection operator ">".
+
+ userFriendlyDescription:
+ Description to be displayed at the user interface.
+
+ metaData:
+ Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+
+
+ Attributes:
+ - name
+ - value
+ - type
+ - applicationArgument
+ - standardInput
+ - userFriendlyDescription
+ - metaData
+ - inputOrder
+ - isRequired
+ - requiredToAddedToCommandLine
+ - dataStaged
+ - storageResourceId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'name', None, None, ), # 1
+ (2, TType.STRING, 'value', None, None, ), # 2
+ (3, TType.I32, 'type', None, None, ), # 3
+ (4, TType.STRING, 'applicationArgument', None, None, ), # 4
+ (5, TType.BOOL, 'standardInput', None, None, ), # 5
+ (6, TType.STRING, 'userFriendlyDescription', None, None, ), # 6
+ (7, TType.STRING, 'metaData', None, None, ), # 7
+ (8, TType.I32, 'inputOrder', None, None, ), # 8
+ (9, TType.BOOL, 'isRequired', None, None, ), # 9
+ (10, TType.BOOL, 'requiredToAddedToCommandLine', None, None, ), # 10
+ (11, TType.BOOL, 'dataStaged', None, None, ), # 11
+ (12, TType.STRING, 'storageResourceId', None, None, ), # 12
+ )
+
+ def __init__(self, name=None, value=None, type=None, applicationArgument=None, standardInput=None, userFriendlyDescription=None, metaData=None, inputOrder=None, isRequired=None, requiredToAddedToCommandLine=None, dataStaged=None, storageResourceId=None,):
+ self.name = name
+ self.value = value
+ self.type = type
+ self.applicationArgument = applicationArgument
+ self.standardInput = standardInput
+ self.userFriendlyDescription = userFriendlyDescription
+ self.metaData = metaData
+ self.inputOrder = inputOrder
+ self.isRequired = isRequired
+ self.requiredToAddedToCommandLine = requiredToAddedToCommandLine
+ self.dataStaged = dataStaged
+ self.storageResourceId = storageResourceId
+
+ 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.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.value = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.type = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.applicationArgument = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.BOOL:
+ self.standardInput = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.userFriendlyDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.metaData = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.inputOrder = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.BOOL:
+ self.isRequired = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.BOOL:
+ self.requiredToAddedToCommandLine = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.BOOL:
+ self.dataStaged = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.STRING:
+ self.storageResourceId = 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('InputDataObjectType')
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 1)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.value is not None:
+ oprot.writeFieldBegin('value', TType.STRING, 2)
+ oprot.writeString(self.value)
+ oprot.writeFieldEnd()
+ if self.type is not None:
+ oprot.writeFieldBegin('type', TType.I32, 3)
+ oprot.writeI32(self.type)
+ oprot.writeFieldEnd()
+ if self.applicationArgument is not None:
+ oprot.writeFieldBegin('applicationArgument', TType.STRING, 4)
+ oprot.writeString(self.applicationArgument)
+ oprot.writeFieldEnd()
+ if self.standardInput is not None:
+ oprot.writeFieldBegin('standardInput', TType.BOOL, 5)
+ oprot.writeBool(self.standardInput)
+ oprot.writeFieldEnd()
+ if self.userFriendlyDescription is not None:
+ oprot.writeFieldBegin('userFriendlyDescription', TType.STRING, 6)
+ oprot.writeString(self.userFriendlyDescription)
+ oprot.writeFieldEnd()
+ if self.metaData is not None:
+ oprot.writeFieldBegin('metaData', TType.STRING, 7)
+ oprot.writeString(self.metaData)
+ oprot.writeFieldEnd()
+ if self.inputOrder is not None:
+ oprot.writeFieldBegin('inputOrder', TType.I32, 8)
+ oprot.writeI32(self.inputOrder)
+ oprot.writeFieldEnd()
+ if self.isRequired is not None:
+ oprot.writeFieldBegin('isRequired', TType.BOOL, 9)
+ oprot.writeBool(self.isRequired)
+ oprot.writeFieldEnd()
+ if self.requiredToAddedToCommandLine is not None:
+ oprot.writeFieldBegin('requiredToAddedToCommandLine', TType.BOOL, 10)
+ oprot.writeBool(self.requiredToAddedToCommandLine)
+ oprot.writeFieldEnd()
+ if self.dataStaged is not None:
+ oprot.writeFieldBegin('dataStaged', TType.BOOL, 11)
+ oprot.writeBool(self.dataStaged)
+ oprot.writeFieldEnd()
+ if self.storageResourceId is not None:
+ oprot.writeFieldBegin('storageResourceId', TType.STRING, 12)
+ oprot.writeString(self.storageResourceId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.value)
+ value = (value * 31) ^ hash(self.type)
+ value = (value * 31) ^ hash(self.applicationArgument)
+ value = (value * 31) ^ hash(self.standardInput)
+ value = (value * 31) ^ hash(self.userFriendlyDescription)
+ value = (value * 31) ^ hash(self.metaData)
+ value = (value * 31) ^ hash(self.inputOrder)
+ value = (value * 31) ^ hash(self.isRequired)
+ value = (value * 31) ^ hash(self.requiredToAddedToCommandLine)
+ value = (value * 31) ^ hash(self.dataStaged)
+ value = (value * 31) ^ hash(self.storageResourceId)
+ 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 OutputDataObjectType:
+ """
+ Application Outputs. The paramters describe how outputs generated by the application.
+
+ name:
+ Name of the parameter.
+
+ value:
+ Value of the parameter.
+
+ type:
+ Data type of the parameter
+
+ applicationArguement:
+ The argument flag sent to the application. Such as -p pressure.
+
+ standardInput:
+ When this value is set, the parameter is sent as standard input rather than a parameter.
+ Typically this is passed using redirection operator ">".
+
+ userFriendlyDescription:
+ Description to be displayed at the user interface.
+
+ metaData:
+ Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+
+
+ Attributes:
+ - name
+ - value
+ - type
+ - applicationArgument
+ - isRequired
+ - requiredToAddedToCommandLine
+ - dataMovement
+ - location
+ - searchQuery
+ - outputStreaming
+ - storageResourceId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'name', None, None, ), # 1
+ (2, TType.STRING, 'value', None, None, ), # 2
+ (3, TType.I32, 'type', None, None, ), # 3
+ (4, TType.STRING, 'applicationArgument', None, None, ), # 4
+ (5, TType.BOOL, 'isRequired', None, None, ), # 5
+ (6, TType.BOOL, 'requiredToAddedToCommandLine', None, None, ), # 6
+ (7, TType.BOOL, 'dataMovement', None, None, ), # 7
+ (8, TType.STRING, 'location', None, None, ), # 8
+ (9, TType.STRING, 'searchQuery', None, None, ), # 9
+ (10, TType.BOOL, 'outputStreaming', None, None, ), # 10
+ (11, TType.STRING, 'storageResourceId', None, None, ), # 11
+ )
+
+ def __init__(self, name=None, value=None, type=None, applicationArgument=None, isRequired=None, requiredToAddedToCommandLine=None, dataMovement=None, location=None, searchQuery=None, outputStreaming=None, storageResourceId=None,):
+ self.name = name
+ self.value = value
+ self.type = type
+ self.applicationArgument = applicationArgument
+ self.isRequired = isRequired
+ self.requiredToAddedToCommandLine = requiredToAddedToCommandLine
+ self.dataMovement = dataMovement
+ self.location = location
+ self.searchQuery = searchQuery
+ self.outputStreaming = outputStreaming
+ self.storageResourceId = storageResourceId
+
+ 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.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.value = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.type = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.applicationArgument = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.BOOL:
+ self.isRequired = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.BOOL:
+ self.requiredToAddedToCommandLine = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.BOOL:
+ self.dataMovement = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.location = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.searchQuery = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.BOOL:
+ self.outputStreaming = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.storageResourceId = 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('OutputDataObjectType')
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 1)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.value is not None:
+ oprot.writeFieldBegin('value', TType.STRING, 2)
+ oprot.writeString(self.value)
+ oprot.writeFieldEnd()
+ if self.type is not None:
+ oprot.writeFieldBegin('type', TType.I32, 3)
+ oprot.writeI32(self.type)
+ oprot.writeFieldEnd()
+ if self.applicationArgument is not None:
+ oprot.writeFieldBegin('applicationArgument', TType.STRING, 4)
+ oprot.writeString(self.applicationArgument)
+ oprot.writeFieldEnd()
+ if self.isRequired is not None:
+ oprot.writeFieldBegin('isRequired', TType.BOOL, 5)
+ oprot.writeBool(self.isRequired)
+ oprot.writeFieldEnd()
+ if self.requiredToAddedToCommandLine is not None:
+ oprot.writeFieldBegin('requiredToAddedToCommandLine', TType.BOOL, 6)
+ oprot.writeBool(self.requiredToAddedToCommandLine)
+ oprot.writeFieldEnd()
+ if self.dataMovement is not None:
+ oprot.writeFieldBegin('dataMovement', TType.BOOL, 7)
+ oprot.writeBool(self.dataMovement)
+ oprot.writeFieldEnd()
+ if self.location is not None:
+ oprot.writeFieldBegin('location', TType.STRING, 8)
+ oprot.writeString(self.location)
+ oprot.writeFieldEnd()
+ if self.searchQuery is not None:
+ oprot.writeFieldBegin('searchQuery', TType.STRING, 9)
+ oprot.writeString(self.searchQuery)
+ oprot.writeFieldEnd()
+ if self.outputStreaming is not None:
+ oprot.writeFieldBegin('outputStreaming', TType.BOOL, 10)
+ oprot.writeBool(self.outputStreaming)
+ oprot.writeFieldEnd()
+ if self.storageResourceId is not None:
+ oprot.writeFieldBegin('storageResourceId', TType.STRING, 11)
+ oprot.writeString(self.storageResourceId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.value)
+ value = (value * 31) ^ hash(self.type)
+ value = (value * 31) ^ hash(self.applicationArgument)
+ value = (value * 31) ^ hash(self.isRequired)
+ value = (value * 31) ^ hash(self.requiredToAddedToCommandLine)
+ value = (value * 31) ^ hash(self.dataMovement)
+ value = (value * 31) ^ hash(self.location)
+ value = (value * 31) ^ hash(self.searchQuery)
+ value = (value * 31) ^ hash(self.outputStreaming)
+ value = (value * 31) ^ hash(self.storageResourceId)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc
new file mode 100644
index 0000000..ad38d28
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/application/io/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc
new file mode 100644
index 0000000..78b00cc
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/constants.py
new file mode 100644
index 0000000..abf8bc6
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/constants.py
@@ -0,0 +1,12 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
+DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.py
new file mode 100644
index 0000000..21ec7e0
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.py
@@ -0,0 +1,335 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class ErrorModel:
+ """
+ Attributes:
+ - errorId
+ - creationTime
+ - actualErrorMessage
+ - userFriendlyMessage
+ - transientOrPersistent
+ - rootCauseErrorIdList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'errorId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'actualErrorMessage', None, None, ), # 3
+ (4, TType.STRING, 'userFriendlyMessage', None, None, ), # 4
+ (5, TType.BOOL, 'transientOrPersistent', None, False, ), # 5
+ (6, TType.LIST, 'rootCauseErrorIdList', (TType.STRING,None), None, ), # 6
+ )
+
+ def __init__(self, errorId=thrift_spec[1][4], creationTime=None, actualErrorMessage=None, userFriendlyMessage=None, transientOrPersistent=thrift_spec[5][4], rootCauseErrorIdList=None,):
+ self.errorId = errorId
+ self.creationTime = creationTime
+ self.actualErrorMessage = actualErrorMessage
+ self.userFriendlyMessage = userFriendlyMessage
+ self.transientOrPersistent = transientOrPersistent
+ self.rootCauseErrorIdList = rootCauseErrorIdList
+
+ 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.errorId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.actualErrorMessage = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.userFriendlyMessage = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.BOOL:
+ self.transientOrPersistent = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.rootCauseErrorIdList = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString()
+ self.rootCauseErrorIdList.append(_elem5)
+ 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('ErrorModel')
+ if self.errorId is not None:
+ oprot.writeFieldBegin('errorId', TType.STRING, 1)
+ oprot.writeString(self.errorId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.actualErrorMessage is not None:
+ oprot.writeFieldBegin('actualErrorMessage', TType.STRING, 3)
+ oprot.writeString(self.actualErrorMessage)
+ oprot.writeFieldEnd()
+ if self.userFriendlyMessage is not None:
+ oprot.writeFieldBegin('userFriendlyMessage', TType.STRING, 4)
+ oprot.writeString(self.userFriendlyMessage)
+ oprot.writeFieldEnd()
+ if self.transientOrPersistent is not None:
+ oprot.writeFieldBegin('transientOrPersistent', TType.BOOL, 5)
+ oprot.writeBool(self.transientOrPersistent)
+ oprot.writeFieldEnd()
+ if self.rootCauseErrorIdList is not None:
+ oprot.writeFieldBegin('rootCauseErrorIdList', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRING, len(self.rootCauseErrorIdList))
+ for iter6 in self.rootCauseErrorIdList:
+ oprot.writeString(iter6)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.errorId is None:
+ raise TProtocol.TProtocolException(message='Required field errorId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.errorId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.actualErrorMessage)
+ value = (value * 31) ^ hash(self.userFriendlyMessage)
+ value = (value * 31) ^ hash(self.transientOrPersistent)
+ value = (value * 31) ^ hash(self.rootCauseErrorIdList)
+ 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 ValidatorResult:
+ """
+ This data structure can be used to store the validation results
+ captured during validation step and during the launchExperiment
+ operation it can be easilly checked to see the errors occured
+ during the experiment launch operation
+
+
+ Attributes:
+ - result
+ - errorDetails
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'result', None, None, ), # 1
+ (2, TType.STRING, 'errorDetails', None, None, ), # 2
+ )
+
+ def __init__(self, result=None, errorDetails=None,):
+ self.result = result
+ self.errorDetails = errorDetails
+
+ 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.BOOL:
+ self.result = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.errorDetails = 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('ValidatorResult')
+ if self.result is not None:
+ oprot.writeFieldBegin('result', TType.BOOL, 1)
+ oprot.writeBool(self.result)
+ oprot.writeFieldEnd()
+ if self.errorDetails is not None:
+ oprot.writeFieldBegin('errorDetails', TType.STRING, 2)
+ oprot.writeString(self.errorDetails)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.result is None:
+ raise TProtocol.TProtocolException(message='Required field result is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.result)
+ value = (value * 31) ^ hash(self.errorDetails)
+ 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 ValidationResults:
+ """
+ Attributes:
+ - validationState
+ - validationResultList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'validationState', None, None, ), # 1
+ (2, TType.LIST, 'validationResultList', (TType.STRUCT,(ValidatorResult, ValidatorResult.thrift_spec)), None, ), # 2
+ )
+
+ def __init__(self, validationState=None, validationResultList=None,):
+ self.validationState = validationState
+ self.validationResultList = validationResultList
+
+ 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.BOOL:
+ self.validationState = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.LIST:
+ self.validationResultList = []
+ (_etype10, _size7) = iprot.readListBegin()
+ for _i11 in xrange(_size7):
+ _elem12 = ValidatorResult()
+ _elem12.read(iprot)
+ self.validationResultList.append(_elem12)
+ 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('ValidationResults')
+ if self.validationState is not None:
+ oprot.writeFieldBegin('validationState', TType.BOOL, 1)
+ oprot.writeBool(self.validationState)
+ oprot.writeFieldEnd()
+ if self.validationResultList is not None:
+ oprot.writeFieldBegin('validationResultList', TType.LIST, 2)
+ oprot.writeListBegin(TType.STRUCT, len(self.validationResultList))
+ for iter13 in self.validationResultList:
+ iter13.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.validationState is None:
+ raise TProtocol.TProtocolException(message='Required field validationState is unset!')
+ if self.validationResultList is None:
+ raise TProtocol.TProtocolException(message='Required field validationResultList is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.validationState)
+ value = (value * 31) ^ hash(self.validationResultList)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc
new file mode 100644
index 0000000..1b27961
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/commons/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc
new file mode 100644
index 0000000..6a02e2f
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc
new file mode 100644
index 0000000..b4638db
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.py
new file mode 100644
index 0000000..01e5c45
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.py
@@ -0,0 +1,625 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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 DMType:
+ 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:
+ """
+ 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:
+ """
+ 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:
+ """
+ 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 = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = 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.__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 iter6 in self.gridFTPEndPoints:
+ oprot.writeString(iter6)
+ 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 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 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)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc
new file mode 100644
index 0000000..12a05dd
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/movement/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
[19/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
adding jupyter note books for Airavata
Project: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/commit/69c259de
Tree: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/tree/69c259de
Diff: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/diff/69c259de
Branch: refs/heads/master
Commit: 69c259de8e868cf17a80e98deb70919a6736821a
Parents: 75eb96c
Author: Pradyut Madhavaram <pr...@gmail.com>
Authored: Fri Aug 5 11:41:18 2016 -0400
Committer: Pradyut Madhavaram <pr...@gmail.com>
Committed: Fri Aug 5 11:41:18 2016 -0400
----------------------------------------------------------------------
.../Admin-User/Admin User.ipynb | 799 +++++++++++++++++++
1 file changed, 799 insertions(+)
----------------------------------------------------------------------
[09/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/ttypes.py
new file mode 100644
index 0000000..271b9c0
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/product/ttypes.py
@@ -0,0 +1,549 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ReplicaLocationCategory:
+ GATEWAY_DATA_STORE = 0
+ COMPUTE_RESOURCE = 1
+ LONG_TERM_STORAGE_RESOURCE = 2
+ OTHER = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "GATEWAY_DATA_STORE",
+ 1: "COMPUTE_RESOURCE",
+ 2: "LONG_TERM_STORAGE_RESOURCE",
+ 3: "OTHER",
+ }
+
+ _NAMES_TO_VALUES = {
+ "GATEWAY_DATA_STORE": 0,
+ "COMPUTE_RESOURCE": 1,
+ "LONG_TERM_STORAGE_RESOURCE": 2,
+ "OTHER": 3,
+ }
+
+class ReplicaPersistentType:
+ TRANSIENT = 0
+ PERSISTENT = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "TRANSIENT",
+ 1: "PERSISTENT",
+ }
+
+ _NAMES_TO_VALUES = {
+ "TRANSIENT": 0,
+ "PERSISTENT": 1,
+ }
+
+class DataProductType:
+ DIR = 0
+ FILE = 1
+ COLLECTION = 2
+
+ _VALUES_TO_NAMES = {
+ 0: "DIR",
+ 1: "FILE",
+ 2: "COLLECTION",
+ }
+
+ _NAMES_TO_VALUES = {
+ "DIR": 0,
+ "FILE": 1,
+ "COLLECTION": 2,
+ }
+
+
+class DataProductModel:
+ """
+ Attributes:
+ - productUri
+ - gatewayId
+ - parentProductUri
+ - logicalPath
+ - productName
+ - productDescription
+ - ownerName
+ - dataProductType
+ - productSize
+ - creationTime
+ - lastModifiedTime
+ - productMetadata
+ - replicaLocations
+ - childProducts
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'productUri', None, None, ), # 1
+ (2, TType.STRING, 'gatewayId', None, None, ), # 2
+ (3, TType.STRING, 'parentProductUri', None, None, ), # 3
+ (4, TType.STRING, 'logicalPath', None, None, ), # 4
+ (5, TType.STRING, 'productName', None, None, ), # 5
+ (6, TType.STRING, 'productDescription', None, None, ), # 6
+ (7, TType.STRING, 'ownerName', None, None, ), # 7
+ (8, TType.I32, 'dataProductType', None, None, ), # 8
+ (9, TType.I32, 'productSize', None, None, ), # 9
+ (10, TType.I64, 'creationTime', None, None, ), # 10
+ (11, TType.I64, 'lastModifiedTime', None, None, ), # 11
+ (12, TType.MAP, 'productMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 12
+ (13, TType.LIST, 'replicaLocations', (TType.STRUCT,(DataReplicaLocationModel, DataReplicaLocationModel.thrift_spec)), None, ), # 13
+ (14, TType.LIST, 'childProducts', (TType.STRUCT,(DataProductModel, DataProductModel.thrift_spec)), None, ), # 14
+ )
+
+ def __init__(self, productUri=None, gatewayId=None, parentProductUri=None, logicalPath=None, productName=None, productDescription=None, ownerName=None, dataProductType=None, productSize=None, creationTime=None, lastModifiedTime=None, productMetadata=None, replicaLocations=None, childProducts=None,):
+ self.productUri = productUri
+ self.gatewayId = gatewayId
+ self.parentProductUri = parentProductUri
+ self.logicalPath = logicalPath
+ self.productName = productName
+ self.productDescription = productDescription
+ self.ownerName = ownerName
+ self.dataProductType = dataProductType
+ self.productSize = productSize
+ self.creationTime = creationTime
+ self.lastModifiedTime = lastModifiedTime
+ self.productMetadata = productMetadata
+ self.replicaLocations = replicaLocations
+ self.childProducts = childProducts
+
+ 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.productUri = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.parentProductUri = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.logicalPath = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.productName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.productDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.ownerName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.dataProductType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.I32:
+ self.productSize = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.I64:
+ self.lastModifiedTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.MAP:
+ self.productMetadata = {}
+ (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
+ for _i4 in xrange(_size0):
+ _key5 = iprot.readString()
+ _val6 = iprot.readString()
+ self.productMetadata[_key5] = _val6
+ iprot.readMapEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.LIST:
+ self.replicaLocations = []
+ (_etype10, _size7) = iprot.readListBegin()
+ for _i11 in xrange(_size7):
+ _elem12 = DataReplicaLocationModel()
+ _elem12.read(iprot)
+ self.replicaLocations.append(_elem12)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.LIST:
+ self.childProducts = []
+ (_etype16, _size13) = iprot.readListBegin()
+ for _i17 in xrange(_size13):
+ _elem18 = DataProductModel()
+ _elem18.read(iprot)
+ self.childProducts.append(_elem18)
+ 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('DataProductModel')
+ if self.productUri is not None:
+ oprot.writeFieldBegin('productUri', TType.STRING, 1)
+ oprot.writeString(self.productUri)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.parentProductUri is not None:
+ oprot.writeFieldBegin('parentProductUri', TType.STRING, 3)
+ oprot.writeString(self.parentProductUri)
+ oprot.writeFieldEnd()
+ if self.logicalPath is not None:
+ oprot.writeFieldBegin('logicalPath', TType.STRING, 4)
+ oprot.writeString(self.logicalPath)
+ oprot.writeFieldEnd()
+ if self.productName is not None:
+ oprot.writeFieldBegin('productName', TType.STRING, 5)
+ oprot.writeString(self.productName)
+ oprot.writeFieldEnd()
+ if self.productDescription is not None:
+ oprot.writeFieldBegin('productDescription', TType.STRING, 6)
+ oprot.writeString(self.productDescription)
+ oprot.writeFieldEnd()
+ if self.ownerName is not None:
+ oprot.writeFieldBegin('ownerName', TType.STRING, 7)
+ oprot.writeString(self.ownerName)
+ oprot.writeFieldEnd()
+ if self.dataProductType is not None:
+ oprot.writeFieldBegin('dataProductType', TType.I32, 8)
+ oprot.writeI32(self.dataProductType)
+ oprot.writeFieldEnd()
+ if self.productSize is not None:
+ oprot.writeFieldBegin('productSize', TType.I32, 9)
+ oprot.writeI32(self.productSize)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 10)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastModifiedTime is not None:
+ oprot.writeFieldBegin('lastModifiedTime', TType.I64, 11)
+ oprot.writeI64(self.lastModifiedTime)
+ oprot.writeFieldEnd()
+ if self.productMetadata is not None:
+ oprot.writeFieldBegin('productMetadata', TType.MAP, 12)
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.productMetadata))
+ for kiter19,viter20 in self.productMetadata.items():
+ oprot.writeString(kiter19)
+ oprot.writeString(viter20)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ if self.replicaLocations is not None:
+ oprot.writeFieldBegin('replicaLocations', TType.LIST, 13)
+ oprot.writeListBegin(TType.STRUCT, len(self.replicaLocations))
+ for iter21 in self.replicaLocations:
+ iter21.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.childProducts is not None:
+ oprot.writeFieldBegin('childProducts', TType.LIST, 14)
+ oprot.writeListBegin(TType.STRUCT, len(self.childProducts))
+ for iter22 in self.childProducts:
+ iter22.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.productUri)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.parentProductUri)
+ value = (value * 31) ^ hash(self.logicalPath)
+ value = (value * 31) ^ hash(self.productName)
+ value = (value * 31) ^ hash(self.productDescription)
+ value = (value * 31) ^ hash(self.ownerName)
+ value = (value * 31) ^ hash(self.dataProductType)
+ value = (value * 31) ^ hash(self.productSize)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastModifiedTime)
+ value = (value * 31) ^ hash(self.productMetadata)
+ value = (value * 31) ^ hash(self.replicaLocations)
+ value = (value * 31) ^ hash(self.childProducts)
+ 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 DataReplicaLocationModel:
+ """
+ Attributes:
+ - replicaId
+ - productUri
+ - replicaName
+ - replicaDescription
+ - creationTime
+ - lastModifiedTime
+ - validUntilTime
+ - replicaLocationCategory
+ - replicaPersistentType
+ - storageResourceId
+ - filePath
+ - replicaMetadata
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'replicaId', None, None, ), # 1
+ (2, TType.STRING, 'productUri', None, None, ), # 2
+ (3, TType.STRING, 'replicaName', None, None, ), # 3
+ (4, TType.STRING, 'replicaDescription', None, None, ), # 4
+ (5, TType.I64, 'creationTime', None, None, ), # 5
+ (6, TType.I64, 'lastModifiedTime', None, None, ), # 6
+ (7, TType.I64, 'validUntilTime', None, None, ), # 7
+ (8, TType.I32, 'replicaLocationCategory', None, None, ), # 8
+ (9, TType.I32, 'replicaPersistentType', None, None, ), # 9
+ (10, TType.STRING, 'storageResourceId', None, None, ), # 10
+ (11, TType.STRING, 'filePath', None, None, ), # 11
+ (12, TType.MAP, 'replicaMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 12
+ )
+
+ def __init__(self, replicaId=None, productUri=None, replicaName=None, replicaDescription=None, creationTime=None, lastModifiedTime=None, validUntilTime=None, replicaLocationCategory=None, replicaPersistentType=None, storageResourceId=None, filePath=None, replicaMetadata=None,):
+ self.replicaId = replicaId
+ self.productUri = productUri
+ self.replicaName = replicaName
+ self.replicaDescription = replicaDescription
+ self.creationTime = creationTime
+ self.lastModifiedTime = lastModifiedTime
+ self.validUntilTime = validUntilTime
+ self.replicaLocationCategory = replicaLocationCategory
+ self.replicaPersistentType = replicaPersistentType
+ self.storageResourceId = storageResourceId
+ self.filePath = filePath
+ self.replicaMetadata = replicaMetadata
+
+ 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.replicaId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.productUri = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.replicaName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.replicaDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I64:
+ self.lastModifiedTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I64:
+ self.validUntilTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.replicaLocationCategory = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.I32:
+ self.replicaPersistentType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.storageResourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.filePath = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.MAP:
+ self.replicaMetadata = {}
+ (_ktype24, _vtype25, _size23 ) = iprot.readMapBegin()
+ for _i27 in xrange(_size23):
+ _key28 = iprot.readString()
+ _val29 = iprot.readString()
+ self.replicaMetadata[_key28] = _val29
+ 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('DataReplicaLocationModel')
+ if self.replicaId is not None:
+ oprot.writeFieldBegin('replicaId', TType.STRING, 1)
+ oprot.writeString(self.replicaId)
+ oprot.writeFieldEnd()
+ if self.productUri is not None:
+ oprot.writeFieldBegin('productUri', TType.STRING, 2)
+ oprot.writeString(self.productUri)
+ oprot.writeFieldEnd()
+ if self.replicaName is not None:
+ oprot.writeFieldBegin('replicaName', TType.STRING, 3)
+ oprot.writeString(self.replicaName)
+ oprot.writeFieldEnd()
+ if self.replicaDescription is not None:
+ oprot.writeFieldBegin('replicaDescription', TType.STRING, 4)
+ oprot.writeString(self.replicaDescription)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 5)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastModifiedTime is not None:
+ oprot.writeFieldBegin('lastModifiedTime', TType.I64, 6)
+ oprot.writeI64(self.lastModifiedTime)
+ oprot.writeFieldEnd()
+ if self.validUntilTime is not None:
+ oprot.writeFieldBegin('validUntilTime', TType.I64, 7)
+ oprot.writeI64(self.validUntilTime)
+ oprot.writeFieldEnd()
+ if self.replicaLocationCategory is not None:
+ oprot.writeFieldBegin('replicaLocationCategory', TType.I32, 8)
+ oprot.writeI32(self.replicaLocationCategory)
+ oprot.writeFieldEnd()
+ if self.replicaPersistentType is not None:
+ oprot.writeFieldBegin('replicaPersistentType', TType.I32, 9)
+ oprot.writeI32(self.replicaPersistentType)
+ oprot.writeFieldEnd()
+ if self.storageResourceId is not None:
+ oprot.writeFieldBegin('storageResourceId', TType.STRING, 10)
+ oprot.writeString(self.storageResourceId)
+ oprot.writeFieldEnd()
+ if self.filePath is not None:
+ oprot.writeFieldBegin('filePath', TType.STRING, 11)
+ oprot.writeString(self.filePath)
+ oprot.writeFieldEnd()
+ if self.replicaMetadata is not None:
+ oprot.writeFieldBegin('replicaMetadata', TType.MAP, 12)
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.replicaMetadata))
+ for kiter30,viter31 in self.replicaMetadata.items():
+ oprot.writeString(kiter30)
+ oprot.writeString(viter31)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.replicaId)
+ value = (value * 31) ^ hash(self.productUri)
+ value = (value * 31) ^ hash(self.replicaName)
+ value = (value * 31) ^ hash(self.replicaDescription)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastModifiedTime)
+ value = (value * 31) ^ hash(self.validUntilTime)
+ value = (value * 31) ^ hash(self.replicaLocationCategory)
+ value = (value * 31) ^ hash(self.replicaPersistentType)
+ value = (value * 31) ^ hash(self.storageResourceId)
+ value = (value * 31) ^ hash(self.filePath)
+ value = (value * 31) ^ hash(self.replicaMetadata)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc
new file mode 100644
index 0000000..1a93a89
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.py
new file mode 100644
index 0000000..7f85660
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.py
@@ -0,0 +1,511 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ReplicaLocationCategory:
+ GATEWAY_DATA_STORE = 0
+ COMPUTE_RESOURCE = 1
+ LONG_TERM_STORAGE_RESOURCE = 2
+ OTHER = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "GATEWAY_DATA_STORE",
+ 1: "COMPUTE_RESOURCE",
+ 2: "LONG_TERM_STORAGE_RESOURCE",
+ 3: "OTHER",
+ }
+
+ _NAMES_TO_VALUES = {
+ "GATEWAY_DATA_STORE": 0,
+ "COMPUTE_RESOURCE": 1,
+ "LONG_TERM_STORAGE_RESOURCE": 2,
+ "OTHER": 3,
+ }
+
+class ReplicaPersistentType:
+ TRANSIENT = 0
+ PERSISTENT = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "TRANSIENT",
+ 1: "PERSISTENT",
+ }
+
+ _NAMES_TO_VALUES = {
+ "TRANSIENT": 0,
+ "PERSISTENT": 1,
+ }
+
+class DataProductType:
+ FILE = 0
+ COLLECTION = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "FILE",
+ 1: "COLLECTION",
+ }
+
+ _NAMES_TO_VALUES = {
+ "FILE": 0,
+ "COLLECTION": 1,
+ }
+
+
+class DataReplicaLocationModel:
+ """
+ Attributes:
+ - replicaId
+ - productUri
+ - replicaName
+ - replicaDescription
+ - creationTime
+ - lastModifiedTime
+ - validUntilTime
+ - replicaLocationCategory
+ - replicaPersistentType
+ - storageResourceId
+ - filePath
+ - replicaMetadata
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'replicaId', None, None, ), # 1
+ (2, TType.STRING, 'productUri', None, None, ), # 2
+ (3, TType.STRING, 'replicaName', None, None, ), # 3
+ (4, TType.STRING, 'replicaDescription', None, None, ), # 4
+ (5, TType.I64, 'creationTime', None, None, ), # 5
+ (6, TType.I64, 'lastModifiedTime', None, None, ), # 6
+ (7, TType.I64, 'validUntilTime', None, None, ), # 7
+ (8, TType.I32, 'replicaLocationCategory', None, None, ), # 8
+ (9, TType.I32, 'replicaPersistentType', None, None, ), # 9
+ (10, TType.STRING, 'storageResourceId', None, None, ), # 10
+ (11, TType.STRING, 'filePath', None, None, ), # 11
+ (12, TType.MAP, 'replicaMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 12
+ )
+
+ def __init__(self, replicaId=None, productUri=None, replicaName=None, replicaDescription=None, creationTime=None, lastModifiedTime=None, validUntilTime=None, replicaLocationCategory=None, replicaPersistentType=None, storageResourceId=None, filePath=None, replicaMetadata=None,):
+ self.replicaId = replicaId
+ self.productUri = productUri
+ self.replicaName = replicaName
+ self.replicaDescription = replicaDescription
+ self.creationTime = creationTime
+ self.lastModifiedTime = lastModifiedTime
+ self.validUntilTime = validUntilTime
+ self.replicaLocationCategory = replicaLocationCategory
+ self.replicaPersistentType = replicaPersistentType
+ self.storageResourceId = storageResourceId
+ self.filePath = filePath
+ self.replicaMetadata = replicaMetadata
+
+ 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.replicaId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.productUri = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.replicaName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.replicaDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I64:
+ self.lastModifiedTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I64:
+ self.validUntilTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.replicaLocationCategory = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.I32:
+ self.replicaPersistentType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.storageResourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.filePath = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.MAP:
+ self.replicaMetadata = {}
+ (_ktype17, _vtype18, _size16 ) = iprot.readMapBegin()
+ for _i20 in xrange(_size16):
+ _key21 = iprot.readString()
+ _val22 = iprot.readString()
+ self.replicaMetadata[_key21] = _val22
+ 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('DataReplicaLocationModel')
+ if self.replicaId is not None:
+ oprot.writeFieldBegin('replicaId', TType.STRING, 1)
+ oprot.writeString(self.replicaId)
+ oprot.writeFieldEnd()
+ if self.productUri is not None:
+ oprot.writeFieldBegin('productUri', TType.STRING, 2)
+ oprot.writeString(self.productUri)
+ oprot.writeFieldEnd()
+ if self.replicaName is not None:
+ oprot.writeFieldBegin('replicaName', TType.STRING, 3)
+ oprot.writeString(self.replicaName)
+ oprot.writeFieldEnd()
+ if self.replicaDescription is not None:
+ oprot.writeFieldBegin('replicaDescription', TType.STRING, 4)
+ oprot.writeString(self.replicaDescription)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 5)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastModifiedTime is not None:
+ oprot.writeFieldBegin('lastModifiedTime', TType.I64, 6)
+ oprot.writeI64(self.lastModifiedTime)
+ oprot.writeFieldEnd()
+ if self.validUntilTime is not None:
+ oprot.writeFieldBegin('validUntilTime', TType.I64, 7)
+ oprot.writeI64(self.validUntilTime)
+ oprot.writeFieldEnd()
+ if self.replicaLocationCategory is not None:
+ oprot.writeFieldBegin('replicaLocationCategory', TType.I32, 8)
+ oprot.writeI32(self.replicaLocationCategory)
+ oprot.writeFieldEnd()
+ if self.replicaPersistentType is not None:
+ oprot.writeFieldBegin('replicaPersistentType', TType.I32, 9)
+ oprot.writeI32(self.replicaPersistentType)
+ oprot.writeFieldEnd()
+ if self.storageResourceId is not None:
+ oprot.writeFieldBegin('storageResourceId', TType.STRING, 10)
+ oprot.writeString(self.storageResourceId)
+ oprot.writeFieldEnd()
+ if self.filePath is not None:
+ oprot.writeFieldBegin('filePath', TType.STRING, 11)
+ oprot.writeString(self.filePath)
+ oprot.writeFieldEnd()
+ if self.replicaMetadata is not None:
+ oprot.writeFieldBegin('replicaMetadata', TType.MAP, 12)
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.replicaMetadata))
+ for kiter23,viter24 in self.replicaMetadata.items():
+ oprot.writeString(kiter23)
+ oprot.writeString(viter24)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.replicaId)
+ value = (value * 31) ^ hash(self.productUri)
+ value = (value * 31) ^ hash(self.replicaName)
+ value = (value * 31) ^ hash(self.replicaDescription)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastModifiedTime)
+ value = (value * 31) ^ hash(self.validUntilTime)
+ value = (value * 31) ^ hash(self.replicaLocationCategory)
+ value = (value * 31) ^ hash(self.replicaPersistentType)
+ value = (value * 31) ^ hash(self.storageResourceId)
+ value = (value * 31) ^ hash(self.filePath)
+ value = (value * 31) ^ hash(self.replicaMetadata)
+ 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 DataProductModel:
+ """
+ Attributes:
+ - productUri
+ - gatewayId
+ - parentProductUri
+ - productName
+ - productDescription
+ - ownerName
+ - dataProductType
+ - productSize
+ - creationTime
+ - lastModifiedTime
+ - productMetadata
+ - replicaLocations
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'productUri', None, None, ), # 1
+ (2, TType.STRING, 'gatewayId', None, None, ), # 2
+ (3, TType.STRING, 'parentProductUri', None, None, ), # 3
+ (4, TType.STRING, 'productName', None, None, ), # 4
+ (5, TType.STRING, 'productDescription', None, None, ), # 5
+ (6, TType.STRING, 'ownerName', None, None, ), # 6
+ (7, TType.I32, 'dataProductType', None, None, ), # 7
+ (8, TType.I32, 'productSize', None, None, ), # 8
+ (9, TType.I64, 'creationTime', None, None, ), # 9
+ (10, TType.I64, 'lastModifiedTime', None, None, ), # 10
+ (11, TType.MAP, 'productMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 11
+ (12, TType.LIST, 'replicaLocations', (TType.STRUCT,(DataReplicaLocationModel, DataReplicaLocationModel.thrift_spec)), None, ), # 12
+ )
+
+ def __init__(self, productUri=None, gatewayId=None, parentProductUri=None, productName=None, productDescription=None, ownerName=None, dataProductType=None, productSize=None, creationTime=None, lastModifiedTime=None, productMetadata=None, replicaLocations=None,):
+ self.productUri = productUri
+ self.gatewayId = gatewayId
+ self.parentProductUri = parentProductUri
+ self.productName = productName
+ self.productDescription = productDescription
+ self.ownerName = ownerName
+ self.dataProductType = dataProductType
+ self.productSize = productSize
+ self.creationTime = creationTime
+ self.lastModifiedTime = lastModifiedTime
+ self.productMetadata = productMetadata
+ self.replicaLocations = replicaLocations
+
+ 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.productUri = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.parentProductUri = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.productName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.productDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.ownerName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I32:
+ self.dataProductType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.productSize = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.I64:
+ self.lastModifiedTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.MAP:
+ self.productMetadata = {}
+ (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
+ for _i4 in xrange(_size0):
+ _key5 = iprot.readString()
+ _val6 = iprot.readString()
+ self.productMetadata[_key5] = _val6
+ iprot.readMapEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.replicaLocations = []
+ (_etype10, _size7) = iprot.readListBegin()
+ for _i11 in xrange(_size7):
+ _elem12 = DataReplicaLocationModel()
+ _elem12.read(iprot)
+ self.replicaLocations.append(_elem12)
+ 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('DataProductModel')
+ if self.productUri is not None:
+ oprot.writeFieldBegin('productUri', TType.STRING, 1)
+ oprot.writeString(self.productUri)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.parentProductUri is not None:
+ oprot.writeFieldBegin('parentProductUri', TType.STRING, 3)
+ oprot.writeString(self.parentProductUri)
+ oprot.writeFieldEnd()
+ if self.productName is not None:
+ oprot.writeFieldBegin('productName', TType.STRING, 4)
+ oprot.writeString(self.productName)
+ oprot.writeFieldEnd()
+ if self.productDescription is not None:
+ oprot.writeFieldBegin('productDescription', TType.STRING, 5)
+ oprot.writeString(self.productDescription)
+ oprot.writeFieldEnd()
+ if self.ownerName is not None:
+ oprot.writeFieldBegin('ownerName', TType.STRING, 6)
+ oprot.writeString(self.ownerName)
+ oprot.writeFieldEnd()
+ if self.dataProductType is not None:
+ oprot.writeFieldBegin('dataProductType', TType.I32, 7)
+ oprot.writeI32(self.dataProductType)
+ oprot.writeFieldEnd()
+ if self.productSize is not None:
+ oprot.writeFieldBegin('productSize', TType.I32, 8)
+ oprot.writeI32(self.productSize)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 9)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastModifiedTime is not None:
+ oprot.writeFieldBegin('lastModifiedTime', TType.I64, 10)
+ oprot.writeI64(self.lastModifiedTime)
+ oprot.writeFieldEnd()
+ if self.productMetadata is not None:
+ oprot.writeFieldBegin('productMetadata', TType.MAP, 11)
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.productMetadata))
+ for kiter13,viter14 in self.productMetadata.items():
+ oprot.writeString(kiter13)
+ oprot.writeString(viter14)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ if self.replicaLocations is not None:
+ oprot.writeFieldBegin('replicaLocations', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRUCT, len(self.replicaLocations))
+ for iter15 in self.replicaLocations:
+ iter15.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.productUri)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.parentProductUri)
+ value = (value * 31) ^ hash(self.productName)
+ value = (value * 31) ^ hash(self.productDescription)
+ value = (value * 31) ^ hash(self.ownerName)
+ value = (value * 31) ^ hash(self.dataProductType)
+ value = (value * 31) ^ hash(self.productSize)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastModifiedTime)
+ value = (value * 31) ^ hash(self.productMetadata)
+ value = (value * 31) ^ hash(self.replicaLocations)
+ 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)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc
new file mode 100644
index 0000000..a0eec2f
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/replica/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/ttypes.py
new file mode 100644
index 0000000..7c4a551
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/data/resource/ttypes.py
@@ -0,0 +1,535 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.data.movement.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ReplicaLocationCategory:
+ GATEWAY_DATA_STORE = 0
+ COMPUTE_RESOURCE = 1
+ LONG_TERM_STORAGE_RESOURCE = 2
+ OTHER = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "GATEWAY_DATA_STORE",
+ 1: "COMPUTE_RESOURCE",
+ 2: "LONG_TERM_STORAGE_RESOURCE",
+ 3: "OTHER",
+ }
+
+ _NAMES_TO_VALUES = {
+ "GATEWAY_DATA_STORE": 0,
+ "COMPUTE_RESOURCE": 1,
+ "LONG_TERM_STORAGE_RESOURCE": 2,
+ "OTHER": 3,
+ }
+
+class ReplicaPersistentType:
+ TRANSIENT = 0
+ PERSISTENT = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "TRANSIENT",
+ 1: "PERSISTENT",
+ }
+
+ _NAMES_TO_VALUES = {
+ "TRANSIENT": 0,
+ "PERSISTENT": 1,
+ }
+
+class DataResourceType:
+ COLLECTION = 0
+ FILE = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "COLLECTION",
+ 1: "FILE",
+ }
+
+ _NAMES_TO_VALUES = {
+ "COLLECTION": 0,
+ "FILE": 1,
+ }
+
+
+class DataResourceModel:
+ """
+ Attributes:
+ - resourceId
+ - gatewayId
+ - parentResourceId
+ - resourceName
+ - resourceDescription
+ - ownerName
+ - dataResourceType
+ - resourceSize
+ - creationTime
+ - lastModifiedTime
+ - resourceMetadata
+ - replicaLocations
+ - childResources
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'resourceId', None, None, ), # 1
+ (2, TType.STRING, 'gatewayId', None, None, ), # 2
+ (3, TType.STRING, 'parentResourceId', None, None, ), # 3
+ (4, TType.STRING, 'resourceName', None, None, ), # 4
+ (5, TType.STRING, 'resourceDescription', None, None, ), # 5
+ (6, TType.STRING, 'ownerName', None, None, ), # 6
+ (7, TType.I32, 'dataResourceType', None, None, ), # 7
+ (8, TType.I32, 'resourceSize', None, None, ), # 8
+ (9, TType.I64, 'creationTime', None, None, ), # 9
+ (10, TType.I64, 'lastModifiedTime', None, None, ), # 10
+ (11, TType.MAP, 'resourceMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 11
+ (12, TType.LIST, 'replicaLocations', (TType.STRUCT,(DataReplicaLocationModel, DataReplicaLocationModel.thrift_spec)), None, ), # 12
+ (13, TType.LIST, 'childResources', (TType.STRUCT,(DataResourceModel, DataResourceModel.thrift_spec)), None, ), # 13
+ )
+
+ def __init__(self, resourceId=None, gatewayId=None, parentResourceId=None, resourceName=None, resourceDescription=None, ownerName=None, dataResourceType=None, resourceSize=None, creationTime=None, lastModifiedTime=None, resourceMetadata=None, replicaLocations=None, childResources=None,):
+ self.resourceId = resourceId
+ self.gatewayId = gatewayId
+ self.parentResourceId = parentResourceId
+ self.resourceName = resourceName
+ self.resourceDescription = resourceDescription
+ self.ownerName = ownerName
+ self.dataResourceType = dataResourceType
+ self.resourceSize = resourceSize
+ self.creationTime = creationTime
+ self.lastModifiedTime = lastModifiedTime
+ self.resourceMetadata = resourceMetadata
+ self.replicaLocations = replicaLocations
+ self.childResources = childResources
+
+ 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.resourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.parentResourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.resourceName = iprot.readString()
+ 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.STRING:
+ self.ownerName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I32:
+ self.dataResourceType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.resourceSize = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.I64:
+ self.lastModifiedTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.MAP:
+ self.resourceMetadata = {}
+ (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
+ for _i4 in xrange(_size0):
+ _key5 = iprot.readString()
+ _val6 = iprot.readString()
+ self.resourceMetadata[_key5] = _val6
+ iprot.readMapEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.replicaLocations = []
+ (_etype10, _size7) = iprot.readListBegin()
+ for _i11 in xrange(_size7):
+ _elem12 = DataReplicaLocationModel()
+ _elem12.read(iprot)
+ self.replicaLocations.append(_elem12)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.LIST:
+ self.childResources = []
+ (_etype16, _size13) = iprot.readListBegin()
+ for _i17 in xrange(_size13):
+ _elem18 = DataResourceModel()
+ _elem18.read(iprot)
+ self.childResources.append(_elem18)
+ 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('DataResourceModel')
+ if self.resourceId is not None:
+ oprot.writeFieldBegin('resourceId', TType.STRING, 1)
+ oprot.writeString(self.resourceId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.parentResourceId is not None:
+ oprot.writeFieldBegin('parentResourceId', TType.STRING, 3)
+ oprot.writeString(self.parentResourceId)
+ oprot.writeFieldEnd()
+ if self.resourceName is not None:
+ oprot.writeFieldBegin('resourceName', TType.STRING, 4)
+ oprot.writeString(self.resourceName)
+ oprot.writeFieldEnd()
+ if self.resourceDescription is not None:
+ oprot.writeFieldBegin('resourceDescription', TType.STRING, 5)
+ oprot.writeString(self.resourceDescription)
+ oprot.writeFieldEnd()
+ if self.ownerName is not None:
+ oprot.writeFieldBegin('ownerName', TType.STRING, 6)
+ oprot.writeString(self.ownerName)
+ oprot.writeFieldEnd()
+ if self.dataResourceType is not None:
+ oprot.writeFieldBegin('dataResourceType', TType.I32, 7)
+ oprot.writeI32(self.dataResourceType)
+ oprot.writeFieldEnd()
+ if self.resourceSize is not None:
+ oprot.writeFieldBegin('resourceSize', TType.I32, 8)
+ oprot.writeI32(self.resourceSize)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 9)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastModifiedTime is not None:
+ oprot.writeFieldBegin('lastModifiedTime', TType.I64, 10)
+ oprot.writeI64(self.lastModifiedTime)
+ oprot.writeFieldEnd()
+ if self.resourceMetadata is not None:
+ oprot.writeFieldBegin('resourceMetadata', TType.MAP, 11)
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.resourceMetadata))
+ for kiter19,viter20 in self.resourceMetadata.items():
+ oprot.writeString(kiter19)
+ oprot.writeString(viter20)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ if self.replicaLocations is not None:
+ oprot.writeFieldBegin('replicaLocations', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRUCT, len(self.replicaLocations))
+ for iter21 in self.replicaLocations:
+ iter21.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.childResources is not None:
+ oprot.writeFieldBegin('childResources', TType.LIST, 13)
+ oprot.writeListBegin(TType.STRUCT, len(self.childResources))
+ for iter22 in self.childResources:
+ iter22.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.resourceId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.parentResourceId)
+ value = (value * 31) ^ hash(self.resourceName)
+ value = (value * 31) ^ hash(self.resourceDescription)
+ value = (value * 31) ^ hash(self.ownerName)
+ value = (value * 31) ^ hash(self.dataResourceType)
+ value = (value * 31) ^ hash(self.resourceSize)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastModifiedTime)
+ value = (value * 31) ^ hash(self.resourceMetadata)
+ value = (value * 31) ^ hash(self.replicaLocations)
+ value = (value * 31) ^ hash(self.childResources)
+ 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 DataReplicaLocationModel:
+ """
+ Attributes:
+ - replicaId
+ - resourceId
+ - replicaName
+ - replicaDescription
+ - creationTime
+ - lastModifiedTime
+ - validUntilTime
+ - replicaLocationCategory
+ - replicaPersistentType
+ - storageResourceId
+ - fileAbsolutePath
+ - replicaMetadata
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'replicaId', None, None, ), # 1
+ (2, TType.STRING, 'resourceId', None, None, ), # 2
+ (3, TType.STRING, 'replicaName', None, None, ), # 3
+ (4, TType.STRING, 'replicaDescription', None, None, ), # 4
+ (5, TType.I64, 'creationTime', None, None, ), # 5
+ (6, TType.I64, 'lastModifiedTime', None, None, ), # 6
+ (7, TType.I64, 'validUntilTime', None, None, ), # 7
+ (8, TType.I32, 'replicaLocationCategory', None, None, ), # 8
+ (9, TType.I32, 'replicaPersistentType', None, None, ), # 9
+ (10, TType.STRING, 'storageResourceId', None, None, ), # 10
+ (11, TType.STRING, 'fileAbsolutePath', None, None, ), # 11
+ (12, TType.MAP, 'replicaMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 12
+ )
+
+ def __init__(self, replicaId=None, resourceId=None, replicaName=None, replicaDescription=None, creationTime=None, lastModifiedTime=None, validUntilTime=None, replicaLocationCategory=None, replicaPersistentType=None, storageResourceId=None, fileAbsolutePath=None, replicaMetadata=None,):
+ self.replicaId = replicaId
+ self.resourceId = resourceId
+ self.replicaName = replicaName
+ self.replicaDescription = replicaDescription
+ self.creationTime = creationTime
+ self.lastModifiedTime = lastModifiedTime
+ self.validUntilTime = validUntilTime
+ self.replicaLocationCategory = replicaLocationCategory
+ self.replicaPersistentType = replicaPersistentType
+ self.storageResourceId = storageResourceId
+ self.fileAbsolutePath = fileAbsolutePath
+ self.replicaMetadata = replicaMetadata
+
+ 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.replicaId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.resourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.replicaName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.replicaDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I64:
+ self.lastModifiedTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I64:
+ self.validUntilTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.replicaLocationCategory = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.I32:
+ self.replicaPersistentType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.storageResourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.fileAbsolutePath = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.MAP:
+ self.replicaMetadata = {}
+ (_ktype24, _vtype25, _size23 ) = iprot.readMapBegin()
+ for _i27 in xrange(_size23):
+ _key28 = iprot.readString()
+ _val29 = iprot.readString()
+ self.replicaMetadata[_key28] = _val29
+ 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('DataReplicaLocationModel')
+ if self.replicaId is not None:
+ oprot.writeFieldBegin('replicaId', TType.STRING, 1)
+ oprot.writeString(self.replicaId)
+ oprot.writeFieldEnd()
+ if self.resourceId is not None:
+ oprot.writeFieldBegin('resourceId', TType.STRING, 2)
+ oprot.writeString(self.resourceId)
+ oprot.writeFieldEnd()
+ if self.replicaName is not None:
+ oprot.writeFieldBegin('replicaName', TType.STRING, 3)
+ oprot.writeString(self.replicaName)
+ oprot.writeFieldEnd()
+ if self.replicaDescription is not None:
+ oprot.writeFieldBegin('replicaDescription', TType.STRING, 4)
+ oprot.writeString(self.replicaDescription)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 5)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastModifiedTime is not None:
+ oprot.writeFieldBegin('lastModifiedTime', TType.I64, 6)
+ oprot.writeI64(self.lastModifiedTime)
+ oprot.writeFieldEnd()
+ if self.validUntilTime is not None:
+ oprot.writeFieldBegin('validUntilTime', TType.I64, 7)
+ oprot.writeI64(self.validUntilTime)
+ oprot.writeFieldEnd()
+ if self.replicaLocationCategory is not None:
+ oprot.writeFieldBegin('replicaLocationCategory', TType.I32, 8)
+ oprot.writeI32(self.replicaLocationCategory)
+ oprot.writeFieldEnd()
+ if self.replicaPersistentType is not None:
+ oprot.writeFieldBegin('replicaPersistentType', TType.I32, 9)
+ oprot.writeI32(self.replicaPersistentType)
+ oprot.writeFieldEnd()
+ if self.storageResourceId is not None:
+ oprot.writeFieldBegin('storageResourceId', TType.STRING, 10)
+ oprot.writeString(self.storageResourceId)
+ oprot.writeFieldEnd()
+ if self.fileAbsolutePath is not None:
+ oprot.writeFieldBegin('fileAbsolutePath', TType.STRING, 11)
+ oprot.writeString(self.fileAbsolutePath)
+ oprot.writeFieldEnd()
+ if self.replicaMetadata is not None:
+ oprot.writeFieldBegin('replicaMetadata', TType.MAP, 12)
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.replicaMetadata))
+ for kiter30,viter31 in self.replicaMetadata.items():
+ oprot.writeString(kiter30)
+ oprot.writeString(viter31)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.replicaId)
+ value = (value * 31) ^ hash(self.resourceId)
+ value = (value * 31) ^ hash(self.replicaName)
+ value = (value * 31) ^ hash(self.replicaDescription)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastModifiedTime)
+ value = (value * 31) ^ hash(self.validUntilTime)
+ value = (value * 31) ^ hash(self.replicaLocationCategory)
+ value = (value * 31) ^ hash(self.replicaPersistentType)
+ value = (value * 31) ^ hash(self.storageResourceId)
+ value = (value * 31) ^ hash(self.fileAbsolutePath)
+ value = (value * 31) ^ hash(self.replicaMetadata)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc
new file mode 100644
index 0000000..46e6627
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
[12/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc
new file mode 100644
index 0000000..b3bb83c
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.py
new file mode 100644
index 0000000..e85fb34
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants', 'Airavata']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc
new file mode 100644
index 0000000..f0e0034
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/constants.py
new file mode 100644
index 0000000..fc60574
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/constants.py
@@ -0,0 +1,12 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
+AIRAVATA_API_VERSION = "0.16.0"
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc
new file mode 100644
index 0000000..4fb8cfc
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.py
new file mode 100644
index 0000000..522cc18
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.py
@@ -0,0 +1,940 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.experiment.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class AiravataErrorType:
+ """
+ A list of Airavata API Error Message Types
+
+ UNKNOWN: No information available about the error
+
+ PERMISSION_DENIED: Not permitted to perform action
+
+ INTERNAL_ERROR: Unexpected problem with the service
+
+ AUTHENTICATION_FAILURE: The client failed to authenticate.
+
+ INVALID_AUTHORIZATION: Security Token and/or Username and/or password is incorrect
+
+ AUTHORIZATION_EXPIRED: Authentication token expired
+
+ UNKNOWN_GATEWAY_ID: The gateway is not registered with Airavata.
+
+ UNSUPPORTED_OPERATION: Operation denied because it is currently unsupported.
+ """
+ UNKNOWN = 0
+ PERMISSION_DENIED = 1
+ INTERNAL_ERROR = 2
+ AUTHENTICATION_FAILURE = 3
+ INVALID_AUTHORIZATION = 4
+ AUTHORIZATION_EXPIRED = 5
+ UNKNOWN_GATEWAY_ID = 6
+ UNSUPPORTED_OPERATION = 7
+
+ _VALUES_TO_NAMES = {
+ 0: "UNKNOWN",
+ 1: "PERMISSION_DENIED",
+ 2: "INTERNAL_ERROR",
+ 3: "AUTHENTICATION_FAILURE",
+ 4: "INVALID_AUTHORIZATION",
+ 5: "AUTHORIZATION_EXPIRED",
+ 6: "UNKNOWN_GATEWAY_ID",
+ 7: "UNSUPPORTED_OPERATION",
+ }
+
+ _NAMES_TO_VALUES = {
+ "UNKNOWN": 0,
+ "PERMISSION_DENIED": 1,
+ "INTERNAL_ERROR": 2,
+ "AUTHENTICATION_FAILURE": 3,
+ "INVALID_AUTHORIZATION": 4,
+ "AUTHORIZATION_EXPIRED": 5,
+ "UNKNOWN_GATEWAY_ID": 6,
+ "UNSUPPORTED_OPERATION": 7,
+ }
+
+
+class ExperimentNotFoundException(TException):
+ """
+ This exception is thrown when a client asks to perform an operation on an experiment that does not exist.
+
+ identifier: A description of the experiment that was not found on the server.
+
+ key: The value passed from the client in the identifier, which was not found.
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('ExperimentNotFoundException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 ProjectNotFoundException(TException):
+ """
+ 1: optional string identifier,
+ 2: optional string key
+
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('ProjectNotFoundException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 InvalidRequestException(TException):
+ """
+ This exception is thrown for invalid requests that occur from any reasons like required input parameters are missing,
+ or a parameter is malformed.
+
+ message: contains the associated error message.
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('InvalidRequestException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 TimedOutException(TException):
+ """
+ This exception is thrown when RPC timeout gets exceeded.
+ """
+
+ thrift_spec = (
+ )
+
+ 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
+ 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('TimedOutException')
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ 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 AuthenticationException(TException):
+ """
+ This exception is thrown for invalid sshKeyAuthentication requests.
+
+ message: contains the cause of the authorization failure.
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('AuthenticationException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 AuthorizationException(TException):
+ """
+ This exception is thrown for invalid authorization requests such user does not have acces to an aplication or resource.
+
+ message: contains the authorization failure message
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('AuthorizationException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 AiravataClientException(TException):
+ """
+ This exception is thrown by Airavata Services when a call fails as a result of
+ a problem that a client may be able to resolve. For example, if the user
+ attempts to execute an application on a resource gateway does not have access to.
+
+ This exception would not be used for internal system errors that do not
+ reflect user actions, but rather reflect a problem within the service that
+ the client cannot resolve.
+
+ airavataErrorType: The message type indicating the error that occurred.
+ must be one of the values of AiravataErrorType.
+
+ parameter: If the error applied to a particular input parameter, this will
+ indicate which parameter.
+
+ Attributes:
+ - airavataErrorType
+ - parameter
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'airavataErrorType', None, None, ), # 1
+ (2, TType.STRING, 'parameter', None, None, ), # 2
+ )
+
+ def __init__(self, airavataErrorType=None, parameter=None,):
+ self.airavataErrorType = airavataErrorType
+ self.parameter = parameter
+
+ 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.I32:
+ self.airavataErrorType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.parameter = 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('AiravataClientException')
+ if self.airavataErrorType is not None:
+ oprot.writeFieldBegin('airavataErrorType', TType.I32, 1)
+ oprot.writeI32(self.airavataErrorType)
+ oprot.writeFieldEnd()
+ if self.parameter is not None:
+ oprot.writeFieldBegin('parameter', TType.STRING, 2)
+ oprot.writeString(self.parameter)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataErrorType is None:
+ raise TProtocol.TProtocolException(message='Required field airavataErrorType is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataErrorType)
+ value = (value * 31) ^ hash(self.parameter)
+ 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 ValidatorResult:
+ """
+ Attributes:
+ - result
+ - errorDetails
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'result', None, None, ), # 1
+ (2, TType.STRING, 'errorDetails', None, None, ), # 2
+ )
+
+ def __init__(self, result=None, errorDetails=None,):
+ self.result = result
+ self.errorDetails = errorDetails
+
+ 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.BOOL:
+ self.result = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.errorDetails = 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('ValidatorResult')
+ if self.result is not None:
+ oprot.writeFieldBegin('result', TType.BOOL, 1)
+ oprot.writeBool(self.result)
+ oprot.writeFieldEnd()
+ if self.errorDetails is not None:
+ oprot.writeFieldBegin('errorDetails', TType.STRING, 2)
+ oprot.writeString(self.errorDetails)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.result is None:
+ raise TProtocol.TProtocolException(message='Required field result is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.result)
+ value = (value * 31) ^ hash(self.errorDetails)
+ 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 ValidationResults:
+ """
+ Attributes:
+ - validationState
+ - validationResultList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'validationState', None, None, ), # 1
+ (2, TType.LIST, 'validationResultList', (TType.STRUCT,(ValidatorResult, ValidatorResult.thrift_spec)), None, ), # 2
+ )
+
+ def __init__(self, validationState=None, validationResultList=None,):
+ self.validationState = validationState
+ self.validationResultList = validationResultList
+
+ 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.BOOL:
+ self.validationState = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.LIST:
+ self.validationResultList = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = ValidatorResult()
+ _elem5.read(iprot)
+ self.validationResultList.append(_elem5)
+ 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('ValidationResults')
+ if self.validationState is not None:
+ oprot.writeFieldBegin('validationState', TType.BOOL, 1)
+ oprot.writeBool(self.validationState)
+ oprot.writeFieldEnd()
+ if self.validationResultList is not None:
+ oprot.writeFieldBegin('validationResultList', TType.LIST, 2)
+ oprot.writeListBegin(TType.STRUCT, len(self.validationResultList))
+ for iter6 in self.validationResultList:
+ iter6.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.validationState is None:
+ raise TProtocol.TProtocolException(message='Required field validationState is unset!')
+ if self.validationResultList is None:
+ raise TProtocol.TProtocolException(message='Required field validationResultList is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.validationState)
+ value = (value * 31) ^ hash(self.validationResultList)
+ 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 LaunchValidationException(TException):
+ """
+ Attributes:
+ - validationResult
+ - errorMessage
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRUCT, 'validationResult', (ValidationResults, ValidationResults.thrift_spec), None, ), # 1
+ (2, TType.STRING, 'errorMessage', None, None, ), # 2
+ )
+
+ def __init__(self, validationResult=None, errorMessage=None,):
+ self.validationResult = validationResult
+ self.errorMessage = errorMessage
+
+ 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.STRUCT:
+ self.validationResult = ValidationResults()
+ self.validationResult.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.errorMessage = 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('LaunchValidationException')
+ if self.validationResult is not None:
+ oprot.writeFieldBegin('validationResult', TType.STRUCT, 1)
+ self.validationResult.write(oprot)
+ oprot.writeFieldEnd()
+ if self.errorMessage is not None:
+ oprot.writeFieldBegin('errorMessage', TType.STRING, 2)
+ oprot.writeString(self.errorMessage)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.validationResult is None:
+ raise TProtocol.TProtocolException(message='Required field validationResult is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.validationResult)
+ value = (value * 31) ^ hash(self.errorMessage)
+ 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 AiravataSystemException(TException):
+ """
+ This exception is thrown by Airavata Services when a call fails as a result of
+ a problem in the service that could not be changed through client's action.
+
+ airavataErrorType: The message type indicating the error that occurred.
+ must be one of the values of AiravataErrorType.
+
+ message: This may contain additional information about the error
+
+
+ Attributes:
+ - airavataErrorType
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'airavataErrorType', None, None, ), # 1
+ (2, TType.STRING, 'message', None, None, ), # 2
+ )
+
+ def __init__(self, airavataErrorType=None, message=None,):
+ self.airavataErrorType = airavataErrorType
+ self.message = message
+
+ 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.I32:
+ self.airavataErrorType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.message = 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('AiravataSystemException')
+ if self.airavataErrorType is not None:
+ oprot.writeFieldBegin('airavataErrorType', TType.I32, 1)
+ oprot.writeI32(self.airavataErrorType)
+ oprot.writeFieldEnd()
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 2)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataErrorType is None:
+ raise TProtocol.TProtocolException(message='Required field airavataErrorType is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataErrorType)
+ value = (value * 31) ^ hash(self.message)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc
new file mode 100644
index 0000000..36167e2
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/error/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.py
new file mode 100644
index 0000000..ff33544
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.py
@@ -0,0 +1,37 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.api.error.ttypes
+import apache.airavata.model.security.ttypes
+import apache.airavata.model.ttypes
+import apache.airavata.model.status.ttypes
+import apache.airavata.model.job.ttypes
+import apache.airavata.model.experiment.ttypes
+import apache.airavata.model.workspace.ttypes
+import apache.airavata.model.scheduling.ttypes
+import apache.airavata.model.application.io.ttypes
+import apache.airavata.model.appcatalog.appdeployment.ttypes
+import apache.airavata.model.appcatalog.appinterface.ttypes
+import apache.airavata.model.appcatalog.computeresource.ttypes
+import apache.airavata.model.appcatalog.storageresource.ttypes
+import apache.airavata.model.appcatalog.gatewayprofile.ttypes
+import apache.airavata.model.data.movement.ttypes
+import apache.airavata.model.workflow.ttypes
+import apache.airavata.model.data.replica.ttypes
+import apache.airavata.model.group.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc
new file mode 100644
index 0000000..704ca78
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc
new file mode 100644
index 0000000..e54cd41
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc
new file mode 100644
index 0000000..638440f
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc
new file mode 100644
index 0000000..744413f
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.py
new file mode 100644
index 0000000..14fdbfa
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.py
@@ -0,0 +1,634 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+import apache.airavata.model.appcatalog.parallelism.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class SetEnvPaths:
+ """
+ Key Value pairs to be used to set environments
+
+ name:
+ Name of the environment variable such as PATH, LD_LIBRARY_PATH, NETCDF_HOME.
+
+ value:
+ Value of the environment variable to set
+
+ envPathOrder:
+ The order of the setting of the env variables when there are multiple env variables
+
+ Attributes:
+ - name
+ - value
+ - envPathOrder
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'name', None, None, ), # 1
+ (2, TType.STRING, 'value', None, None, ), # 2
+ (3, TType.I32, 'envPathOrder', None, None, ), # 3
+ )
+
+ def __init__(self, name=None, value=None, envPathOrder=None,):
+ self.name = name
+ self.value = value
+ self.envPathOrder = envPathOrder
+
+ 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.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.value = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.envPathOrder = 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('SetEnvPaths')
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 1)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.value is not None:
+ oprot.writeFieldBegin('value', TType.STRING, 2)
+ oprot.writeString(self.value)
+ oprot.writeFieldEnd()
+ if self.envPathOrder is not None:
+ oprot.writeFieldBegin('envPathOrder', TType.I32, 3)
+ oprot.writeI32(self.envPathOrder)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ if self.value is None:
+ raise TProtocol.TProtocolException(message='Required field value is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.value)
+ value = (value * 31) ^ hash(self.envPathOrder)
+ 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 CommandObject:
+ """
+ Job commands to be used in Pre Job, Post Job and Module Load Commands
+
+ command:
+ The actual command in string format
+
+ commandOrder:
+ Order of the command in the multiple command situation
+
+ Attributes:
+ - command
+ - commandOrder
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'command', None, None, ), # 1
+ (2, TType.I32, 'commandOrder', None, None, ), # 2
+ )
+
+ def __init__(self, command=None, commandOrder=None,):
+ self.command = command
+ self.commandOrder = commandOrder
+
+ 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.command = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.commandOrder = 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('CommandObject')
+ if self.command is not None:
+ oprot.writeFieldBegin('command', TType.STRING, 1)
+ oprot.writeString(self.command)
+ oprot.writeFieldEnd()
+ if self.commandOrder is not None:
+ oprot.writeFieldBegin('commandOrder', TType.I32, 2)
+ oprot.writeI32(self.commandOrder)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.command is None:
+ raise TProtocol.TProtocolException(message='Required field command is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.command)
+ value = (value * 31) ^ hash(self.commandOrder)
+ 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 ApplicationModule:
+ """
+ Application Module Information. A module has to be registered before registering a deployment.
+
+ appModuleId: Airavata Internal Unique Job ID. This is set by the registry.
+
+ appModuleName:
+ Name of the application module.
+
+ appModuleVersion:
+ Version of the application.
+
+ appModuleDescription:
+ Descriprion of the Module
+
+
+ Attributes:
+ - appModuleId
+ - appModuleName
+ - appModuleVersion
+ - appModuleDescription
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'appModuleId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'appModuleName', None, None, ), # 2
+ (3, TType.STRING, 'appModuleVersion', None, None, ), # 3
+ (4, TType.STRING, 'appModuleDescription', None, None, ), # 4
+ )
+
+ def __init__(self, appModuleId=thrift_spec[1][4], appModuleName=None, appModuleVersion=None, appModuleDescription=None,):
+ self.appModuleId = appModuleId
+ self.appModuleName = appModuleName
+ self.appModuleVersion = appModuleVersion
+ self.appModuleDescription = appModuleDescription
+
+ 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.appModuleId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.appModuleName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.appModuleVersion = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.appModuleDescription = 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('ApplicationModule')
+ if self.appModuleId is not None:
+ oprot.writeFieldBegin('appModuleId', TType.STRING, 1)
+ oprot.writeString(self.appModuleId)
+ oprot.writeFieldEnd()
+ if self.appModuleName is not None:
+ oprot.writeFieldBegin('appModuleName', TType.STRING, 2)
+ oprot.writeString(self.appModuleName)
+ oprot.writeFieldEnd()
+ if self.appModuleVersion is not None:
+ oprot.writeFieldBegin('appModuleVersion', TType.STRING, 3)
+ oprot.writeString(self.appModuleVersion)
+ oprot.writeFieldEnd()
+ if self.appModuleDescription is not None:
+ oprot.writeFieldBegin('appModuleDescription', TType.STRING, 4)
+ oprot.writeString(self.appModuleDescription)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.appModuleId is None:
+ raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
+ if self.appModuleName is None:
+ raise TProtocol.TProtocolException(message='Required field appModuleName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.appModuleId)
+ value = (value * 31) ^ hash(self.appModuleName)
+ value = (value * 31) ^ hash(self.appModuleVersion)
+ value = (value * 31) ^ hash(self.appModuleDescription)
+ 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 ApplicationDeploymentDescription:
+ """
+ Application Deployment Description
+
+ appDeploymentId: Airavata Internal Unique Job ID. This is set by the registry.
+
+ appModuleName:
+ Application Module Name. This has to be precise describing the binary.
+
+ computeHostId:
+ This ID maps application deployment to a particular resource previously described within Airavata.
+ Example: Stampede is first registered and refered when registering WRF.
+
+ moduleLoadCmd:
+ Command string to load modules. This will be placed in the job submisison
+ Ex: module load amber
+
+ libPrependPaths:
+ prepend to a path variable the value
+
+ libAppendPaths:
+ append to a path variable the value
+
+ setEnvironment:
+ assigns to the environment variable "NAME" the value
+
+
+ Attributes:
+ - appDeploymentId
+ - appModuleId
+ - computeHostId
+ - executablePath
+ - parallelism
+ - appDeploymentDescription
+ - moduleLoadCmds
+ - libPrependPaths
+ - libAppendPaths
+ - setEnvironment
+ - preJobCommands
+ - postJobCommands
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'appDeploymentId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'appModuleId', None, None, ), # 2
+ (3, TType.STRING, 'computeHostId', None, None, ), # 3
+ (4, TType.STRING, 'executablePath', None, None, ), # 4
+ (5, TType.I32, 'parallelism', None, 0, ), # 5
+ (6, TType.STRING, 'appDeploymentDescription', None, None, ), # 6
+ (7, TType.LIST, 'moduleLoadCmds', (TType.STRUCT,(CommandObject, CommandObject.thrift_spec)), None, ), # 7
+ (8, TType.LIST, 'libPrependPaths', (TType.STRUCT,(SetEnvPaths, SetEnvPaths.thrift_spec)), None, ), # 8
+ (9, TType.LIST, 'libAppendPaths', (TType.STRUCT,(SetEnvPaths, SetEnvPaths.thrift_spec)), None, ), # 9
+ (10, TType.LIST, 'setEnvironment', (TType.STRUCT,(SetEnvPaths, SetEnvPaths.thrift_spec)), None, ), # 10
+ (11, TType.LIST, 'preJobCommands', (TType.STRUCT,(CommandObject, CommandObject.thrift_spec)), None, ), # 11
+ (12, TType.LIST, 'postJobCommands', (TType.STRUCT,(CommandObject, CommandObject.thrift_spec)), None, ), # 12
+ )
+
+ def __init__(self, appDeploymentId=thrift_spec[1][4], appModuleId=None, computeHostId=None, executablePath=None, parallelism=thrift_spec[5][4], appDeploymentDescription=None, moduleLoadCmds=None, libPrependPaths=None, libAppendPaths=None, setEnvironment=None, preJobCommands=None, postJobCommands=None,):
+ self.appDeploymentId = appDeploymentId
+ self.appModuleId = appModuleId
+ self.computeHostId = computeHostId
+ self.executablePath = executablePath
+ self.parallelism = parallelism
+ self.appDeploymentDescription = appDeploymentDescription
+ self.moduleLoadCmds = moduleLoadCmds
+ self.libPrependPaths = libPrependPaths
+ self.libAppendPaths = libAppendPaths
+ self.setEnvironment = setEnvironment
+ self.preJobCommands = preJobCommands
+ self.postJobCommands = postJobCommands
+
+ 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.appDeploymentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.appModuleId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.computeHostId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.executablePath = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.parallelism = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.appDeploymentDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.moduleLoadCmds = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = CommandObject()
+ _elem5.read(iprot)
+ self.moduleLoadCmds.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.LIST:
+ self.libPrependPaths = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = SetEnvPaths()
+ _elem11.read(iprot)
+ self.libPrependPaths.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.libAppendPaths = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = SetEnvPaths()
+ _elem17.read(iprot)
+ self.libAppendPaths.append(_elem17)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.setEnvironment = []
+ (_etype21, _size18) = iprot.readListBegin()
+ for _i22 in xrange(_size18):
+ _elem23 = SetEnvPaths()
+ _elem23.read(iprot)
+ self.setEnvironment.append(_elem23)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.LIST:
+ self.preJobCommands = []
+ (_etype27, _size24) = iprot.readListBegin()
+ for _i28 in xrange(_size24):
+ _elem29 = CommandObject()
+ _elem29.read(iprot)
+ self.preJobCommands.append(_elem29)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.postJobCommands = []
+ (_etype33, _size30) = iprot.readListBegin()
+ for _i34 in xrange(_size30):
+ _elem35 = CommandObject()
+ _elem35.read(iprot)
+ self.postJobCommands.append(_elem35)
+ 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('ApplicationDeploymentDescription')
+ if self.appDeploymentId is not None:
+ oprot.writeFieldBegin('appDeploymentId', TType.STRING, 1)
+ oprot.writeString(self.appDeploymentId)
+ oprot.writeFieldEnd()
+ if self.appModuleId is not None:
+ oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+ oprot.writeString(self.appModuleId)
+ oprot.writeFieldEnd()
+ if self.computeHostId is not None:
+ oprot.writeFieldBegin('computeHostId', TType.STRING, 3)
+ oprot.writeString(self.computeHostId)
+ oprot.writeFieldEnd()
+ if self.executablePath is not None:
+ oprot.writeFieldBegin('executablePath', TType.STRING, 4)
+ oprot.writeString(self.executablePath)
+ oprot.writeFieldEnd()
+ if self.parallelism is not None:
+ oprot.writeFieldBegin('parallelism', TType.I32, 5)
+ oprot.writeI32(self.parallelism)
+ oprot.writeFieldEnd()
+ if self.appDeploymentDescription is not None:
+ oprot.writeFieldBegin('appDeploymentDescription', TType.STRING, 6)
+ oprot.writeString(self.appDeploymentDescription)
+ oprot.writeFieldEnd()
+ if self.moduleLoadCmds is not None:
+ oprot.writeFieldBegin('moduleLoadCmds', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.moduleLoadCmds))
+ for iter36 in self.moduleLoadCmds:
+ iter36.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.libPrependPaths is not None:
+ oprot.writeFieldBegin('libPrependPaths', TType.LIST, 8)
+ oprot.writeListBegin(TType.STRUCT, len(self.libPrependPaths))
+ for iter37 in self.libPrependPaths:
+ iter37.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.libAppendPaths is not None:
+ oprot.writeFieldBegin('libAppendPaths', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRUCT, len(self.libAppendPaths))
+ for iter38 in self.libAppendPaths:
+ iter38.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.setEnvironment is not None:
+ oprot.writeFieldBegin('setEnvironment', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.setEnvironment))
+ for iter39 in self.setEnvironment:
+ iter39.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.preJobCommands is not None:
+ oprot.writeFieldBegin('preJobCommands', TType.LIST, 11)
+ oprot.writeListBegin(TType.STRUCT, len(self.preJobCommands))
+ for iter40 in self.preJobCommands:
+ iter40.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.postJobCommands is not None:
+ oprot.writeFieldBegin('postJobCommands', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRUCT, len(self.postJobCommands))
+ for iter41 in self.postJobCommands:
+ iter41.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.appDeploymentId is None:
+ raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
+ if self.appModuleId is None:
+ raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
+ if self.computeHostId is None:
+ raise TProtocol.TProtocolException(message='Required field computeHostId is unset!')
+ if self.executablePath is None:
+ raise TProtocol.TProtocolException(message='Required field executablePath is unset!')
+ if self.parallelism is None:
+ raise TProtocol.TProtocolException(message='Required field parallelism is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.appDeploymentId)
+ value = (value * 31) ^ hash(self.appModuleId)
+ value = (value * 31) ^ hash(self.computeHostId)
+ value = (value * 31) ^ hash(self.executablePath)
+ value = (value * 31) ^ hash(self.parallelism)
+ value = (value * 31) ^ hash(self.appDeploymentDescription)
+ value = (value * 31) ^ hash(self.moduleLoadCmds)
+ value = (value * 31) ^ hash(self.libPrependPaths)
+ value = (value * 31) ^ hash(self.libAppendPaths)
+ value = (value * 31) ^ hash(self.setEnvironment)
+ value = (value * 31) ^ hash(self.preJobCommands)
+ value = (value * 31) ^ hash(self.postJobCommands)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc
new file mode 100644
index 0000000..73048c5
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc
new file mode 100644
index 0000000..2afd1e2
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.py
new file mode 100644
index 0000000..757058a
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.py
@@ -0,0 +1,219 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.application.io.ttypes
+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 ApplicationInterfaceDescription:
+ """
+ Application Interface Description
+
+ applicationModules:
+ Associate all application modules with versions which interface is applicable to.
+
+ applicationInputs:
+ Inputs to be passed to the application
+
+ applicationOutputs:
+ Outputs generated from the application
+
+
+ Attributes:
+ - applicationInterfaceId
+ - applicationName
+ - applicationDescription
+ - applicationModules
+ - applicationInputs
+ - applicationOutputs
+ - archiveWorkingDirectory
+ - hasOptionalFileInputs
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'applicationInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'applicationName', None, None, ), # 2
+ (3, TType.STRING, 'applicationDescription', None, None, ), # 3
+ (4, TType.LIST, 'applicationModules', (TType.STRING,None), None, ), # 4
+ (5, TType.LIST, 'applicationInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 5
+ (6, TType.LIST, 'applicationOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 6
+ (7, TType.BOOL, 'archiveWorkingDirectory', None, False, ), # 7
+ (8, TType.BOOL, 'hasOptionalFileInputs', None, None, ), # 8
+ )
+
+ def __init__(self, applicationInterfaceId=thrift_spec[1][4], applicationName=None, applicationDescription=None, applicationModules=None, applicationInputs=None, applicationOutputs=None, archiveWorkingDirectory=thrift_spec[7][4], hasOptionalFileInputs=None,):
+ self.applicationInterfaceId = applicationInterfaceId
+ self.applicationName = applicationName
+ self.applicationDescription = applicationDescription
+ self.applicationModules = applicationModules
+ self.applicationInputs = applicationInputs
+ self.applicationOutputs = applicationOutputs
+ self.archiveWorkingDirectory = archiveWorkingDirectory
+ self.hasOptionalFileInputs = hasOptionalFileInputs
+
+ 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.applicationInterfaceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.applicationName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.applicationDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.LIST:
+ self.applicationModules = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString()
+ self.applicationModules.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.LIST:
+ self.applicationInputs = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ _elem11.read(iprot)
+ self.applicationInputs.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.applicationOutputs = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem17.read(iprot)
+ self.applicationOutputs.append(_elem17)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.BOOL:
+ self.archiveWorkingDirectory = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.BOOL:
+ self.hasOptionalFileInputs = iprot.readBool()
+ 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('ApplicationInterfaceDescription')
+ if self.applicationInterfaceId is not None:
+ oprot.writeFieldBegin('applicationInterfaceId', TType.STRING, 1)
+ oprot.writeString(self.applicationInterfaceId)
+ oprot.writeFieldEnd()
+ if self.applicationName is not None:
+ oprot.writeFieldBegin('applicationName', TType.STRING, 2)
+ oprot.writeString(self.applicationName)
+ oprot.writeFieldEnd()
+ if self.applicationDescription is not None:
+ oprot.writeFieldBegin('applicationDescription', TType.STRING, 3)
+ oprot.writeString(self.applicationDescription)
+ oprot.writeFieldEnd()
+ if self.applicationModules is not None:
+ oprot.writeFieldBegin('applicationModules', TType.LIST, 4)
+ oprot.writeListBegin(TType.STRING, len(self.applicationModules))
+ for iter18 in self.applicationModules:
+ oprot.writeString(iter18)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.applicationInputs is not None:
+ oprot.writeFieldBegin('applicationInputs', TType.LIST, 5)
+ oprot.writeListBegin(TType.STRUCT, len(self.applicationInputs))
+ for iter19 in self.applicationInputs:
+ iter19.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.applicationOutputs is not None:
+ oprot.writeFieldBegin('applicationOutputs', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.applicationOutputs))
+ for iter20 in self.applicationOutputs:
+ iter20.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.archiveWorkingDirectory is not None:
+ oprot.writeFieldBegin('archiveWorkingDirectory', TType.BOOL, 7)
+ oprot.writeBool(self.archiveWorkingDirectory)
+ oprot.writeFieldEnd()
+ if self.hasOptionalFileInputs is not None:
+ oprot.writeFieldBegin('hasOptionalFileInputs', TType.BOOL, 8)
+ oprot.writeBool(self.hasOptionalFileInputs)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.applicationInterfaceId is None:
+ raise TProtocol.TProtocolException(message='Required field applicationInterfaceId is unset!')
+ if self.applicationName is None:
+ raise TProtocol.TProtocolException(message='Required field applicationName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.applicationInterfaceId)
+ value = (value * 31) ^ hash(self.applicationName)
+ value = (value * 31) ^ hash(self.applicationDescription)
+ value = (value * 31) ^ hash(self.applicationModules)
+ value = (value * 31) ^ hash(self.applicationInputs)
+ value = (value * 31) ^ hash(self.applicationOutputs)
+ value = (value * 31) ^ hash(self.archiveWorkingDirectory)
+ value = (value * 31) ^ hash(self.hasOptionalFileInputs)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc
new file mode 100644
index 0000000..3afed92
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/appinterface/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc
new file mode 100644
index 0000000..2a2fba7
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
[16/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.py
new file mode 100644
index 0000000..dc2b095
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.py
@@ -0,0 +1,406 @@
+#
+# 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.
+#
+
+from thrift.Thrift import *
+
+
+class TProtocolException(TException):
+ """Custom Protocol Exception class"""
+
+ UNKNOWN = 0
+ INVALID_DATA = 1
+ NEGATIVE_SIZE = 2
+ SIZE_LIMIT = 3
+ BAD_VERSION = 4
+
+ def __init__(self, type=UNKNOWN, message=None):
+ TException.__init__(self, message)
+ self.type = type
+
+
+class TProtocolBase:
+ """Base class for Thrift protocol driver."""
+
+ def __init__(self, trans):
+ self.trans = trans
+
+ def writeMessageBegin(self, name, ttype, seqid):
+ pass
+
+ def writeMessageEnd(self):
+ pass
+
+ def writeStructBegin(self, name):
+ pass
+
+ def writeStructEnd(self):
+ pass
+
+ def writeFieldBegin(self, name, ttype, fid):
+ pass
+
+ def writeFieldEnd(self):
+ pass
+
+ def writeFieldStop(self):
+ pass
+
+ def writeMapBegin(self, ktype, vtype, size):
+ pass
+
+ def writeMapEnd(self):
+ pass
+
+ def writeListBegin(self, etype, size):
+ pass
+
+ def writeListEnd(self):
+ pass
+
+ def writeSetBegin(self, etype, size):
+ pass
+
+ def writeSetEnd(self):
+ pass
+
+ def writeBool(self, bool_val):
+ pass
+
+ def writeByte(self, byte):
+ pass
+
+ def writeI16(self, i16):
+ pass
+
+ def writeI32(self, i32):
+ pass
+
+ def writeI64(self, i64):
+ pass
+
+ def writeDouble(self, dub):
+ pass
+
+ def writeString(self, str_val):
+ pass
+
+ def readMessageBegin(self):
+ pass
+
+ def readMessageEnd(self):
+ pass
+
+ def readStructBegin(self):
+ pass
+
+ def readStructEnd(self):
+ pass
+
+ def readFieldBegin(self):
+ pass
+
+ def readFieldEnd(self):
+ pass
+
+ def readMapBegin(self):
+ pass
+
+ def readMapEnd(self):
+ pass
+
+ def readListBegin(self):
+ pass
+
+ def readListEnd(self):
+ pass
+
+ def readSetBegin(self):
+ pass
+
+ def readSetEnd(self):
+ pass
+
+ def readBool(self):
+ pass
+
+ def readByte(self):
+ pass
+
+ def readI16(self):
+ pass
+
+ def readI32(self):
+ pass
+
+ def readI64(self):
+ pass
+
+ def readDouble(self):
+ pass
+
+ def readString(self):
+ pass
+
+ def skip(self, ttype):
+ if ttype == TType.STOP:
+ return
+ elif ttype == TType.BOOL:
+ self.readBool()
+ elif ttype == TType.BYTE:
+ self.readByte()
+ elif ttype == TType.I16:
+ self.readI16()
+ elif ttype == TType.I32:
+ self.readI32()
+ elif ttype == TType.I64:
+ self.readI64()
+ elif ttype == TType.DOUBLE:
+ self.readDouble()
+ elif ttype == TType.STRING:
+ self.readString()
+ elif ttype == TType.STRUCT:
+ name = self.readStructBegin()
+ while True:
+ (name, ttype, id) = self.readFieldBegin()
+ if ttype == TType.STOP:
+ break
+ self.skip(ttype)
+ self.readFieldEnd()
+ self.readStructEnd()
+ elif ttype == TType.MAP:
+ (ktype, vtype, size) = self.readMapBegin()
+ for i in xrange(size):
+ self.skip(ktype)
+ self.skip(vtype)
+ self.readMapEnd()
+ elif ttype == TType.SET:
+ (etype, size) = self.readSetBegin()
+ for i in xrange(size):
+ self.skip(etype)
+ self.readSetEnd()
+ elif ttype == TType.LIST:
+ (etype, size) = self.readListBegin()
+ for i in xrange(size):
+ self.skip(etype)
+ self.readListEnd()
+
+ # tuple of: ( 'reader method' name, is_container bool, 'writer_method' name )
+ _TTYPE_HANDLERS = (
+ (None, None, False), # 0 TType.STOP
+ (None, None, False), # 1 TType.VOID # TODO: handle void?
+ ('readBool', 'writeBool', False), # 2 TType.BOOL
+ ('readByte', 'writeByte', False), # 3 TType.BYTE and I08
+ ('readDouble', 'writeDouble', False), # 4 TType.DOUBLE
+ (None, None, False), # 5 undefined
+ ('readI16', 'writeI16', False), # 6 TType.I16
+ (None, None, False), # 7 undefined
+ ('readI32', 'writeI32', False), # 8 TType.I32
+ (None, None, False), # 9 undefined
+ ('readI64', 'writeI64', False), # 10 TType.I64
+ ('readString', 'writeString', False), # 11 TType.STRING and UTF7
+ ('readContainerStruct', 'writeContainerStruct', True), # 12 *.STRUCT
+ ('readContainerMap', 'writeContainerMap', True), # 13 TType.MAP
+ ('readContainerSet', 'writeContainerSet', True), # 14 TType.SET
+ ('readContainerList', 'writeContainerList', True), # 15 TType.LIST
+ (None, None, False), # 16 TType.UTF8 # TODO: handle utf8 types?
+ (None, None, False) # 17 TType.UTF16 # TODO: handle utf16 types?
+ )
+
+ def readFieldByTType(self, ttype, spec):
+ try:
+ (r_handler, w_handler, is_container) = self._TTYPE_HANDLERS[ttype]
+ except IndexError:
+ raise TProtocolException(type=TProtocolException.INVALID_DATA,
+ message='Invalid field type %d' % (ttype))
+ if r_handler is None:
+ raise TProtocolException(type=TProtocolException.INVALID_DATA,
+ message='Invalid field type %d' % (ttype))
+ reader = getattr(self, r_handler)
+ if not is_container:
+ return reader()
+ return reader(spec)
+
+ def readContainerList(self, spec):
+ results = []
+ ttype, tspec = spec[0], spec[1]
+ r_handler = self._TTYPE_HANDLERS[ttype][0]
+ reader = getattr(self, r_handler)
+ (list_type, list_len) = self.readListBegin()
+ if tspec is None:
+ # list values are simple types
+ for idx in xrange(list_len):
+ results.append(reader())
+ else:
+ # this is like an inlined readFieldByTType
+ container_reader = self._TTYPE_HANDLERS[list_type][0]
+ val_reader = getattr(self, container_reader)
+ for idx in xrange(list_len):
+ val = val_reader(tspec)
+ results.append(val)
+ self.readListEnd()
+ return results
+
+ def readContainerSet(self, spec):
+ results = set()
+ ttype, tspec = spec[0], spec[1]
+ r_handler = self._TTYPE_HANDLERS[ttype][0]
+ reader = getattr(self, r_handler)
+ (set_type, set_len) = self.readSetBegin()
+ if tspec is None:
+ # set members are simple types
+ for idx in xrange(set_len):
+ results.add(reader())
+ else:
+ container_reader = self._TTYPE_HANDLERS[set_type][0]
+ val_reader = getattr(self, container_reader)
+ for idx in xrange(set_len):
+ results.add(val_reader(tspec))
+ self.readSetEnd()
+ return results
+
+ def readContainerStruct(self, spec):
+ (obj_class, obj_spec) = spec
+ obj = obj_class()
+ obj.read(self)
+ return obj
+
+ def readContainerMap(self, spec):
+ results = dict()
+ key_ttype, key_spec = spec[0], spec[1]
+ val_ttype, val_spec = spec[2], spec[3]
+ (map_ktype, map_vtype, map_len) = self.readMapBegin()
+ # TODO: compare types we just decoded with thrift_spec and
+ # abort/skip if types disagree
+ key_reader = getattr(self, self._TTYPE_HANDLERS[key_ttype][0])
+ val_reader = getattr(self, self._TTYPE_HANDLERS[val_ttype][0])
+ # list values are simple types
+ for idx in xrange(map_len):
+ if key_spec is None:
+ k_val = key_reader()
+ else:
+ k_val = self.readFieldByTType(key_ttype, key_spec)
+ if val_spec is None:
+ v_val = val_reader()
+ else:
+ v_val = self.readFieldByTType(val_ttype, val_spec)
+ # this raises a TypeError with unhashable keys types
+ # i.e. this fails: d=dict(); d[[0,1]] = 2
+ results[k_val] = v_val
+ self.readMapEnd()
+ return results
+
+ def readStruct(self, obj, thrift_spec):
+ self.readStructBegin()
+ while True:
+ (fname, ftype, fid) = self.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ try:
+ field = thrift_spec[fid]
+ except IndexError:
+ self.skip(ftype)
+ else:
+ if field is not None and ftype == field[1]:
+ fname = field[2]
+ fspec = field[3]
+ val = self.readFieldByTType(ftype, fspec)
+ setattr(obj, fname, val)
+ else:
+ self.skip(ftype)
+ self.readFieldEnd()
+ self.readStructEnd()
+
+ def writeContainerStruct(self, val, spec):
+ val.write(self)
+
+ def writeContainerList(self, val, spec):
+ self.writeListBegin(spec[0], len(val))
+ r_handler, w_handler, is_container = self._TTYPE_HANDLERS[spec[0]]
+ e_writer = getattr(self, w_handler)
+ if not is_container:
+ for elem in val:
+ e_writer(elem)
+ else:
+ for elem in val:
+ e_writer(elem, spec[1])
+ self.writeListEnd()
+
+ def writeContainerSet(self, val, spec):
+ self.writeSetBegin(spec[0], len(val))
+ r_handler, w_handler, is_container = self._TTYPE_HANDLERS[spec[0]]
+ e_writer = getattr(self, w_handler)
+ if not is_container:
+ for elem in val:
+ e_writer(elem)
+ else:
+ for elem in val:
+ e_writer(elem, spec[1])
+ self.writeSetEnd()
+
+ def writeContainerMap(self, val, spec):
+ k_type = spec[0]
+ v_type = spec[2]
+ ignore, ktype_name, k_is_container = self._TTYPE_HANDLERS[k_type]
+ ignore, vtype_name, v_is_container = self._TTYPE_HANDLERS[v_type]
+ k_writer = getattr(self, ktype_name)
+ v_writer = getattr(self, vtype_name)
+ self.writeMapBegin(k_type, v_type, len(val))
+ for m_key, m_val in val.iteritems():
+ if not k_is_container:
+ k_writer(m_key)
+ else:
+ k_writer(m_key, spec[1])
+ if not v_is_container:
+ v_writer(m_val)
+ else:
+ v_writer(m_val, spec[3])
+ self.writeMapEnd()
+
+ def writeStruct(self, obj, thrift_spec):
+ self.writeStructBegin(obj.__class__.__name__)
+ for field in thrift_spec:
+ if field is None:
+ continue
+ fname = field[2]
+ val = getattr(obj, fname)
+ if val is None:
+ # skip writing out unset fields
+ continue
+ fid = field[0]
+ ftype = field[1]
+ fspec = field[3]
+ # get the writer method for this value
+ self.writeFieldBegin(fname, ftype, fid)
+ self.writeFieldByTType(ftype, val, fspec)
+ self.writeFieldEnd()
+ self.writeFieldStop()
+ self.writeStructEnd()
+
+ def writeFieldByTType(self, ttype, val, spec):
+ r_handler, w_handler, is_container = self._TTYPE_HANDLERS[ttype]
+ writer = getattr(self, w_handler)
+ if is_container:
+ writer(val, spec)
+ else:
+ writer(val)
+
+
+class TProtocolFactory:
+ def getProtocol(self, trans):
+ pass
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc
new file mode 100644
index 0000000..f56fe4a
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TProtocol.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.py
new file mode 100644
index 0000000..7eefb45
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.py
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+__all__ = ['fastbinary', 'TBase', 'TBinaryProtocol', 'TCompactProtocol', 'TJSONProtocol', 'TProtocol']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc
new file mode 100644
index 0000000..ca53f73
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/fastbinary.c
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/fastbinary.c b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/fastbinary.c
new file mode 100644
index 0000000..2ce5660
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/fastbinary.c
@@ -0,0 +1,1219 @@
+/*
+ * 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.
+ */
+
+#include <Python.h>
+#include "cStringIO.h"
+#include <stdint.h>
+#ifndef _WIN32
+# include <stdbool.h>
+# include <netinet/in.h>
+#else
+# include <WinSock2.h>
+# pragma comment (lib, "ws2_32.lib")
+# define BIG_ENDIAN (4321)
+# define LITTLE_ENDIAN (1234)
+# define BYTE_ORDER LITTLE_ENDIAN
+# if defined(_MSC_VER) && _MSC_VER < 1600
+ typedef int _Bool;
+# define bool _Bool
+# define false 0
+# define true 1
+# endif
+# define inline __inline
+#endif
+
+/* Fix endianness issues on Solaris */
+#if defined (__SVR4) && defined (__sun)
+ #if defined(__i386) && !defined(__i386__)
+ #define __i386__
+ #endif
+
+ #ifndef BIG_ENDIAN
+ #define BIG_ENDIAN (4321)
+ #endif
+ #ifndef LITTLE_ENDIAN
+ #define LITTLE_ENDIAN (1234)
+ #endif
+
+ /* I386 is LE, even on Solaris */
+ #if !defined(BYTE_ORDER) && defined(__i386__)
+ #define BYTE_ORDER LITTLE_ENDIAN
+ #endif
+#endif
+
+// TODO(dreiss): defval appears to be unused. Look into removing it.
+// TODO(dreiss): Make parse_spec_args recursive, and cache the output
+// permanently in the object. (Malloc and orphan.)
+// TODO(dreiss): Why do we need cStringIO for reading, why not just char*?
+// Can cStringIO let us work with a BufferedTransport?
+// TODO(dreiss): Don't ignore the rv from cwrite (maybe).
+
+/* ====== BEGIN UTILITIES ====== */
+
+#define INIT_OUTBUF_SIZE 128
+
+// Stolen out of TProtocol.h.
+// It would be a huge pain to have both get this from one place.
+typedef enum TType {
+ T_STOP = 0,
+ T_VOID = 1,
+ T_BOOL = 2,
+ T_BYTE = 3,
+ T_I08 = 3,
+ T_I16 = 6,
+ T_I32 = 8,
+ T_U64 = 9,
+ T_I64 = 10,
+ T_DOUBLE = 4,
+ T_STRING = 11,
+ T_UTF7 = 11,
+ T_STRUCT = 12,
+ T_MAP = 13,
+ T_SET = 14,
+ T_LIST = 15,
+ T_UTF8 = 16,
+ T_UTF16 = 17
+} TType;
+
+#ifndef __BYTE_ORDER
+# if defined(BYTE_ORDER) && defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN)
+# define __BYTE_ORDER BYTE_ORDER
+# define __LITTLE_ENDIAN LITTLE_ENDIAN
+# define __BIG_ENDIAN BIG_ENDIAN
+# else
+# error "Cannot determine endianness"
+# endif
+#endif
+
+// Same comment as the enum. Sorry.
+#if __BYTE_ORDER == __BIG_ENDIAN
+# define ntohll(n) (n)
+# define htonll(n) (n)
+#elif __BYTE_ORDER == __LITTLE_ENDIAN
+# if defined(__GNUC__) && defined(__GLIBC__)
+# include <byteswap.h>
+# define ntohll(n) bswap_64(n)
+# define htonll(n) bswap_64(n)
+# else /* GNUC & GLIBC */
+# define ntohll(n) ( (((unsigned long long)ntohl(n)) << 32) + ntohl(n >> 32) )
+# define htonll(n) ( (((unsigned long long)htonl(n)) << 32) + htonl(n >> 32) )
+# endif /* GNUC & GLIBC */
+#else /* __BYTE_ORDER */
+# error "Can't define htonll or ntohll!"
+#endif
+
+// Doing a benchmark shows that interning actually makes a difference, amazingly.
+#define INTERN_STRING(value) _intern_ ## value
+
+#define INT_CONV_ERROR_OCCURRED(v) ( ((v) == -1) && PyErr_Occurred() )
+#define CHECK_RANGE(v, min, max) ( ((v) <= (max)) && ((v) >= (min)) )
+
+// Py_ssize_t was not defined before Python 2.5
+#if (PY_VERSION_HEX < 0x02050000)
+typedef int Py_ssize_t;
+#endif
+
+/**
+ * A cache of the spec_args for a set or list,
+ * so we don't have to keep calling PyTuple_GET_ITEM.
+ */
+typedef struct {
+ TType element_type;
+ PyObject* typeargs;
+} SetListTypeArgs;
+
+/**
+ * A cache of the spec_args for a map,
+ * so we don't have to keep calling PyTuple_GET_ITEM.
+ */
+typedef struct {
+ TType ktag;
+ TType vtag;
+ PyObject* ktypeargs;
+ PyObject* vtypeargs;
+} MapTypeArgs;
+
+/**
+ * A cache of the spec_args for a struct,
+ * so we don't have to keep calling PyTuple_GET_ITEM.
+ */
+typedef struct {
+ PyObject* klass;
+ PyObject* spec;
+} StructTypeArgs;
+
+/**
+ * A cache of the item spec from a struct specification,
+ * so we don't have to keep calling PyTuple_GET_ITEM.
+ */
+typedef struct {
+ int tag;
+ TType type;
+ PyObject* attrname;
+ PyObject* typeargs;
+ PyObject* defval;
+} StructItemSpec;
+
+/**
+ * A cache of the two key attributes of a CReadableTransport,
+ * so we don't have to keep calling PyObject_GetAttr.
+ */
+typedef struct {
+ PyObject* stringiobuf;
+ PyObject* refill_callable;
+} DecodeBuffer;
+
+/** Pointer to interned string to speed up attribute lookup. */
+static PyObject* INTERN_STRING(cstringio_buf);
+/** Pointer to interned string to speed up attribute lookup. */
+static PyObject* INTERN_STRING(cstringio_refill);
+
+static inline bool
+check_ssize_t_32(Py_ssize_t len) {
+ // error from getting the int
+ if (INT_CONV_ERROR_OCCURRED(len)) {
+ return false;
+ }
+ if (!CHECK_RANGE(len, 0, INT32_MAX)) {
+ PyErr_SetString(PyExc_OverflowError, "string size out of range");
+ return false;
+ }
+ return true;
+}
+
+static inline bool
+parse_pyint(PyObject* o, int32_t* ret, int32_t min, int32_t max) {
+ long val = PyInt_AsLong(o);
+
+ if (INT_CONV_ERROR_OCCURRED(val)) {
+ return false;
+ }
+ if (!CHECK_RANGE(val, min, max)) {
+ PyErr_SetString(PyExc_OverflowError, "int out of range");
+ return false;
+ }
+
+ *ret = (int32_t) val;
+ return true;
+}
+
+
+/* --- FUNCTIONS TO PARSE STRUCT SPECIFICATOINS --- */
+
+static bool
+parse_set_list_args(SetListTypeArgs* dest, PyObject* typeargs) {
+ if (PyTuple_Size(typeargs) != 2) {
+ PyErr_SetString(PyExc_TypeError, "expecting tuple of size 2 for list/set type args");
+ return false;
+ }
+
+ dest->element_type = PyInt_AsLong(PyTuple_GET_ITEM(typeargs, 0));
+ if (INT_CONV_ERROR_OCCURRED(dest->element_type)) {
+ return false;
+ }
+
+ dest->typeargs = PyTuple_GET_ITEM(typeargs, 1);
+
+ return true;
+}
+
+static bool
+parse_map_args(MapTypeArgs* dest, PyObject* typeargs) {
+ if (PyTuple_Size(typeargs) != 4) {
+ PyErr_SetString(PyExc_TypeError, "expecting 4 arguments for typeargs to map");
+ return false;
+ }
+
+ dest->ktag = PyInt_AsLong(PyTuple_GET_ITEM(typeargs, 0));
+ if (INT_CONV_ERROR_OCCURRED(dest->ktag)) {
+ return false;
+ }
+
+ dest->vtag = PyInt_AsLong(PyTuple_GET_ITEM(typeargs, 2));
+ if (INT_CONV_ERROR_OCCURRED(dest->vtag)) {
+ return false;
+ }
+
+ dest->ktypeargs = PyTuple_GET_ITEM(typeargs, 1);
+ dest->vtypeargs = PyTuple_GET_ITEM(typeargs, 3);
+
+ return true;
+}
+
+static bool
+parse_struct_args(StructTypeArgs* dest, PyObject* typeargs) {
+ if (PyTuple_Size(typeargs) != 2) {
+ PyErr_SetString(PyExc_TypeError, "expecting tuple of size 2 for struct args");
+ return false;
+ }
+
+ dest->klass = PyTuple_GET_ITEM(typeargs, 0);
+ dest->spec = PyTuple_GET_ITEM(typeargs, 1);
+
+ return true;
+}
+
+static int
+parse_struct_item_spec(StructItemSpec* dest, PyObject* spec_tuple) {
+
+ // i'd like to use ParseArgs here, but it seems to be a bottleneck.
+ if (PyTuple_Size(spec_tuple) != 5) {
+ PyErr_SetString(PyExc_TypeError, "expecting 5 arguments for spec tuple");
+ return false;
+ }
+
+ dest->tag = PyInt_AsLong(PyTuple_GET_ITEM(spec_tuple, 0));
+ if (INT_CONV_ERROR_OCCURRED(dest->tag)) {
+ return false;
+ }
+
+ dest->type = PyInt_AsLong(PyTuple_GET_ITEM(spec_tuple, 1));
+ if (INT_CONV_ERROR_OCCURRED(dest->type)) {
+ return false;
+ }
+
+ dest->attrname = PyTuple_GET_ITEM(spec_tuple, 2);
+ dest->typeargs = PyTuple_GET_ITEM(spec_tuple, 3);
+ dest->defval = PyTuple_GET_ITEM(spec_tuple, 4);
+ return true;
+}
+
+/* ====== END UTILITIES ====== */
+
+
+/* ====== BEGIN WRITING FUNCTIONS ====== */
+
+/* --- LOW-LEVEL WRITING FUNCTIONS --- */
+
+static void writeByte(PyObject* outbuf, int8_t val) {
+ int8_t net = val;
+ PycStringIO->cwrite(outbuf, (char*)&net, sizeof(int8_t));
+}
+
+static void writeI16(PyObject* outbuf, int16_t val) {
+ int16_t net = (int16_t)htons(val);
+ PycStringIO->cwrite(outbuf, (char*)&net, sizeof(int16_t));
+}
+
+static void writeI32(PyObject* outbuf, int32_t val) {
+ int32_t net = (int32_t)htonl(val);
+ PycStringIO->cwrite(outbuf, (char*)&net, sizeof(int32_t));
+}
+
+static void writeI64(PyObject* outbuf, int64_t val) {
+ int64_t net = (int64_t)htonll(val);
+ PycStringIO->cwrite(outbuf, (char*)&net, sizeof(int64_t));
+}
+
+static void writeDouble(PyObject* outbuf, double dub) {
+ // Unfortunately, bitwise_cast doesn't work in C. Bad C!
+ union {
+ double f;
+ int64_t t;
+ } transfer;
+ transfer.f = dub;
+ writeI64(outbuf, transfer.t);
+}
+
+
+/* --- MAIN RECURSIVE OUTPUT FUCNTION -- */
+
+static int
+output_val(PyObject* output, PyObject* value, TType type, PyObject* typeargs) {
+ /*
+ * Refcounting Strategy:
+ *
+ * We assume that elements of the thrift_spec tuple are not going to be
+ * mutated, so we don't ref count those at all. Other than that, we try to
+ * keep a reference to all the user-created objects while we work with them.
+ * output_val assumes that a reference is already held. The *caller* is
+ * responsible for handling references
+ */
+
+ switch (type) {
+
+ case T_BOOL: {
+ int v = PyObject_IsTrue(value);
+ if (v == -1) {
+ return false;
+ }
+
+ writeByte(output, (int8_t) v);
+ break;
+ }
+ case T_I08: {
+ int32_t val;
+
+ if (!parse_pyint(value, &val, INT8_MIN, INT8_MAX)) {
+ return false;
+ }
+
+ writeByte(output, (int8_t) val);
+ break;
+ }
+ case T_I16: {
+ int32_t val;
+
+ if (!parse_pyint(value, &val, INT16_MIN, INT16_MAX)) {
+ return false;
+ }
+
+ writeI16(output, (int16_t) val);
+ break;
+ }
+ case T_I32: {
+ int32_t val;
+
+ if (!parse_pyint(value, &val, INT32_MIN, INT32_MAX)) {
+ return false;
+ }
+
+ writeI32(output, val);
+ break;
+ }
+ case T_I64: {
+ int64_t nval = PyLong_AsLongLong(value);
+
+ if (INT_CONV_ERROR_OCCURRED(nval)) {
+ return false;
+ }
+
+ if (!CHECK_RANGE(nval, INT64_MIN, INT64_MAX)) {
+ PyErr_SetString(PyExc_OverflowError, "int out of range");
+ return false;
+ }
+
+ writeI64(output, nval);
+ break;
+ }
+
+ case T_DOUBLE: {
+ double nval = PyFloat_AsDouble(value);
+ if (nval == -1.0 && PyErr_Occurred()) {
+ return false;
+ }
+
+ writeDouble(output, nval);
+ break;
+ }
+
+ case T_STRING: {
+ Py_ssize_t len = PyString_Size(value);
+
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ writeI32(output, (int32_t) len);
+ PycStringIO->cwrite(output, PyString_AsString(value), (int32_t) len);
+ break;
+ }
+
+ case T_LIST:
+ case T_SET: {
+ Py_ssize_t len;
+ SetListTypeArgs parsedargs;
+ PyObject *item;
+ PyObject *iterator;
+
+ if (!parse_set_list_args(&parsedargs, typeargs)) {
+ return false;
+ }
+
+ len = PyObject_Length(value);
+
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ writeByte(output, parsedargs.element_type);
+ writeI32(output, (int32_t) len);
+
+ iterator = PyObject_GetIter(value);
+ if (iterator == NULL) {
+ return false;
+ }
+
+ while ((item = PyIter_Next(iterator))) {
+ if (!output_val(output, item, parsedargs.element_type, parsedargs.typeargs)) {
+ Py_DECREF(item);
+ Py_DECREF(iterator);
+ return false;
+ }
+ Py_DECREF(item);
+ }
+
+ Py_DECREF(iterator);
+
+ if (PyErr_Occurred()) {
+ return false;
+ }
+
+ break;
+ }
+
+ case T_MAP: {
+ PyObject *k, *v;
+ Py_ssize_t pos = 0;
+ Py_ssize_t len;
+
+ MapTypeArgs parsedargs;
+
+ len = PyDict_Size(value);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ if (!parse_map_args(&parsedargs, typeargs)) {
+ return false;
+ }
+
+ writeByte(output, parsedargs.ktag);
+ writeByte(output, parsedargs.vtag);
+ writeI32(output, len);
+
+ // TODO(bmaurer): should support any mapping, not just dicts
+ while (PyDict_Next(value, &pos, &k, &v)) {
+ // TODO(dreiss): Think hard about whether these INCREFs actually
+ // turn any unsafe scenarios into safe scenarios.
+ Py_INCREF(k);
+ Py_INCREF(v);
+
+ if (!output_val(output, k, parsedargs.ktag, parsedargs.ktypeargs)
+ || !output_val(output, v, parsedargs.vtag, parsedargs.vtypeargs)) {
+ Py_DECREF(k);
+ Py_DECREF(v);
+ return false;
+ }
+ Py_DECREF(k);
+ Py_DECREF(v);
+ }
+ break;
+ }
+
+ // TODO(dreiss): Consider breaking this out as a function
+ // the way we did for decode_struct.
+ case T_STRUCT: {
+ StructTypeArgs parsedargs;
+ Py_ssize_t nspec;
+ Py_ssize_t i;
+
+ if (!parse_struct_args(&parsedargs, typeargs)) {
+ return false;
+ }
+
+ nspec = PyTuple_Size(parsedargs.spec);
+
+ if (nspec == -1) {
+ return false;
+ }
+
+ for (i = 0; i < nspec; i++) {
+ StructItemSpec parsedspec;
+ PyObject* spec_tuple;
+ PyObject* instval = NULL;
+
+ spec_tuple = PyTuple_GET_ITEM(parsedargs.spec, i);
+ if (spec_tuple == Py_None) {
+ continue;
+ }
+
+ if (!parse_struct_item_spec (&parsedspec, spec_tuple)) {
+ return false;
+ }
+
+ instval = PyObject_GetAttr(value, parsedspec.attrname);
+
+ if (!instval) {
+ return false;
+ }
+
+ if (instval == Py_None) {
+ Py_DECREF(instval);
+ continue;
+ }
+
+ writeByte(output, (int8_t) parsedspec.type);
+ writeI16(output, parsedspec.tag);
+
+ if (!output_val(output, instval, parsedspec.type, parsedspec.typeargs)) {
+ Py_DECREF(instval);
+ return false;
+ }
+
+ Py_DECREF(instval);
+ }
+
+ writeByte(output, (int8_t)T_STOP);
+ break;
+ }
+
+ case T_STOP:
+ case T_VOID:
+ case T_UTF16:
+ case T_UTF8:
+ case T_U64:
+ default:
+ PyErr_SetString(PyExc_TypeError, "Unexpected TType");
+ return false;
+
+ }
+
+ return true;
+}
+
+
+/* --- TOP-LEVEL WRAPPER FOR OUTPUT -- */
+
+static PyObject *
+encode_binary(PyObject *self, PyObject *args) {
+ PyObject* enc_obj;
+ PyObject* type_args;
+ PyObject* buf;
+ PyObject* ret = NULL;
+
+ if (!PyArg_ParseTuple(args, "OO", &enc_obj, &type_args)) {
+ return NULL;
+ }
+
+ buf = PycStringIO->NewOutput(INIT_OUTBUF_SIZE);
+ if (output_val(buf, enc_obj, T_STRUCT, type_args)) {
+ ret = PycStringIO->cgetvalue(buf);
+ }
+
+ Py_DECREF(buf);
+ return ret;
+}
+
+/* ====== END WRITING FUNCTIONS ====== */
+
+
+/* ====== BEGIN READING FUNCTIONS ====== */
+
+/* --- LOW-LEVEL READING FUNCTIONS --- */
+
+static void
+free_decodebuf(DecodeBuffer* d) {
+ Py_XDECREF(d->stringiobuf);
+ Py_XDECREF(d->refill_callable);
+}
+
+static bool
+decode_buffer_from_obj(DecodeBuffer* dest, PyObject* obj) {
+ dest->stringiobuf = PyObject_GetAttr(obj, INTERN_STRING(cstringio_buf));
+ if (!dest->stringiobuf) {
+ return false;
+ }
+
+ if (!PycStringIO_InputCheck(dest->stringiobuf)) {
+ free_decodebuf(dest);
+ PyErr_SetString(PyExc_TypeError, "expecting stringio input");
+ return false;
+ }
+
+ dest->refill_callable = PyObject_GetAttr(obj, INTERN_STRING(cstringio_refill));
+
+ if(!dest->refill_callable) {
+ free_decodebuf(dest);
+ return false;
+ }
+
+ if (!PyCallable_Check(dest->refill_callable)) {
+ free_decodebuf(dest);
+ PyErr_SetString(PyExc_TypeError, "expecting callable");
+ return false;
+ }
+
+ return true;
+}
+
+static bool readBytes(DecodeBuffer* input, char** output, int len) {
+ int read;
+
+ // TODO(dreiss): Don't fear the malloc. Think about taking a copy of
+ // the partial read instead of forcing the transport
+ // to prepend it to its buffer.
+
+ read = PycStringIO->cread(input->stringiobuf, output, len);
+
+ if (read == len) {
+ return true;
+ } else if (read == -1) {
+ return false;
+ } else {
+ PyObject* newiobuf;
+
+ // using building functions as this is a rare codepath
+ newiobuf = PyObject_CallFunction(
+ input->refill_callable, "s#i", *output, read, len, NULL);
+ if (newiobuf == NULL) {
+ return false;
+ }
+
+ // must do this *AFTER* the call so that we don't deref the io buffer
+ Py_CLEAR(input->stringiobuf);
+ input->stringiobuf = newiobuf;
+
+ read = PycStringIO->cread(input->stringiobuf, output, len);
+
+ if (read == len) {
+ return true;
+ } else if (read == -1) {
+ return false;
+ } else {
+ // TODO(dreiss): This could be a valid code path for big binary blobs.
+ PyErr_SetString(PyExc_TypeError,
+ "refill claimed to have refilled the buffer, but didn't!!");
+ return false;
+ }
+ }
+}
+
+static int8_t readByte(DecodeBuffer* input) {
+ char* buf;
+ if (!readBytes(input, &buf, sizeof(int8_t))) {
+ return -1;
+ }
+
+ return *(int8_t*) buf;
+}
+
+static int16_t readI16(DecodeBuffer* input) {
+ char* buf;
+ if (!readBytes(input, &buf, sizeof(int16_t))) {
+ return -1;
+ }
+
+ return (int16_t) ntohs(*(int16_t*) buf);
+}
+
+static int32_t readI32(DecodeBuffer* input) {
+ char* buf;
+ if (!readBytes(input, &buf, sizeof(int32_t))) {
+ return -1;
+ }
+ return (int32_t) ntohl(*(int32_t*) buf);
+}
+
+
+static int64_t readI64(DecodeBuffer* input) {
+ char* buf;
+ if (!readBytes(input, &buf, sizeof(int64_t))) {
+ return -1;
+ }
+
+ return (int64_t) ntohll(*(int64_t*) buf);
+}
+
+static double readDouble(DecodeBuffer* input) {
+ union {
+ int64_t f;
+ double t;
+ } transfer;
+
+ transfer.f = readI64(input);
+ if (transfer.f == -1) {
+ return -1;
+ }
+ return transfer.t;
+}
+
+static bool
+checkTypeByte(DecodeBuffer* input, TType expected) {
+ TType got = readByte(input);
+ if (INT_CONV_ERROR_OCCURRED(got)) {
+ return false;
+ }
+
+ if (expected != got) {
+ PyErr_SetString(PyExc_TypeError, "got wrong ttype while reading field");
+ return false;
+ }
+ return true;
+}
+
+static bool
+skip(DecodeBuffer* input, TType type) {
+#define SKIPBYTES(n) \
+ do { \
+ if (!readBytes(input, &dummy_buf, (n))) { \
+ return false; \
+ } \
+ } while(0)
+
+ char* dummy_buf;
+
+ switch (type) {
+
+ case T_BOOL:
+ case T_I08: SKIPBYTES(1); break;
+ case T_I16: SKIPBYTES(2); break;
+ case T_I32: SKIPBYTES(4); break;
+ case T_I64:
+ case T_DOUBLE: SKIPBYTES(8); break;
+
+ case T_STRING: {
+ // TODO(dreiss): Find out if these check_ssize_t32s are really necessary.
+ int len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+ SKIPBYTES(len);
+ break;
+ }
+
+ case T_LIST:
+ case T_SET: {
+ TType etype;
+ int len, i;
+
+ etype = readByte(input);
+ if (etype == -1) {
+ return false;
+ }
+
+ len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ for (i = 0; i < len; i++) {
+ if (!skip(input, etype)) {
+ return false;
+ }
+ }
+ break;
+ }
+
+ case T_MAP: {
+ TType ktype, vtype;
+ int len, i;
+
+ ktype = readByte(input);
+ if (ktype == -1) {
+ return false;
+ }
+
+ vtype = readByte(input);
+ if (vtype == -1) {
+ return false;
+ }
+
+ len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ for (i = 0; i < len; i++) {
+ if (!(skip(input, ktype) && skip(input, vtype))) {
+ return false;
+ }
+ }
+ break;
+ }
+
+ case T_STRUCT: {
+ while (true) {
+ TType type;
+
+ type = readByte(input);
+ if (type == -1) {
+ return false;
+ }
+
+ if (type == T_STOP)
+ break;
+
+ SKIPBYTES(2); // tag
+ if (!skip(input, type)) {
+ return false;
+ }
+ }
+ break;
+ }
+
+ case T_STOP:
+ case T_VOID:
+ case T_UTF16:
+ case T_UTF8:
+ case T_U64:
+ default:
+ PyErr_SetString(PyExc_TypeError, "Unexpected TType");
+ return false;
+
+ }
+
+ return true;
+
+#undef SKIPBYTES
+}
+
+
+/* --- HELPER FUNCTION FOR DECODE_VAL --- */
+
+static PyObject*
+decode_val(DecodeBuffer* input, TType type, PyObject* typeargs);
+
+static bool
+decode_struct(DecodeBuffer* input, PyObject* output, PyObject* spec_seq) {
+ int spec_seq_len = PyTuple_Size(spec_seq);
+ if (spec_seq_len == -1) {
+ return false;
+ }
+
+ while (true) {
+ TType type;
+ int16_t tag;
+ PyObject* item_spec;
+ PyObject* fieldval = NULL;
+ StructItemSpec parsedspec;
+
+ type = readByte(input);
+ if (type == -1) {
+ return false;
+ }
+ if (type == T_STOP) {
+ break;
+ }
+ tag = readI16(input);
+ if (INT_CONV_ERROR_OCCURRED(tag)) {
+ return false;
+ }
+ if (tag >= 0 && tag < spec_seq_len) {
+ item_spec = PyTuple_GET_ITEM(spec_seq, tag);
+ } else {
+ item_spec = Py_None;
+ }
+
+ if (item_spec == Py_None) {
+ if (!skip(input, type)) {
+ return false;
+ } else {
+ continue;
+ }
+ }
+
+ if (!parse_struct_item_spec(&parsedspec, item_spec)) {
+ return false;
+ }
+ if (parsedspec.type != type) {
+ if (!skip(input, type)) {
+ PyErr_SetString(PyExc_TypeError, "struct field had wrong type while reading and can't be skipped");
+ return false;
+ } else {
+ continue;
+ }
+ }
+
+ fieldval = decode_val(input, parsedspec.type, parsedspec.typeargs);
+ if (fieldval == NULL) {
+ return false;
+ }
+
+ if (PyObject_SetAttr(output, parsedspec.attrname, fieldval) == -1) {
+ Py_DECREF(fieldval);
+ return false;
+ }
+ Py_DECREF(fieldval);
+ }
+ return true;
+}
+
+
+/* --- MAIN RECURSIVE INPUT FUCNTION --- */
+
+// Returns a new reference.
+static PyObject*
+decode_val(DecodeBuffer* input, TType type, PyObject* typeargs) {
+ switch (type) {
+
+ case T_BOOL: {
+ int8_t v = readByte(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+
+ switch (v) {
+ case 0: Py_RETURN_FALSE;
+ case 1: Py_RETURN_TRUE;
+ // Don't laugh. This is a potentially serious issue.
+ default: PyErr_SetString(PyExc_TypeError, "boolean out of range"); return NULL;
+ }
+ break;
+ }
+ case T_I08: {
+ int8_t v = readByte(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+
+ return PyInt_FromLong(v);
+ }
+ case T_I16: {
+ int16_t v = readI16(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+ return PyInt_FromLong(v);
+ }
+ case T_I32: {
+ int32_t v = readI32(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+ return PyInt_FromLong(v);
+ }
+
+ case T_I64: {
+ int64_t v = readI64(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+ // TODO(dreiss): Find out if we can take this fastpath always when
+ // sizeof(long) == sizeof(long long).
+ if (CHECK_RANGE(v, LONG_MIN, LONG_MAX)) {
+ return PyInt_FromLong((long) v);
+ }
+
+ return PyLong_FromLongLong(v);
+ }
+
+ case T_DOUBLE: {
+ double v = readDouble(input);
+ if (v == -1.0 && PyErr_Occurred()) {
+ return false;
+ }
+ return PyFloat_FromDouble(v);
+ }
+
+ case T_STRING: {
+ Py_ssize_t len = readI32(input);
+ char* buf;
+ if (!readBytes(input, &buf, len)) {
+ return NULL;
+ }
+
+ return PyString_FromStringAndSize(buf, len);
+ }
+
+ case T_LIST:
+ case T_SET: {
+ SetListTypeArgs parsedargs;
+ int32_t len;
+ PyObject* ret = NULL;
+ int i;
+
+ if (!parse_set_list_args(&parsedargs, typeargs)) {
+ return NULL;
+ }
+
+ if (!checkTypeByte(input, parsedargs.element_type)) {
+ return NULL;
+ }
+
+ len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return NULL;
+ }
+
+ ret = PyList_New(len);
+ if (!ret) {
+ return NULL;
+ }
+
+ for (i = 0; i < len; i++) {
+ PyObject* item = decode_val(input, parsedargs.element_type, parsedargs.typeargs);
+ if (!item) {
+ Py_DECREF(ret);
+ return NULL;
+ }
+ PyList_SET_ITEM(ret, i, item);
+ }
+
+ // TODO(dreiss): Consider biting the bullet and making two separate cases
+ // for list and set, avoiding this post facto conversion.
+ if (type == T_SET) {
+ PyObject* setret;
+#if (PY_VERSION_HEX < 0x02050000)
+ // hack needed for older versions
+ setret = PyObject_CallFunctionObjArgs((PyObject*)&PySet_Type, ret, NULL);
+#else
+ // official version
+ setret = PySet_New(ret);
+#endif
+ Py_DECREF(ret);
+ return setret;
+ }
+ return ret;
+ }
+
+ case T_MAP: {
+ int32_t len;
+ int i;
+ MapTypeArgs parsedargs;
+ PyObject* ret = NULL;
+
+ if (!parse_map_args(&parsedargs, typeargs)) {
+ return NULL;
+ }
+
+ if (!checkTypeByte(input, parsedargs.ktag)) {
+ return NULL;
+ }
+ if (!checkTypeByte(input, parsedargs.vtag)) {
+ return NULL;
+ }
+
+ len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ ret = PyDict_New();
+ if (!ret) {
+ goto error;
+ }
+
+ for (i = 0; i < len; i++) {
+ PyObject* k = NULL;
+ PyObject* v = NULL;
+ k = decode_val(input, parsedargs.ktag, parsedargs.ktypeargs);
+ if (k == NULL) {
+ goto loop_error;
+ }
+ v = decode_val(input, parsedargs.vtag, parsedargs.vtypeargs);
+ if (v == NULL) {
+ goto loop_error;
+ }
+ if (PyDict_SetItem(ret, k, v) == -1) {
+ goto loop_error;
+ }
+
+ Py_DECREF(k);
+ Py_DECREF(v);
+ continue;
+
+ // Yuck! Destructors, anyone?
+ loop_error:
+ Py_XDECREF(k);
+ Py_XDECREF(v);
+ goto error;
+ }
+
+ return ret;
+
+ error:
+ Py_XDECREF(ret);
+ return NULL;
+ }
+
+ case T_STRUCT: {
+ StructTypeArgs parsedargs;
+ PyObject* ret;
+ if (!parse_struct_args(&parsedargs, typeargs)) {
+ return NULL;
+ }
+
+ ret = PyObject_CallObject(parsedargs.klass, NULL);
+ if (!ret) {
+ return NULL;
+ }
+
+ if (!decode_struct(input, ret, parsedargs.spec)) {
+ Py_DECREF(ret);
+ return NULL;
+ }
+
+ return ret;
+ }
+
+ case T_STOP:
+ case T_VOID:
+ case T_UTF16:
+ case T_UTF8:
+ case T_U64:
+ default:
+ PyErr_SetString(PyExc_TypeError, "Unexpected TType");
+ return NULL;
+ }
+}
+
+
+/* --- TOP-LEVEL WRAPPER FOR INPUT -- */
+
+static PyObject*
+decode_binary(PyObject *self, PyObject *args) {
+ PyObject* output_obj = NULL;
+ PyObject* transport = NULL;
+ PyObject* typeargs = NULL;
+ StructTypeArgs parsedargs;
+ DecodeBuffer input = {0, 0};
+
+ if (!PyArg_ParseTuple(args, "OOO", &output_obj, &transport, &typeargs)) {
+ return NULL;
+ }
+
+ if (!parse_struct_args(&parsedargs, typeargs)) {
+ return NULL;
+ }
+
+ if (!decode_buffer_from_obj(&input, transport)) {
+ return NULL;
+ }
+
+ if (!decode_struct(&input, output_obj, parsedargs.spec)) {
+ free_decodebuf(&input);
+ return NULL;
+ }
+
+ free_decodebuf(&input);
+
+ Py_RETURN_NONE;
+}
+
+/* ====== END READING FUNCTIONS ====== */
+
+
+/* -- PYTHON MODULE SETUP STUFF --- */
+
+static PyMethodDef ThriftFastBinaryMethods[] = {
+
+ {"encode_binary", encode_binary, METH_VARARGS, ""},
+ {"decode_binary", decode_binary, METH_VARARGS, ""},
+
+ {NULL, NULL, 0, NULL} /* Sentinel */
+};
+
+PyMODINIT_FUNC
+initfastbinary(void) {
+#define INIT_INTERN_STRING(value) \
+ do { \
+ INTERN_STRING(value) = PyString_InternFromString(#value); \
+ if(!INTERN_STRING(value)) return; \
+ } while(0)
+
+ INIT_INTERN_STRING(cstringio_buf);
+ INIT_INTERN_STRING(cstringio_refill);
+#undef INIT_INTERN_STRING
+
+ PycString_IMPORT;
+ if (PycStringIO == NULL) return;
+
+ (void) Py_InitModule("thrift.protocol.fastbinary", ThriftFastBinaryMethods);
+}
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/THttpServer.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/THttpServer.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/THttpServer.py
new file mode 100644
index 0000000..be54bab
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/THttpServer.py
@@ -0,0 +1,87 @@
+#
+# 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.
+#
+
+import BaseHTTPServer
+
+from thrift.server import TServer
+from thrift.transport import TTransport
+
+
+class ResponseException(Exception):
+ """Allows handlers to override the HTTP response
+
+ Normally, THttpServer always sends a 200 response. If a handler wants
+ to override this behavior (e.g., to simulate a misconfigured or
+ overloaded web server during testing), it can raise a ResponseException.
+ The function passed to the constructor will be called with the
+ RequestHandler as its only argument.
+ """
+ def __init__(self, handler):
+ self.handler = handler
+
+
+class THttpServer(TServer.TServer):
+ """A simple HTTP-based Thrift server
+
+ This class is not very performant, but it is useful (for example) for
+ acting as a mock version of an Apache-based PHP Thrift endpoint.
+ """
+ def __init__(self,
+ processor,
+ server_address,
+ inputProtocolFactory,
+ outputProtocolFactory=None,
+ server_class=BaseHTTPServer.HTTPServer):
+ """Set up protocol factories and HTTP server.
+
+ See BaseHTTPServer for server_address.
+ See TServer for protocol factories.
+ """
+ if outputProtocolFactory is None:
+ outputProtocolFactory = inputProtocolFactory
+
+ TServer.TServer.__init__(self, processor, None, None, None,
+ inputProtocolFactory, outputProtocolFactory)
+
+ thttpserver = self
+
+ class RequestHander(BaseHTTPServer.BaseHTTPRequestHandler):
+ def do_POST(self):
+ # Don't care about the request path.
+ itrans = TTransport.TFileObjectTransport(self.rfile)
+ otrans = TTransport.TFileObjectTransport(self.wfile)
+ itrans = TTransport.TBufferedTransport(
+ itrans, int(self.headers['Content-Length']))
+ otrans = TTransport.TMemoryBuffer()
+ iprot = thttpserver.inputProtocolFactory.getProtocol(itrans)
+ oprot = thttpserver.outputProtocolFactory.getProtocol(otrans)
+ try:
+ thttpserver.processor.process(iprot, oprot)
+ except ResponseException, exn:
+ exn.handler(self)
+ else:
+ self.send_response(200)
+ self.send_header("content-type", "application/x-thrift")
+ self.end_headers()
+ self.wfile.write(otrans.getvalue())
+
+ self.httpd = server_class(server_address, RequestHander)
+
+ def serve(self):
+ self.httpd.serve_forever()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TNonblockingServer.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TNonblockingServer.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TNonblockingServer.py
new file mode 100644
index 0000000..fa478d0
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TNonblockingServer.py
@@ -0,0 +1,346 @@
+#
+# 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.
+#
+"""Implementation of non-blocking server.
+
+The main idea of the server is to receive and send requests
+only from the main thread.
+
+The thread poool should be sized for concurrent tasks, not
+maximum connections
+"""
+import threading
+import socket
+import Queue
+import select
+import struct
+import logging
+
+from thrift.transport import TTransport
+from thrift.protocol.TBinaryProtocol import TBinaryProtocolFactory
+
+__all__ = ['TNonblockingServer']
+
+
+class Worker(threading.Thread):
+ """Worker is a small helper to process incoming connection."""
+
+ def __init__(self, queue):
+ threading.Thread.__init__(self)
+ self.queue = queue
+
+ def run(self):
+ """Process queries from task queue, stop if processor is None."""
+ while True:
+ try:
+ processor, iprot, oprot, otrans, callback = self.queue.get()
+ if processor is None:
+ break
+ processor.process(iprot, oprot)
+ callback(True, otrans.getvalue())
+ except Exception:
+ logging.exception("Exception while processing request")
+ callback(False, '')
+
+WAIT_LEN = 0
+WAIT_MESSAGE = 1
+WAIT_PROCESS = 2
+SEND_ANSWER = 3
+CLOSED = 4
+
+
+def locked(func):
+ """Decorator which locks self.lock."""
+ def nested(self, *args, **kwargs):
+ self.lock.acquire()
+ try:
+ return func(self, *args, **kwargs)
+ finally:
+ self.lock.release()
+ return nested
+
+
+def socket_exception(func):
+ """Decorator close object on socket.error."""
+ def read(self, *args, **kwargs):
+ try:
+ return func(self, *args, **kwargs)
+ except socket.error:
+ self.close()
+ return read
+
+
+class Connection:
+ """Basic class is represented connection.
+
+ It can be in state:
+ WAIT_LEN --- connection is reading request len.
+ WAIT_MESSAGE --- connection is reading request.
+ WAIT_PROCESS --- connection has just read whole request and
+ waits for call ready routine.
+ SEND_ANSWER --- connection is sending answer string (including length
+ of answer).
+ CLOSED --- socket was closed and connection should be deleted.
+ """
+ def __init__(self, new_socket, wake_up):
+ self.socket = new_socket
+ self.socket.setblocking(False)
+ self.status = WAIT_LEN
+ self.len = 0
+ self.message = ''
+ self.lock = threading.Lock()
+ self.wake_up = wake_up
+
+ def _read_len(self):
+ """Reads length of request.
+
+ It's a safer alternative to self.socket.recv(4)
+ """
+ read = self.socket.recv(4 - len(self.message))
+ if len(read) == 0:
+ # if we read 0 bytes and self.message is empty, then
+ # the client closed the connection
+ if len(self.message) != 0:
+ logging.error("can't read frame size from socket")
+ self.close()
+ return
+ self.message += read
+ if len(self.message) == 4:
+ self.len, = struct.unpack('!i', self.message)
+ if self.len < 0:
+ logging.error("negative frame size, it seems client "
+ "doesn't use FramedTransport")
+ self.close()
+ elif self.len == 0:
+ logging.error("empty frame, it's really strange")
+ self.close()
+ else:
+ self.message = ''
+ self.status = WAIT_MESSAGE
+
+ @socket_exception
+ def read(self):
+ """Reads data from stream and switch state."""
+ assert self.status in (WAIT_LEN, WAIT_MESSAGE)
+ if self.status == WAIT_LEN:
+ self._read_len()
+ # go back to the main loop here for simplicity instead of
+ # falling through, even though there is a good chance that
+ # the message is already available
+ elif self.status == WAIT_MESSAGE:
+ read = self.socket.recv(self.len - len(self.message))
+ if len(read) == 0:
+ logging.error("can't read frame from socket (get %d of "
+ "%d bytes)" % (len(self.message), self.len))
+ self.close()
+ return
+ self.message += read
+ if len(self.message) == self.len:
+ self.status = WAIT_PROCESS
+
+ @socket_exception
+ def write(self):
+ """Writes data from socket and switch state."""
+ assert self.status == SEND_ANSWER
+ sent = self.socket.send(self.message)
+ if sent == len(self.message):
+ self.status = WAIT_LEN
+ self.message = ''
+ self.len = 0
+ else:
+ self.message = self.message[sent:]
+
+ @locked
+ def ready(self, all_ok, message):
+ """Callback function for switching state and waking up main thread.
+
+ This function is the only function witch can be called asynchronous.
+
+ The ready can switch Connection to three states:
+ WAIT_LEN if request was oneway.
+ SEND_ANSWER if request was processed in normal way.
+ CLOSED if request throws unexpected exception.
+
+ The one wakes up main thread.
+ """
+ assert self.status == WAIT_PROCESS
+ if not all_ok:
+ self.close()
+ self.wake_up()
+ return
+ self.len = ''
+ if len(message) == 0:
+ # it was a oneway request, do not write answer
+ self.message = ''
+ self.status = WAIT_LEN
+ else:
+ self.message = struct.pack('!i', len(message)) + message
+ self.status = SEND_ANSWER
+ self.wake_up()
+
+ @locked
+ def is_writeable(self):
+ """Return True if connection should be added to write list of select"""
+ return self.status == SEND_ANSWER
+
+ # it's not necessary, but...
+ @locked
+ def is_readable(self):
+ """Return True if connection should be added to read list of select"""
+ return self.status in (WAIT_LEN, WAIT_MESSAGE)
+
+ @locked
+ def is_closed(self):
+ """Returns True if connection is closed."""
+ return self.status == CLOSED
+
+ def fileno(self):
+ """Returns the file descriptor of the associated socket."""
+ return self.socket.fileno()
+
+ def close(self):
+ """Closes connection"""
+ self.status = CLOSED
+ self.socket.close()
+
+
+class TNonblockingServer:
+ """Non-blocking server."""
+
+ def __init__(self,
+ processor,
+ lsocket,
+ inputProtocolFactory=None,
+ outputProtocolFactory=None,
+ threads=10):
+ self.processor = processor
+ self.socket = lsocket
+ self.in_protocol = inputProtocolFactory or TBinaryProtocolFactory()
+ self.out_protocol = outputProtocolFactory or self.in_protocol
+ self.threads = int(threads)
+ self.clients = {}
+ self.tasks = Queue.Queue()
+ self._read, self._write = socket.socketpair()
+ self.prepared = False
+ self._stop = False
+
+ def setNumThreads(self, num):
+ """Set the number of worker threads that should be created."""
+ # implement ThreadPool interface
+ assert not self.prepared, "Can't change number of threads after start"
+ self.threads = num
+
+ def prepare(self):
+ """Prepares server for serve requests."""
+ if self.prepared:
+ return
+ self.socket.listen()
+ for _ in xrange(self.threads):
+ thread = Worker(self.tasks)
+ thread.setDaemon(True)
+ thread.start()
+ self.prepared = True
+
+ def wake_up(self):
+ """Wake up main thread.
+
+ The server usualy waits in select call in we should terminate one.
+ The simplest way is using socketpair.
+
+ Select always wait to read from the first socket of socketpair.
+
+ In this case, we can just write anything to the second socket from
+ socketpair.
+ """
+ self._write.send('1')
+
+ def stop(self):
+ """Stop the server.
+
+ This method causes the serve() method to return. stop() may be invoked
+ from within your handler, or from another thread.
+
+ After stop() is called, serve() will return but the server will still
+ be listening on the socket. serve() may then be called again to resume
+ processing requests. Alternatively, close() may be called after
+ serve() returns to close the server socket and shutdown all worker
+ threads.
+ """
+ self._stop = True
+ self.wake_up()
+
+ def _select(self):
+ """Does select on open connections."""
+ readable = [self.socket.handle.fileno(), self._read.fileno()]
+ writable = []
+ for i, connection in self.clients.items():
+ if connection.is_readable():
+ readable.append(connection.fileno())
+ if connection.is_writeable():
+ writable.append(connection.fileno())
+ if connection.is_closed():
+ del self.clients[i]
+ return select.select(readable, writable, readable)
+
+ def handle(self):
+ """Handle requests.
+
+ WARNING! You must call prepare() BEFORE calling handle()
+ """
+ assert self.prepared, "You have to call prepare before handle"
+ rset, wset, xset = self._select()
+ for readable in rset:
+ if readable == self._read.fileno():
+ # don't care i just need to clean readable flag
+ self._read.recv(1024)
+ elif readable == self.socket.handle.fileno():
+ client = self.socket.accept().handle
+ self.clients[client.fileno()] = Connection(client,
+ self.wake_up)
+ else:
+ connection = self.clients[readable]
+ connection.read()
+ if connection.status == WAIT_PROCESS:
+ itransport = TTransport.TMemoryBuffer(connection.message)
+ otransport = TTransport.TMemoryBuffer()
+ iprot = self.in_protocol.getProtocol(itransport)
+ oprot = self.out_protocol.getProtocol(otransport)
+ self.tasks.put([self.processor, iprot, oprot,
+ otransport, connection.ready])
+ for writeable in wset:
+ self.clients[writeable].write()
+ for oob in xset:
+ self.clients[oob].close()
+ del self.clients[oob]
+
+ def close(self):
+ """Closes the server."""
+ for _ in xrange(self.threads):
+ self.tasks.put([None, None, None, None, None])
+ self.socket.close()
+ self.prepared = False
+
+ def serve(self):
+ """Serve requests.
+
+ Serve requests forever, or until stop() is called.
+ """
+ self._stop = False
+ self.prepare()
+ while not self._stop:
+ self.handle()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TProcessPoolServer.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TProcessPoolServer.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TProcessPoolServer.py
new file mode 100644
index 0000000..c665e6d
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TProcessPoolServer.py
@@ -0,0 +1,118 @@
+#
+# 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.
+#
+
+
+import logging
+from multiprocessing import Process, Value, Condition
+
+from lib.thrift.server import TServer
+from thrift.transport.TTransport import TTransportException
+
+
+class TProcessPoolServer(TServer):
+ """Server with a fixed size pool of worker subprocesses to service requests
+
+ Note that if you need shared state between the handlers - it's up to you!
+ Written by Dvir Volk, doat.com
+ """
+ def __init__(self, *args):
+ TServer.__init__(self, *args)
+ self.numWorkers = 10
+ self.workers = []
+ self.isRunning = Value('b', False)
+ self.stopCondition = Condition()
+ self.postForkCallback = None
+
+ def setPostForkCallback(self, callback):
+ if not callable(callback):
+ raise TypeError("This is not a callback!")
+ self.postForkCallback = callback
+
+ def setNumWorkers(self, num):
+ """Set the number of worker threads that should be created"""
+ self.numWorkers = num
+
+ def workerProcess(self):
+ """Loop getting clients from the shared queue and process them"""
+ if self.postForkCallback:
+ self.postForkCallback()
+
+ while self.isRunning.value:
+ try:
+ client = self.serverTransport.accept()
+ self.serveClient(client)
+ except (KeyboardInterrupt, SystemExit):
+ return 0
+ except Exception, x:
+ logging.exception(x)
+
+ def serveClient(self, client):
+ """Process input/output from a client for as long as possible"""
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ itrans.close()
+ otrans.close()
+
+ def serve(self):
+ """Start workers and put into queue"""
+ # this is a shared state that can tell the workers to exit when False
+ self.isRunning.value = True
+
+ # first bind and listen to the port
+ self.serverTransport.listen()
+
+ # fork the children
+ for i in range(self.numWorkers):
+ try:
+ w = Process(target=self.workerProcess)
+ w.daemon = True
+ w.start()
+ self.workers.append(w)
+ except Exception, x:
+ logging.exception(x)
+
+ # wait until the condition is set by stop()
+ while True:
+ self.stopCondition.acquire()
+ try:
+ self.stopCondition.wait()
+ break
+ except (SystemExit, KeyboardInterrupt):
+ break
+ except Exception, x:
+ logging.exception(x)
+
+ self.isRunning.value = False
+
+ def stop(self):
+ self.isRunning.value = False
+ self.stopCondition.acquire()
+ self.stopCondition.notify()
+ self.stopCondition.release()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TServer.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TServer.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TServer.py
new file mode 100644
index 0000000..2f24842
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/TServer.py
@@ -0,0 +1,269 @@
+#
+# 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.
+#
+
+import Queue
+import logging
+import os
+import sys
+import threading
+import traceback
+
+from thrift.Thrift import TProcessor
+from thrift.protocol import TBinaryProtocol
+from thrift.transport import TTransport
+
+
+class TServer:
+ """Base interface for a server, which must have a serve() method.
+
+ Three constructors for all servers:
+ 1) (processor, serverTransport)
+ 2) (processor, serverTransport, transportFactory, protocolFactory)
+ 3) (processor, serverTransport,
+ inputTransportFactory, outputTransportFactory,
+ inputProtocolFactory, outputProtocolFactory)
+ """
+ def __init__(self, *args):
+ if (len(args) == 2):
+ self.__initArgs__(args[0], args[1],
+ TTransport.TTransportFactoryBase(),
+ TTransport.TTransportFactoryBase(),
+ TBinaryProtocol.TBinaryProtocolFactory(),
+ TBinaryProtocol.TBinaryProtocolFactory())
+ elif (len(args) == 4):
+ self.__initArgs__(args[0], args[1], args[2], args[2], args[3], args[3])
+ elif (len(args) == 6):
+ self.__initArgs__(args[0], args[1], args[2], args[3], args[4], args[5])
+
+ def __initArgs__(self, processor, serverTransport,
+ inputTransportFactory, outputTransportFactory,
+ inputProtocolFactory, outputProtocolFactory):
+ self.processor = processor
+ self.serverTransport = serverTransport
+ self.inputTransportFactory = inputTransportFactory
+ self.outputTransportFactory = outputTransportFactory
+ self.inputProtocolFactory = inputProtocolFactory
+ self.outputProtocolFactory = outputProtocolFactory
+
+ def serve(self):
+ pass
+
+
+class TSimpleServer(TServer):
+ """Simple single-threaded server that just pumps around one transport."""
+
+ def __init__(self, *args):
+ TServer.__init__(self, *args)
+
+ def serve(self):
+ self.serverTransport.listen()
+ while True:
+ client = self.serverTransport.accept()
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ itrans.close()
+ otrans.close()
+
+
+class TThreadedServer(TServer):
+ """Threaded server that spawns a new thread per each connection."""
+
+ def __init__(self, *args, **kwargs):
+ TServer.__init__(self, *args)
+ self.daemon = kwargs.get("daemon", False)
+
+ def serve(self):
+ self.serverTransport.listen()
+ while True:
+ try:
+ client = self.serverTransport.accept()
+ t = threading.Thread(target=self.handle, args=(client,))
+ t.setDaemon(self.daemon)
+ t.start()
+ except KeyboardInterrupt:
+ raise
+ except Exception, x:
+ logging.exception(x)
+
+ def handle(self, client):
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ itrans.close()
+ otrans.close()
+
+
+class TThreadPoolServer(TServer):
+ """Server with a fixed size pool of threads which service requests."""
+
+ def __init__(self, *args, **kwargs):
+ TServer.__init__(self, *args)
+ self.clients = Queue.Queue()
+ self.threads = 10
+ self.daemon = kwargs.get("daemon", False)
+
+ def setNumThreads(self, num):
+ """Set the number of worker threads that should be created"""
+ self.threads = num
+
+ def serveThread(self):
+ """Loop around getting clients from the shared queue and process them."""
+ while True:
+ try:
+ client = self.clients.get()
+ self.serveClient(client)
+ except Exception, x:
+ logging.exception(x)
+
+ def serveClient(self, client):
+ """Process input/output from a client for as long as possible"""
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ itrans.close()
+ otrans.close()
+
+ def serve(self):
+ """Start a fixed number of worker threads and put client into a queue"""
+ for i in range(self.threads):
+ try:
+ t = threading.Thread(target=self.serveThread)
+ t.setDaemon(self.daemon)
+ t.start()
+ except Exception, x:
+ logging.exception(x)
+
+ # Pump the socket for clients
+ self.serverTransport.listen()
+ while True:
+ try:
+ client = self.serverTransport.accept()
+ self.clients.put(client)
+ except Exception, x:
+ logging.exception(x)
+
+
+class TForkingServer(TServer):
+ """A Thrift server that forks a new process for each request
+
+ This is more scalable than the threaded server as it does not cause
+ GIL contention.
+
+ Note that this has different semantics from the threading server.
+ Specifically, updates to shared variables will no longer be shared.
+ It will also not work on windows.
+
+ This code is heavily inspired by SocketServer.ForkingMixIn in the
+ Python stdlib.
+ """
+ def __init__(self, *args):
+ TServer.__init__(self, *args)
+ self.children = []
+
+ def serve(self):
+ def try_close(file):
+ try:
+ file.close()
+ except IOError, e:
+ logging.warning(e, exc_info=True)
+
+ self.serverTransport.listen()
+ while True:
+ client = self.serverTransport.accept()
+ try:
+ pid = os.fork()
+
+ if pid: # parent
+ # add before collect, otherwise you race w/ waitpid
+ self.children.append(pid)
+ self.collect_children()
+
+ # Parent must close socket or the connection may not get
+ # closed promptly
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ try_close(itrans)
+ try_close(otrans)
+ else:
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+
+ ecode = 0
+ try:
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, e:
+ logging.exception(e)
+ ecode = 1
+ finally:
+ try_close(itrans)
+ try_close(otrans)
+
+ os._exit(ecode)
+
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ def collect_children(self):
+ while self.children:
+ try:
+ pid, status = os.waitpid(0, os.WNOHANG)
+ except os.error:
+ pid = None
+
+ if pid:
+ self.children.remove(pid)
+ else:
+ break
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/__init__.py
new file mode 100644
index 0000000..1bf6e25
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/server/__init__.py
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+__all__ = ['TServer', 'TNonblockingServer']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/THttpClient.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/THttpClient.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/THttpClient.py
new file mode 100644
index 0000000..c98b966
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/THttpClient.py
@@ -0,0 +1,147 @@
+#
+# 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.
+#
+
+import httplib
+import os
+import socket
+import sys
+import urllib
+import urlparse
+import warnings
+
+from lib.thrift.transport.TTransport import *
+
+
+class THttpClient(TTransportBase):
+ """Http implementation of TTransport base."""
+
+ def __init__(self, uri_or_host, port=None, path=None):
+ """THttpClient supports two different types constructor parameters.
+
+ THttpClient(host, port, path) - deprecated
+ THttpClient(uri)
+
+ Only the second supports https.
+ """
+ if port is not None:
+ warnings.warn(
+ "Please use the THttpClient('http://host:port/path') syntax",
+ DeprecationWarning,
+ stacklevel=2)
+ self.host = uri_or_host
+ self.port = port
+ assert path
+ self.path = path
+ self.scheme = 'http'
+ else:
+ parsed = urlparse.urlparse(uri_or_host)
+ self.scheme = parsed.scheme
+ assert self.scheme in ('http', 'https')
+ if self.scheme == 'http':
+ self.port = parsed.port or httplib.HTTP_PORT
+ elif self.scheme == 'https':
+ self.port = parsed.port or httplib.HTTPS_PORT
+ self.host = parsed.hostname
+ self.path = parsed.path
+ if parsed.query:
+ self.path += '?%s' % parsed.query
+ self.__wbuf = StringIO()
+ self.__http = None
+ self.__timeout = None
+ self.__custom_headers = None
+
+ def open(self):
+ if self.scheme == 'http':
+ self.__http = httplib.HTTP(self.host, self.port)
+ else:
+ self.__http = httplib.HTTPS(self.host, self.port)
+
+ def close(self):
+ self.__http.close()
+ self.__http = None
+
+ def isOpen(self):
+ return self.__http is not None
+
+ def setTimeout(self, ms):
+ if not hasattr(socket, 'getdefaulttimeout'):
+ raise NotImplementedError
+
+ if ms is None:
+ self.__timeout = None
+ else:
+ self.__timeout = ms / 1000.0
+
+ def setCustomHeaders(self, headers):
+ self.__custom_headers = headers
+
+ def read(self, sz):
+ return self.__http.file.read(sz)
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def __withTimeout(f):
+ def _f(*args, **kwargs):
+ orig_timeout = socket.getdefaulttimeout()
+ socket.setdefaulttimeout(args[0].__timeout)
+ result = f(*args, **kwargs)
+ socket.setdefaulttimeout(orig_timeout)
+ return result
+ return _f
+
+ def flush(self):
+ if self.isOpen():
+ self.close()
+ self.open()
+
+ # Pull data out of buffer
+ data = self.__wbuf.getvalue()
+ self.__wbuf = StringIO()
+
+ # HTTP request
+ self.__http.putrequest('POST', self.path)
+
+ # Write headers
+ self.__http.putheader('Host', self.host)
+ self.__http.putheader('Content-Type', 'application/x-thrift')
+ self.__http.putheader('Content-Length', str(len(data)))
+
+ if not self.__custom_headers or 'User-Agent' not in self.__custom_headers:
+ user_agent = 'Python/THttpClient'
+ script = os.path.basename(sys.argv[0])
+ if script:
+ user_agent = '%s (%s)' % (user_agent, urllib.quote(script))
+ self.__http.putheader('User-Agent', user_agent)
+
+ if self.__custom_headers:
+ for key, val in self.__custom_headers.iteritems():
+ self.__http.putheader(key, val)
+
+ self.__http.endheaders()
+
+ # Write payload
+ self.__http.send(data)
+
+ # Get reply to flush the request
+ self.code, self.message, self.headers = self.__http.getreply()
+
+ # Decorate if we know how to timeout
+ if hasattr(socket, 'getdefaulttimeout'):
+ flush = __withTimeout(flush)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSSLSocket.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSSLSocket.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSSLSocket.py
new file mode 100644
index 0000000..81e0984
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSSLSocket.py
@@ -0,0 +1,214 @@
+#
+# 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.
+#
+
+import os
+import socket
+import ssl
+
+from thrift.transport import TSocket
+from thrift.transport.TTransport import TTransportException
+
+
+class TSSLSocket(TSocket.TSocket):
+ """
+ SSL implementation of client-side TSocket
+
+ This class creates outbound sockets wrapped using the
+ python standard ssl module for encrypted connections.
+
+ The protocol used is set using the class variable
+ SSL_VERSION, which must be one of ssl.PROTOCOL_* and
+ defaults to ssl.PROTOCOL_TLSv1 for greatest security.
+ """
+ SSL_VERSION = ssl.PROTOCOL_TLSv1
+
+ def __init__(self,
+ host='localhost',
+ port=9090,
+ validate=True,
+ ca_certs=None,
+ keyfile=None,
+ certfile=None,
+ unix_socket=None):
+ """Create SSL TSocket
+
+ @param validate: Set to False to disable SSL certificate validation
+ @type validate: bool
+ @param ca_certs: Filename to the Certificate Authority pem file, possibly a
+ file downloaded from: http://curl.haxx.se/ca/cacert.pem This is passed to
+ the ssl_wrap function as the 'ca_certs' parameter.
+ @type ca_certs: str
+ @param keyfile: The private key
+ @type keyfile: str
+ @param certfile: The cert file
+ @type certfile: str
+
+ Raises an IOError exception if validate is True and the ca_certs file is
+ None, not present or unreadable.
+ """
+ self.validate = validate
+ self.is_valid = False
+ self.peercert = None
+ if not validate:
+ self.cert_reqs = ssl.CERT_NONE
+ else:
+ self.cert_reqs = ssl.CERT_REQUIRED
+ self.ca_certs = ca_certs
+ self.keyfile = keyfile
+ self.certfile = certfile
+ if validate:
+ if ca_certs is None or not os.access(ca_certs, os.R_OK):
+ raise IOError('Certificate Authority ca_certs file "%s" '
+ 'is not readable, cannot validate SSL '
+ 'certificates.' % (ca_certs))
+ TSocket.TSocket.__init__(self, host, port, unix_socket)
+
+ def open(self):
+ try:
+ res0 = self._resolveAddr()
+ for res in res0:
+ sock_family, sock_type = res[0:2]
+ ip_port = res[4]
+ plain_sock = socket.socket(sock_family, sock_type)
+ self.handle = ssl.wrap_socket(plain_sock,
+ ssl_version=self.SSL_VERSION,
+ do_handshake_on_connect=True,
+ ca_certs=self.ca_certs,
+ keyfile=self.keyfile,
+ certfile=self.certfile,
+ cert_reqs=self.cert_reqs)
+ self.handle.settimeout(self._timeout)
+ try:
+ self.handle.connect(ip_port)
+ except socket.error, e:
+ if res is not res0[-1]:
+ continue
+ else:
+ raise e
+ break
+ except socket.error, e:
+ if self._unix_socket:
+ message = 'Could not connect to secure socket %s: %s' \
+ % (self._unix_socket, e)
+ else:
+ message = 'Could not connect to %s:%d: %s' % (self.host, self.port, e)
+ raise TTransportException(type=TTransportException.NOT_OPEN,
+ message=message)
+ if self.validate:
+ self._validate_cert()
+
+ def _validate_cert(self):
+ """internal method to validate the peer's SSL certificate, and to check the
+ commonName of the certificate to ensure it matches the hostname we
+ used to make this connection. Does not support subjectAltName records
+ in certificates.
+
+ raises TTransportException if the certificate fails validation.
+ """
+ cert = self.handle.getpeercert()
+ self.peercert = cert
+ if 'subject' not in cert:
+ raise TTransportException(
+ type=TTransportException.NOT_OPEN,
+ message='No SSL certificate found from %s:%s' % (self.host, self.port))
+ fields = cert['subject']
+ for field in fields:
+ # ensure structure we get back is what we expect
+ if not isinstance(field, tuple):
+ continue
+ cert_pair = field[0]
+ if len(cert_pair) < 2:
+ continue
+ cert_key, cert_value = cert_pair[0:2]
+ if cert_key != 'commonName':
+ continue
+ certhost = cert_value
+ # this check should be performed by some sort of Access Manager
+ if certhost == self.host:
+ # success, cert commonName matches desired hostname
+ self.is_valid = True
+ return
+ else:
+ raise TTransportException(
+ type=TTransportException.UNKNOWN,
+ message='Hostname we connected to "%s" doesn\'t match certificate '
+ 'provided commonName "%s"' % (self.host, certhost))
+ raise TTransportException(
+ type=TTransportException.UNKNOWN,
+ message='Could not validate SSL certificate from '
+ 'host "%s". Cert=%s' % (self.host, cert))
+
+
+class TSSLServerSocket(TSocket.TServerSocket):
+ """SSL implementation of TServerSocket
+
+ This uses the ssl module's wrap_socket() method to provide SSL
+ negotiated encryption.
+ """
+ SSL_VERSION = ssl.PROTOCOL_TLSv1
+
+ def __init__(self,
+ host=None,
+ port=9090,
+ certfile='cert.pem',
+ unix_socket=None):
+ """Initialize a TSSLServerSocket
+
+ @param certfile: filename of the server certificate, defaults to cert.pem
+ @type certfile: str
+ @param host: The hostname or IP to bind the listen socket to,
+ i.e. 'localhost' for only allowing local network connections.
+ Pass None to bind to all interfaces.
+ @type host: str
+ @param port: The port to listen on for inbound connections.
+ @type port: int
+ """
+ self.setCertfile(certfile)
+ TSocket.TServerSocket.__init__(self, host, port)
+
+ def setCertfile(self, certfile):
+ """Set or change the server certificate file used to wrap new connections.
+
+ @param certfile: The filename of the server certificate,
+ i.e. '/etc/certs/server.pem'
+ @type certfile: str
+
+ Raises an IOError exception if the certfile is not present or unreadable.
+ """
+ if not os.access(certfile, os.R_OK):
+ raise IOError('No such certfile found: %s' % (certfile))
+ self.certfile = certfile
+
+ def accept(self):
+ plain_client, addr = self.handle.accept()
+ try:
+ client = ssl.wrap_socket(plain_client, certfile=self.certfile,
+ server_side=True, ssl_version=self.SSL_VERSION)
+ except ssl.SSLError, ssl_exc:
+ # failed handshake/ssl wrap, close socket to client
+ plain_client.close()
+ # raise ssl_exc
+ # We can't raise the exception, because it kills most TServer derived
+ # serve() methods.
+ # Instead, return None, and let the TServer instance deal with it in
+ # other exception handling. (but TSimpleServer dies anyway)
+ return None
+ result = TSocket.TSocket()
+ result.setHandle(client)
+ return result
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSSLSocket.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSSLSocket.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSSLSocket.pyc
new file mode 100644
index 0000000..08a9798
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSSLSocket.pyc differ
[07/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.py
new file mode 100644
index 0000000..312e07a
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.py
@@ -0,0 +1,1426 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.status.ttypes
+import apache.airavata.model.application.io.ttypes
+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 MessageLevel:
+ INFO = 0
+ DEBUG = 1
+ ERROR = 2
+ ACK = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "INFO",
+ 1: "DEBUG",
+ 2: "ERROR",
+ 3: "ACK",
+ }
+
+ _NAMES_TO_VALUES = {
+ "INFO": 0,
+ "DEBUG": 1,
+ "ERROR": 2,
+ "ACK": 3,
+ }
+
+class MessageType:
+ EXPERIMENT = 0
+ TASK = 1
+ PROCESS = 2
+ JOB = 3
+ LAUNCHPROCESS = 4
+ TERMINATEPROCESS = 5
+ PROCESSOUTPUT = 6
+
+ _VALUES_TO_NAMES = {
+ 0: "EXPERIMENT",
+ 1: "TASK",
+ 2: "PROCESS",
+ 3: "JOB",
+ 4: "LAUNCHPROCESS",
+ 5: "TERMINATEPROCESS",
+ 6: "PROCESSOUTPUT",
+ }
+
+ _NAMES_TO_VALUES = {
+ "EXPERIMENT": 0,
+ "TASK": 1,
+ "PROCESS": 2,
+ "JOB": 3,
+ "LAUNCHPROCESS": 4,
+ "TERMINATEPROCESS": 5,
+ "PROCESSOUTPUT": 6,
+ }
+
+
+class ExperimentStatusChangeEvent:
+ """
+ Attributes:
+ - state
+ - experimentId
+ - gatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRING, 'experimentId', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, experimentId=None, gatewayId=None,):
+ self.state = state
+ self.experimentId = experimentId
+ self.gatewayId = gatewayId
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = 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('ExperimentStatusChangeEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 2)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ 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 ProcessIdentifier:
+ """
+ Attributes:
+ - processId
+ - experimentId
+ - gatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'processId', None, None, ), # 1
+ (2, TType.STRING, 'experimentId', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ )
+
+ def __init__(self, processId=None, experimentId=None, gatewayId=None,):
+ self.processId = processId
+ self.experimentId = experimentId
+ self.gatewayId = gatewayId
+
+ 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.processId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = 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('ProcessIdentifier')
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 1)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 2)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ 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 TaskIdentifier:
+ """
+ Attributes:
+ - taskId
+ - processId
+ - experimentId
+ - gatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'taskId', None, None, ), # 1
+ (2, TType.STRING, 'processId', None, None, ), # 2
+ (3, TType.STRING, 'experimentId', None, None, ), # 3
+ (4, TType.STRING, 'gatewayId', None, None, ), # 4
+ )
+
+ def __init__(self, taskId=None, processId=None, experimentId=None, gatewayId=None,):
+ self.taskId = taskId
+ self.processId = processId
+ self.experimentId = experimentId
+ self.gatewayId = gatewayId
+
+ 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.taskId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.processId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.gatewayId = 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('TaskIdentifier')
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 1)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 2)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 3)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 4)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.taskId)
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ 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 TaskStatusChangeEvent:
+ """
+ Attributes:
+ - state
+ - taskIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'taskIdentity', (TaskIdentifier, TaskIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, taskIdentity=None,):
+ self.state = state
+ self.taskIdentity = taskIdentity
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.taskIdentity = TaskIdentifier()
+ self.taskIdentity.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('TaskStatusChangeEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.taskIdentity is not None:
+ oprot.writeFieldBegin('taskIdentity', TType.STRUCT, 2)
+ self.taskIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.taskIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field taskIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.taskIdentity)
+ 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 TaskStatusChangeRequestEvent:
+ """
+ Attributes:
+ - state
+ - taskIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'taskIdentity', (TaskIdentifier, TaskIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, taskIdentity=None,):
+ self.state = state
+ self.taskIdentity = taskIdentity
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.taskIdentity = TaskIdentifier()
+ self.taskIdentity.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('TaskStatusChangeRequestEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.taskIdentity is not None:
+ oprot.writeFieldBegin('taskIdentity', TType.STRUCT, 2)
+ self.taskIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.taskIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field taskIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.taskIdentity)
+ 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 ProcessStatusChangeEvent:
+ """
+ Attributes:
+ - state
+ - processIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'processIdentity', (ProcessIdentifier, ProcessIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, processIdentity=None,):
+ self.state = state
+ self.processIdentity = processIdentity
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.processIdentity = ProcessIdentifier()
+ self.processIdentity.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('ProcessStatusChangeEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.processIdentity is not None:
+ oprot.writeFieldBegin('processIdentity', TType.STRUCT, 2)
+ self.processIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.processIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field processIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.processIdentity)
+ 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 ProcessStatusChangeRequestEvent:
+ """
+ Attributes:
+ - state
+ - processIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'processIdentity', (ProcessIdentifier, ProcessIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, processIdentity=None,):
+ self.state = state
+ self.processIdentity = processIdentity
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.processIdentity = ProcessIdentifier()
+ self.processIdentity.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('ProcessStatusChangeRequestEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.processIdentity is not None:
+ oprot.writeFieldBegin('processIdentity', TType.STRUCT, 2)
+ self.processIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.processIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field processIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.processIdentity)
+ 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 TaskOutputChangeEvent:
+ """
+ Attributes:
+ - output
+ - taskIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.LIST, 'output', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 1
+ (2, TType.STRUCT, 'taskIdentity', (TaskIdentifier, TaskIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, output=None, taskIdentity=None,):
+ self.output = output
+ self.taskIdentity = taskIdentity
+
+ 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.LIST:
+ self.output = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem5.read(iprot)
+ self.output.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.taskIdentity = TaskIdentifier()
+ self.taskIdentity.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('TaskOutputChangeEvent')
+ if self.output is not None:
+ oprot.writeFieldBegin('output', TType.LIST, 1)
+ oprot.writeListBegin(TType.STRUCT, len(self.output))
+ for iter6 in self.output:
+ iter6.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.taskIdentity is not None:
+ oprot.writeFieldBegin('taskIdentity', TType.STRUCT, 2)
+ self.taskIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.output is None:
+ raise TProtocol.TProtocolException(message='Required field output is unset!')
+ if self.taskIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field taskIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.output)
+ value = (value * 31) ^ hash(self.taskIdentity)
+ 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 JobIdentifier:
+ """
+ Attributes:
+ - jobId
+ - taskId
+ - processId
+ - experimentId
+ - gatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'jobId', None, None, ), # 1
+ (2, TType.STRING, 'taskId', None, None, ), # 2
+ (3, TType.STRING, 'processId', None, None, ), # 3
+ (4, TType.STRING, 'experimentId', None, None, ), # 4
+ (5, TType.STRING, 'gatewayId', None, None, ), # 5
+ )
+
+ def __init__(self, jobId=None, taskId=None, processId=None, experimentId=None, gatewayId=None,):
+ self.jobId = jobId
+ self.taskId = taskId
+ self.processId = processId
+ self.experimentId = experimentId
+ self.gatewayId = gatewayId
+
+ 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.jobId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.taskId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.processId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.gatewayId = 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('JobIdentifier')
+ if self.jobId is not None:
+ oprot.writeFieldBegin('jobId', TType.STRING, 1)
+ oprot.writeString(self.jobId)
+ oprot.writeFieldEnd()
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 2)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 3)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 4)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 5)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobId is None:
+ raise TProtocol.TProtocolException(message='Required field jobId is unset!')
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobId)
+ value = (value * 31) ^ hash(self.taskId)
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ 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 ProcessSubmitEvent:
+ """
+ Attributes:
+ - processId
+ - gatewayId
+ - experimentId
+ - tokenId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'processId', None, None, ), # 1
+ (2, TType.STRING, 'gatewayId', None, None, ), # 2
+ (3, TType.STRING, 'experimentId', None, None, ), # 3
+ (4, TType.STRING, 'tokenId', None, None, ), # 4
+ )
+
+ def __init__(self, processId=None, gatewayId=None, experimentId=None, tokenId=None,):
+ self.processId = processId
+ self.gatewayId = gatewayId
+ self.experimentId = experimentId
+ self.tokenId = tokenId
+
+ 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.processId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.tokenId = 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('ProcessSubmitEvent')
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 1)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 3)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.tokenId is not None:
+ oprot.writeFieldBegin('tokenId', TType.STRING, 4)
+ oprot.writeString(self.tokenId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.tokenId is None:
+ raise TProtocol.TProtocolException(message='Required field tokenId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.tokenId)
+ 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 ProcessTerminateEvent:
+ """
+ Attributes:
+ - processId
+ - gatewayId
+ - tokenId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'processId', None, None, ), # 1
+ (2, TType.STRING, 'gatewayId', None, None, ), # 2
+ (3, TType.STRING, 'tokenId', None, None, ), # 3
+ )
+
+ def __init__(self, processId=None, gatewayId=None, tokenId=None,):
+ self.processId = processId
+ self.gatewayId = gatewayId
+ self.tokenId = tokenId
+
+ 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.processId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.tokenId = 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('ProcessTerminateEvent')
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 1)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.tokenId is not None:
+ oprot.writeFieldBegin('tokenId', TType.STRING, 3)
+ oprot.writeString(self.tokenId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.tokenId is None:
+ raise TProtocol.TProtocolException(message='Required field tokenId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.tokenId)
+ 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 JobStatusChangeEvent:
+ """
+ Attributes:
+ - state
+ - jobIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'jobIdentity', (JobIdentifier, JobIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, jobIdentity=None,):
+ self.state = state
+ self.jobIdentity = jobIdentity
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.jobIdentity = JobIdentifier()
+ self.jobIdentity.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('JobStatusChangeEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.jobIdentity is not None:
+ oprot.writeFieldBegin('jobIdentity', TType.STRUCT, 2)
+ self.jobIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.jobIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field jobIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.jobIdentity)
+ 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 JobStatusChangeRequestEvent:
+ """
+ Attributes:
+ - state
+ - jobIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'jobIdentity', (JobIdentifier, JobIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, jobIdentity=None,):
+ self.state = state
+ self.jobIdentity = jobIdentity
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.jobIdentity = JobIdentifier()
+ self.jobIdentity.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('JobStatusChangeRequestEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.jobIdentity is not None:
+ oprot.writeFieldBegin('jobIdentity', TType.STRUCT, 2)
+ self.jobIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.jobIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field jobIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.jobIdentity)
+ 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 Message:
+ """
+ Attributes:
+ - event
+ - messageId
+ - messageType
+ - updatedTime
+ - messageLevel
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'event', None, None, ), # 1
+ (2, TType.STRING, 'messageId', None, "DO_NOT_SET_AT_CLIENTS", ), # 2
+ (3, TType.I32, 'messageType', None, None, ), # 3
+ (4, TType.I64, 'updatedTime', None, None, ), # 4
+ (5, TType.I32, 'messageLevel', None, None, ), # 5
+ )
+
+ def __init__(self, event=None, messageId=thrift_spec[2][4], messageType=None, updatedTime=None, messageLevel=None,):
+ self.event = event
+ self.messageId = messageId
+ self.messageType = messageType
+ self.updatedTime = updatedTime
+ self.messageLevel = messageLevel
+
+ 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.event = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.messageId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.messageType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.updatedTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.messageLevel = 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('Message')
+ if self.event is not None:
+ oprot.writeFieldBegin('event', TType.STRING, 1)
+ oprot.writeString(self.event)
+ oprot.writeFieldEnd()
+ if self.messageId is not None:
+ oprot.writeFieldBegin('messageId', TType.STRING, 2)
+ oprot.writeString(self.messageId)
+ oprot.writeFieldEnd()
+ if self.messageType is not None:
+ oprot.writeFieldBegin('messageType', TType.I32, 3)
+ oprot.writeI32(self.messageType)
+ oprot.writeFieldEnd()
+ if self.updatedTime is not None:
+ oprot.writeFieldBegin('updatedTime', TType.I64, 4)
+ oprot.writeI64(self.updatedTime)
+ oprot.writeFieldEnd()
+ if self.messageLevel is not None:
+ oprot.writeFieldBegin('messageLevel', TType.I32, 5)
+ oprot.writeI32(self.messageLevel)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.event is None:
+ raise TProtocol.TProtocolException(message='Required field event is unset!')
+ if self.messageId is None:
+ raise TProtocol.TProtocolException(message='Required field messageId is unset!')
+ if self.messageType is None:
+ raise TProtocol.TProtocolException(message='Required field messageType is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.event)
+ value = (value * 31) ^ hash(self.messageId)
+ value = (value * 31) ^ hash(self.messageType)
+ value = (value * 31) ^ hash(self.updatedTime)
+ value = (value * 31) ^ hash(self.messageLevel)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc
new file mode 100644
index 0000000..6244a8e
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc
new file mode 100644
index 0000000..ad3edc6
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.py
new file mode 100644
index 0000000..7da3b53
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.py
@@ -0,0 +1,425 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+import apache.airavata.model.application.io.ttypes
+import apache.airavata.model.status.ttypes
+import apache.airavata.model.task.ttypes
+import apache.airavata.model.scheduling.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class ProcessModel:
+ """
+ ProcessModel: A structure holding the process details. The infromation is derived based on user provided
+ configuration data or system inferred information from scheduling and QoS parameters.
+
+ processDetail:
+ A friendly description of the process, usally used to communicate information to users.
+
+
+
+ Attributes:
+ - processId
+ - experimentId
+ - creationTime
+ - lastUpdateTime
+ - processStatus
+ - processDetail
+ - applicationInterfaceId
+ - applicationDeploymentId
+ - computeResourceId
+ - processInputs
+ - processOutputs
+ - resourceSchedule
+ - tasks
+ - taskDag
+ - processError
+ - gatewayExecutionId
+ - enableEmailNotification
+ - emailAddresses
+ - storageResourceId
+ - userDn
+ - generateCert
+ - experimentDataDir
+ - userName
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'processId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'experimentId', None, None, ), # 2
+ (3, TType.I64, 'creationTime', None, None, ), # 3
+ (4, TType.I64, 'lastUpdateTime', None, None, ), # 4
+ (5, TType.STRUCT, 'processStatus', (apache.airavata.model.status.ttypes.ProcessStatus, apache.airavata.model.status.ttypes.ProcessStatus.thrift_spec), None, ), # 5
+ (6, TType.STRING, 'processDetail', None, None, ), # 6
+ (7, TType.STRING, 'applicationInterfaceId', None, None, ), # 7
+ (8, TType.STRING, 'applicationDeploymentId', None, None, ), # 8
+ (9, TType.STRING, 'computeResourceId', None, None, ), # 9
+ (10, TType.LIST, 'processInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 10
+ (11, TType.LIST, 'processOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 11
+ (12, TType.STRUCT, 'resourceSchedule', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 12
+ (13, TType.LIST, 'tasks', (TType.STRUCT,(apache.airavata.model.task.ttypes.TaskModel, apache.airavata.model.task.ttypes.TaskModel.thrift_spec)), None, ), # 13
+ (14, TType.STRING, 'taskDag', None, None, ), # 14
+ (15, TType.STRUCT, 'processError', (apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec), None, ), # 15
+ (16, TType.STRING, 'gatewayExecutionId', None, None, ), # 16
+ (17, TType.BOOL, 'enableEmailNotification', None, None, ), # 17
+ (18, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 18
+ (19, TType.STRING, 'storageResourceId', None, None, ), # 19
+ (20, TType.STRING, 'userDn', None, None, ), # 20
+ (21, TType.BOOL, 'generateCert', None, False, ), # 21
+ (22, TType.STRING, 'experimentDataDir', None, None, ), # 22
+ (23, TType.STRING, 'userName', None, None, ), # 23
+ )
+
+ def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatus=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, resourceSchedule=None, tasks=None, taskDag=None, processError=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, storageResourceId=None, userDn=None, generateCert=thrift_spec[21][4], experimentDataDir=None, userName=None,):
+ self.processId = processId
+ self.experimentId = experimentId
+ self.creationTime = creationTime
+ self.lastUpdateTime = lastUpdateTime
+ self.processStatus = processStatus
+ self.processDetail = processDetail
+ self.applicationInterfaceId = applicationInterfaceId
+ self.applicationDeploymentId = applicationDeploymentId
+ self.computeResourceId = computeResourceId
+ self.processInputs = processInputs
+ self.processOutputs = processOutputs
+ self.resourceSchedule = resourceSchedule
+ self.tasks = tasks
+ self.taskDag = taskDag
+ self.processError = processError
+ self.gatewayExecutionId = gatewayExecutionId
+ self.enableEmailNotification = enableEmailNotification
+ self.emailAddresses = emailAddresses
+ self.storageResourceId = storageResourceId
+ self.userDn = userDn
+ self.generateCert = generateCert
+ self.experimentDataDir = experimentDataDir
+ self.userName = userName
+
+ 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.processId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.lastUpdateTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRUCT:
+ self.processStatus = apache.airavata.model.status.ttypes.ProcessStatus()
+ self.processStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.processDetail = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.applicationInterfaceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.applicationDeploymentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.computeResourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.processInputs = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ _elem5.read(iprot)
+ self.processInputs.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.LIST:
+ self.processOutputs = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem11.read(iprot)
+ self.processOutputs.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.STRUCT:
+ self.resourceSchedule = apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
+ self.resourceSchedule.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.LIST:
+ self.tasks = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = apache.airavata.model.task.ttypes.TaskModel()
+ _elem17.read(iprot)
+ self.tasks.append(_elem17)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.STRING:
+ self.taskDag = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 15:
+ if ftype == TType.STRUCT:
+ self.processError = apache.airavata.model.commons.ttypes.ErrorModel()
+ self.processError.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 16:
+ if ftype == TType.STRING:
+ self.gatewayExecutionId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 17:
+ if ftype == TType.BOOL:
+ self.enableEmailNotification = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 18:
+ if ftype == TType.LIST:
+ self.emailAddresses = []
+ (_etype21, _size18) = iprot.readListBegin()
+ for _i22 in xrange(_size18):
+ _elem23 = iprot.readString()
+ self.emailAddresses.append(_elem23)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 19:
+ if ftype == TType.STRING:
+ self.storageResourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 20:
+ if ftype == TType.STRING:
+ self.userDn = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 21:
+ if ftype == TType.BOOL:
+ self.generateCert = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 22:
+ if ftype == TType.STRING:
+ self.experimentDataDir = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 23:
+ if ftype == TType.STRING:
+ self.userName = 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('ProcessModel')
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 1)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 2)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 3)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastUpdateTime is not None:
+ oprot.writeFieldBegin('lastUpdateTime', TType.I64, 4)
+ oprot.writeI64(self.lastUpdateTime)
+ oprot.writeFieldEnd()
+ if self.processStatus is not None:
+ oprot.writeFieldBegin('processStatus', TType.STRUCT, 5)
+ self.processStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.processDetail is not None:
+ oprot.writeFieldBegin('processDetail', TType.STRING, 6)
+ oprot.writeString(self.processDetail)
+ oprot.writeFieldEnd()
+ if self.applicationInterfaceId is not None:
+ oprot.writeFieldBegin('applicationInterfaceId', TType.STRING, 7)
+ oprot.writeString(self.applicationInterfaceId)
+ oprot.writeFieldEnd()
+ if self.applicationDeploymentId is not None:
+ oprot.writeFieldBegin('applicationDeploymentId', TType.STRING, 8)
+ oprot.writeString(self.applicationDeploymentId)
+ oprot.writeFieldEnd()
+ if self.computeResourceId is not None:
+ oprot.writeFieldBegin('computeResourceId', TType.STRING, 9)
+ oprot.writeString(self.computeResourceId)
+ oprot.writeFieldEnd()
+ if self.processInputs is not None:
+ oprot.writeFieldBegin('processInputs', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.processInputs))
+ for iter24 in self.processInputs:
+ iter24.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.processOutputs is not None:
+ oprot.writeFieldBegin('processOutputs', TType.LIST, 11)
+ oprot.writeListBegin(TType.STRUCT, len(self.processOutputs))
+ for iter25 in self.processOutputs:
+ iter25.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.resourceSchedule is not None:
+ oprot.writeFieldBegin('resourceSchedule', TType.STRUCT, 12)
+ self.resourceSchedule.write(oprot)
+ oprot.writeFieldEnd()
+ if self.tasks is not None:
+ oprot.writeFieldBegin('tasks', TType.LIST, 13)
+ oprot.writeListBegin(TType.STRUCT, len(self.tasks))
+ for iter26 in self.tasks:
+ iter26.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.taskDag is not None:
+ oprot.writeFieldBegin('taskDag', TType.STRING, 14)
+ oprot.writeString(self.taskDag)
+ oprot.writeFieldEnd()
+ if self.processError is not None:
+ oprot.writeFieldBegin('processError', TType.STRUCT, 15)
+ self.processError.write(oprot)
+ oprot.writeFieldEnd()
+ if self.gatewayExecutionId is not None:
+ oprot.writeFieldBegin('gatewayExecutionId', TType.STRING, 16)
+ oprot.writeString(self.gatewayExecutionId)
+ oprot.writeFieldEnd()
+ if self.enableEmailNotification is not None:
+ oprot.writeFieldBegin('enableEmailNotification', TType.BOOL, 17)
+ oprot.writeBool(self.enableEmailNotification)
+ oprot.writeFieldEnd()
+ if self.emailAddresses is not None:
+ oprot.writeFieldBegin('emailAddresses', TType.LIST, 18)
+ oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
+ for iter27 in self.emailAddresses:
+ oprot.writeString(iter27)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.storageResourceId is not None:
+ oprot.writeFieldBegin('storageResourceId', TType.STRING, 19)
+ oprot.writeString(self.storageResourceId)
+ oprot.writeFieldEnd()
+ if self.userDn is not None:
+ oprot.writeFieldBegin('userDn', TType.STRING, 20)
+ oprot.writeString(self.userDn)
+ oprot.writeFieldEnd()
+ if self.generateCert is not None:
+ oprot.writeFieldBegin('generateCert', TType.BOOL, 21)
+ oprot.writeBool(self.generateCert)
+ oprot.writeFieldEnd()
+ if self.experimentDataDir is not None:
+ oprot.writeFieldBegin('experimentDataDir', TType.STRING, 22)
+ oprot.writeString(self.experimentDataDir)
+ oprot.writeFieldEnd()
+ if self.userName is not None:
+ oprot.writeFieldBegin('userName', TType.STRING, 23)
+ oprot.writeString(self.userName)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastUpdateTime)
+ value = (value * 31) ^ hash(self.processStatus)
+ value = (value * 31) ^ hash(self.processDetail)
+ value = (value * 31) ^ hash(self.applicationInterfaceId)
+ value = (value * 31) ^ hash(self.applicationDeploymentId)
+ value = (value * 31) ^ hash(self.computeResourceId)
+ value = (value * 31) ^ hash(self.processInputs)
+ value = (value * 31) ^ hash(self.processOutputs)
+ value = (value * 31) ^ hash(self.resourceSchedule)
+ value = (value * 31) ^ hash(self.tasks)
+ value = (value * 31) ^ hash(self.taskDag)
+ value = (value * 31) ^ hash(self.processError)
+ value = (value * 31) ^ hash(self.gatewayExecutionId)
+ value = (value * 31) ^ hash(self.enableEmailNotification)
+ value = (value * 31) ^ hash(self.emailAddresses)
+ value = (value * 31) ^ hash(self.storageResourceId)
+ value = (value * 31) ^ hash(self.userDn)
+ value = (value * 31) ^ hash(self.generateCert)
+ value = (value * 31) ^ hash(self.experimentDataDir)
+ value = (value * 31) ^ hash(self.userName)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc
new file mode 100644
index 0000000..23c9673
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/process/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc
new file mode 100644
index 0000000..4ed336e
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.py
new file mode 100644
index 0000000..6fb231b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.py
@@ -0,0 +1,230 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class ComputationalResourceSchedulingModel:
+ """
+ ComputationalResourceSchedulingModel:
+
+
+
+ Attributes:
+ - resourceHostId
+ - totalCPUCount
+ - nodeCount
+ - numberOfThreads
+ - queueName
+ - wallTimeLimit
+ - totalPhysicalMemory
+ - chessisNumber
+ - staticWorkingDir
+ - overrideLoginUserName
+ - overrideScratchLocation
+ - overrideAllocationProjectNumber
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'resourceHostId', None, None, ), # 1
+ (2, TType.I32, 'totalCPUCount', None, None, ), # 2
+ (3, TType.I32, 'nodeCount', None, None, ), # 3
+ (4, TType.I32, 'numberOfThreads', None, None, ), # 4
+ (5, TType.STRING, 'queueName', None, None, ), # 5
+ (6, TType.I32, 'wallTimeLimit', None, None, ), # 6
+ (7, TType.I32, 'totalPhysicalMemory', None, None, ), # 7
+ (8, TType.STRING, 'chessisNumber', None, None, ), # 8
+ (9, TType.STRING, 'staticWorkingDir', None, None, ), # 9
+ (10, TType.STRING, 'overrideLoginUserName', None, None, ), # 10
+ (11, TType.STRING, 'overrideScratchLocation', None, None, ), # 11
+ (12, TType.STRING, 'overrideAllocationProjectNumber', None, None, ), # 12
+ )
+
+ def __init__(self, resourceHostId=None, totalCPUCount=None, nodeCount=None, numberOfThreads=None, queueName=None, wallTimeLimit=None, totalPhysicalMemory=None, chessisNumber=None, staticWorkingDir=None, overrideLoginUserName=None, overrideScratchLocation=None, overrideAllocationProjectNumber=None,):
+ self.resourceHostId = resourceHostId
+ self.totalCPUCount = totalCPUCount
+ self.nodeCount = nodeCount
+ self.numberOfThreads = numberOfThreads
+ self.queueName = queueName
+ self.wallTimeLimit = wallTimeLimit
+ self.totalPhysicalMemory = totalPhysicalMemory
+ self.chessisNumber = chessisNumber
+ self.staticWorkingDir = staticWorkingDir
+ self.overrideLoginUserName = overrideLoginUserName
+ self.overrideScratchLocation = overrideScratchLocation
+ self.overrideAllocationProjectNumber = overrideAllocationProjectNumber
+
+ 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.resourceHostId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.totalCPUCount = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.nodeCount = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.numberOfThreads = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.queueName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I32:
+ self.wallTimeLimit = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I32:
+ self.totalPhysicalMemory = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.chessisNumber = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.staticWorkingDir = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.overrideLoginUserName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.overrideScratchLocation = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.STRING:
+ self.overrideAllocationProjectNumber = 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('ComputationalResourceSchedulingModel')
+ if self.resourceHostId is not None:
+ oprot.writeFieldBegin('resourceHostId', TType.STRING, 1)
+ oprot.writeString(self.resourceHostId)
+ oprot.writeFieldEnd()
+ if self.totalCPUCount is not None:
+ oprot.writeFieldBegin('totalCPUCount', TType.I32, 2)
+ oprot.writeI32(self.totalCPUCount)
+ oprot.writeFieldEnd()
+ if self.nodeCount is not None:
+ oprot.writeFieldBegin('nodeCount', TType.I32, 3)
+ oprot.writeI32(self.nodeCount)
+ oprot.writeFieldEnd()
+ if self.numberOfThreads is not None:
+ oprot.writeFieldBegin('numberOfThreads', TType.I32, 4)
+ oprot.writeI32(self.numberOfThreads)
+ oprot.writeFieldEnd()
+ if self.queueName is not None:
+ oprot.writeFieldBegin('queueName', TType.STRING, 5)
+ oprot.writeString(self.queueName)
+ oprot.writeFieldEnd()
+ if self.wallTimeLimit is not None:
+ oprot.writeFieldBegin('wallTimeLimit', TType.I32, 6)
+ oprot.writeI32(self.wallTimeLimit)
+ oprot.writeFieldEnd()
+ if self.totalPhysicalMemory is not None:
+ oprot.writeFieldBegin('totalPhysicalMemory', TType.I32, 7)
+ oprot.writeI32(self.totalPhysicalMemory)
+ oprot.writeFieldEnd()
+ if self.chessisNumber is not None:
+ oprot.writeFieldBegin('chessisNumber', TType.STRING, 8)
+ oprot.writeString(self.chessisNumber)
+ oprot.writeFieldEnd()
+ if self.staticWorkingDir is not None:
+ oprot.writeFieldBegin('staticWorkingDir', TType.STRING, 9)
+ oprot.writeString(self.staticWorkingDir)
+ oprot.writeFieldEnd()
+ if self.overrideLoginUserName is not None:
+ oprot.writeFieldBegin('overrideLoginUserName', TType.STRING, 10)
+ oprot.writeString(self.overrideLoginUserName)
+ oprot.writeFieldEnd()
+ if self.overrideScratchLocation is not None:
+ oprot.writeFieldBegin('overrideScratchLocation', TType.STRING, 11)
+ oprot.writeString(self.overrideScratchLocation)
+ oprot.writeFieldEnd()
+ if self.overrideAllocationProjectNumber is not None:
+ oprot.writeFieldBegin('overrideAllocationProjectNumber', TType.STRING, 12)
+ oprot.writeString(self.overrideAllocationProjectNumber)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.resourceHostId)
+ value = (value * 31) ^ hash(self.totalCPUCount)
+ value = (value * 31) ^ hash(self.nodeCount)
+ value = (value * 31) ^ hash(self.numberOfThreads)
+ value = (value * 31) ^ hash(self.queueName)
+ value = (value * 31) ^ hash(self.wallTimeLimit)
+ value = (value * 31) ^ hash(self.totalPhysicalMemory)
+ value = (value * 31) ^ hash(self.chessisNumber)
+ value = (value * 31) ^ hash(self.staticWorkingDir)
+ value = (value * 31) ^ hash(self.overrideLoginUserName)
+ value = (value * 31) ^ hash(self.overrideScratchLocation)
+ value = (value * 31) ^ hash(self.overrideAllocationProjectNumber)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc
new file mode 100644
index 0000000..820528b
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/scheduling/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc
new file mode 100644
index 0000000..364840e
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.py
new file mode 100644
index 0000000..74c50e7
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.py
@@ -0,0 +1,108 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class AuthzToken:
+ """
+ Attributes:
+ - accessToken
+ - claimsMap
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'accessToken', None, None, ), # 1
+ (2, TType.MAP, 'claimsMap', (TType.STRING,None,TType.STRING,None), None, ), # 2
+ )
+
+ def __init__(self, accessToken=None, claimsMap=None,):
+ self.accessToken = accessToken
+ self.claimsMap = claimsMap
+
+ 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.accessToken = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.MAP:
+ self.claimsMap = {}
+ (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
+ for _i4 in xrange(_size0):
+ _key5 = iprot.readString()
+ _val6 = iprot.readString()
+ self.claimsMap[_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('AuthzToken')
+ if self.accessToken is not None:
+ oprot.writeFieldBegin('accessToken', TType.STRING, 1)
+ oprot.writeString(self.accessToken)
+ oprot.writeFieldEnd()
+ if self.claimsMap is not None:
+ oprot.writeFieldBegin('claimsMap', TType.MAP, 2)
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.claimsMap))
+ for kiter7,viter8 in self.claimsMap.items():
+ oprot.writeString(kiter7)
+ oprot.writeString(viter8)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.accessToken is None:
+ raise TProtocol.TProtocolException(message='Required field accessToken is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.accessToken)
+ value = (value * 31) ^ hash(self.claimsMap)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc
new file mode 100644
index 0000000..27429d0
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/security/ttypes.pyc differ
[31/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/.ipynb_checkpoints/Admin User-checkpoint.ipynb
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/.ipynb_checkpoints/Admin User-checkpoint.ipynb b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/.ipynb_checkpoints/Admin User-checkpoint.ipynb
new file mode 100644
index 0000000..748fc23
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/.ipynb_checkpoints/Admin User-checkpoint.ipynb
@@ -0,0 +1,852 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "import ConfigParser\n",
+ "import pandas as pd\n",
+ "import datetime\n",
+ "from datetime import datetime\n",
+ "import calendar\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "conf = ConfigParser.RawConfigParser()\n",
+ "conf.read('cli.properties')\n",
+ "hostName = conf.get('AiravataServer', 'host')\n",
+ "port = conf.get('AiravataServer', 'port')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.16.0\n",
+ "0.16.0\n",
+ "\n",
+ "Welcome to Airavata CLI v0.0.1 - Wirtten in python\n",
+ "\n",
+ "\n",
+ "None\n"
+ ]
+ }
+ ],
+ "source": [
+ "from airavata_cli import AiravataCLI\n",
+ "airavata_cli = AiravataCLI(hostName, int(port))\n",
+ "print(airavata_cli.printVersion())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": [
+ "## Making Sure we are connected to the right Gateway"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[Gateway(gatewayId='Ultrascan_Production', emailAddress=None, domain=None, gatewayName='Ultrascan_Production')]"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "airavata_cli.get_gatewaylist()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## List of Resources the Gateway uses"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29',\n",
+ " 'alamo.uthscsa.edu'),\n",
+ " ('Jureca_32098185-4396-4c11-afb7-26e991a03476', 'Jureca'),\n",
+ " ('comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', 'comet.sdsc.edu'),\n",
+ " ('gordon.sdsc.edu_f9363997-4614-477f-847e-79d262ee8ef7', 'gordon.sdsc.edu'),\n",
+ " ('ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf',\n",
+ " 'ls5.tacc.utexas.edu'),\n",
+ " ('stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12',\n",
+ " 'stampede.tacc.xsede.org')]"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "airavata_cli.computer_resources().items()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>Id</th>\n",
+ " <th>Name</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-1716...</td>\n",
+ " <td>alamo.uthscsa.edu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>Jureca_32098185-4396-4c11-afb7-26e991a03476</td>\n",
+ " <td>Jureca</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975e...</td>\n",
+ " <td>comet.sdsc.edu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>gordon.sdsc.edu_f9363997-4614-477f-847e-79d262...</td>\n",
+ " <td>gordon.sdsc.edu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa...</td>\n",
+ " <td>ls5.tacc.utexas.edu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b14...</td>\n",
+ " <td>stampede.tacc.xsede.org</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " Id Name\n",
+ "0 alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-1716... alamo.uthscsa.edu\n",
+ "1 Jureca_32098185-4396-4c11-afb7-26e991a03476 Jureca\n",
+ "2 comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975e... comet.sdsc.edu\n",
+ "3 gordon.sdsc.edu_f9363997-4614-477f-847e-79d262... gordon.sdsc.edu\n",
+ "4 ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa... ls5.tacc.utexas.edu\n",
+ "5 stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b14... stampede.tacc.xsede.org"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "compute_resources = pd.DataFrame(list(airavata_cli.computer_resources().items()), columns=[\"Id\", \"Name\"])\n",
+ "compute_resources"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Some other custom functions which can be created"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[ApplicationInterfaceDescription(applicationName='Ultrascan', applicationInputs=[InputDataObjectType(userFriendlyDescription='Ultrascan HPC Input Tar File', name='Input_Tar_File', dataStaged=False, value='', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=3, inputOrder=1, metaData=''), InputDataObjectType(userFriendlyDescription='Batches for multi-wavelength data processing', name='Parallel_Group_Count', dataStaged=False, value='-mgroupcount=1', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=3, metaData=''), InputDataObjectType(userFriendlyDescription='Wall Clock Limit on the Compute Resource', name='Wall_Time', dataStaged=False, value='-walltime=60', applicationArgument='', isRequired=True, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=2, metaData='')], applicationInterfaceId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46
', applicationDescription='Ultrascan Version 3 Interface', applicationOutputs=[OutputDataObjectType(dataMovement=True, name='output', value='output/analysis-results.tar', applicationArgument='', isRequired=True, searchQuery='', location='output', requiredToAddedToCommandLine=False, outputStreaming=False, type=3), OutputDataObjectType(dataMovement=True, name='Ultrascan-Standard-Error', value='', applicationArgument='', isRequired=True, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=5), OutputDataObjectType(dataMovement=True, name='Ultrascan-Standard-Out', value='', applicationArgument='', isRequired=True, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=4)], applicationModules=['Ultrascan_82282f1e-284f-4999-9beb-4620c485b03d']),\n",
+ " ApplicationInterfaceDescription(applicationName='Ultrascan_Unicore', applicationInputs=[InputDataObjectType(userFriendlyDescription='', name='Input', dataStaged=False, value='', applicationArgument='', isRequired=True, standardInput=False, requiredToAddedToCommandLine=False, type=3, inputOrder=1, metaData=''), InputDataObjectType(userFriendlyDescription='', name='mgroupcount', dataStaged=False, value='-mgroupcount 1', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=2, metaData=''), InputDataObjectType(userFriendlyDescription='', name='US3INPUTARG', dataStaged=False, value='', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=4, metaData=''), InputDataObjectType(userFriendlyDescription='', name='walltime', dataStaged=False, value='-walltime 60', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True,
type=0, inputOrder=3, metaData='')], applicationInterfaceId='Ultrascan_Unicore_0e7f8522-6d75-41ba-8b09-0021e728679a', applicationDescription='Unicore Service', applicationOutputs=[OutputDataObjectType(dataMovement=True, name='Ultrascan-Unicore-Standard-Error', value='', applicationArgument='', isRequired=False, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=5), OutputDataObjectType(dataMovement=True, name='Ultrascan-Unicore-Standard-Out', value='', applicationArgument='', isRequired=False, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=4), OutputDataObjectType(dataMovement=True, name='US3OUT', value='analysis-results.tar', applicationArgument='', isRequired=True, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=0)], applicationModules=['Ultrascan_Unicore_2471953d-5d87-4ffc-b0e6-b06c86c6206d'])]"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "airavata_cli.list_of_applications('Ultrascan_Production')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[ApplicationModule(appModuleName='Ultrascan', appModuleVersion='Ultrascan Application', appModuleId='Ultrascan_82282f1e-284f-4999-9beb-4620c485b03d', appModuleDescription=''),\n",
+ " ApplicationModule(appModuleName='Ultrascan_Unicore', appModuleVersion='', appModuleId='Ultrascan_Unicore_2471953d-5d87-4ffc-b0e6-b06c86c6206d', appModuleDescription='Ultrascan Unicore Application')]"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "airavata_cli.module_descriptions('Ultrascan_Production') "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": [
+ "##Setting the time parameters"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "start= datetime(2015,7,16,15,10)\n",
+ "end= datetime(2016,7,17,11,59)\n",
+ "fromTime = calendar.timegm(start.timetuple())\n",
+ "toTime = calendar.timegm(end.timetuple())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Getting the list of Experiments executed during the above mentioned period"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "ds=airavata_cli.experiment_statistics(\"Ultrascan_Production\", fromTime*1000, toTime*1000)\n",
+ "#ds"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>User Name</th>\n",
+ " <th>Name</th>\n",
+ " <th>Status Update</th>\n",
+ " <th>Resource Host ID</th>\n",
+ " <th>Project ID</th>\n",
+ " <th>Creation Time</th>\n",
+ " <th>Experiment ID</th>\n",
+ " <th>Execution ID</th>\n",
+ " <th>Gateway ID</th>\n",
+ " <th>Experiment Status</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>Daniel_Krzizike_550162c5-88f4-5624-cd19-114778...</td>\n",
+ " <td>US3-AIRA</td>\n",
+ " <td>None</td>\n",
+ " <td>ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa...</td>\n",
+ " <td>Default_Project_4e1dede8-0925-47e6-b61c-966051...</td>\n",
+ " <td>1468618483000</td>\n",
+ " <td>US3-AIRA_36f4788f-240b-4119-aaed-18926be8165c</td>\n",
+ " <td>Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46</td>\n",
+ " <td>Ultrascan_Production</td>\n",
+ " <td>COMPLETED</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f</td>\n",
+ " <td>US3-AIRA</td>\n",
+ " <td>None</td>\n",
+ " <td>ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa...</td>\n",
+ " <td>Default_Project_b884d629-32bf-4532-ae76-8366db...</td>\n",
+ " <td>1468616186000</td>\n",
+ " <td>US3-AIRA_408946e3-6104-48b3-a9dc-27ec03f45cb2</td>\n",
+ " <td>Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46</td>\n",
+ " <td>Ultrascan_Production</td>\n",
+ " <td>COMPLETED</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f</td>\n",
+ " <td>US3-AIRA</td>\n",
+ " <td>None</td>\n",
+ " <td>ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa...</td>\n",
+ " <td>Default_Project_b884d629-32bf-4532-ae76-8366db...</td>\n",
+ " <td>1468615898000</td>\n",
+ " <td>US3-AIRA_270ed9fe-f0f9-4c00-936f-72c994cb2125</td>\n",
+ " <td>Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46</td>\n",
+ " <td>Ultrascan_Production</td>\n",
+ " <td>COMPLETED</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>Daniel_Krzizike_550162c5-88f4-5624-cd19-114778...</td>\n",
+ " <td>US3-AIRA</td>\n",
+ " <td>None</td>\n",
+ " <td>ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa...</td>\n",
+ " <td>Default_Project_4e1dede8-0925-47e6-b61c-966051...</td>\n",
+ " <td>1468612459000</td>\n",
+ " <td>US3-AIRA_c23effff-bf70-4d77-968a-5982919eb3a0</td>\n",
+ " <td>Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46</td>\n",
+ " <td>Ultrascan_Production</td>\n",
+ " <td>COMPLETED</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>Daniel_Krzizike_550162c5-88f4-5624-cd19-114778...</td>\n",
+ " <td>US3-AIRA</td>\n",
+ " <td>None</td>\n",
+ " <td>ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa...</td>\n",
+ " <td>Default_Project_4e1dede8-0925-47e6-b61c-966051...</td>\n",
+ " <td>1468612433000</td>\n",
+ " <td>US3-AIRA_2e65cd86-b4f2-4514-99c2-68c6cec880f4</td>\n",
+ " <td>Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46</td>\n",
+ " <td>Ultrascan_Production</td>\n",
+ " <td>COMPLETED</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " User Name Name Status Update \\\n",
+ "0 Daniel_Krzizike_550162c5-88f4-5624-cd19-114778... US3-AIRA None \n",
+ "1 Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f US3-AIRA None \n",
+ "2 Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f US3-AIRA None \n",
+ "3 Daniel_Krzizike_550162c5-88f4-5624-cd19-114778... US3-AIRA None \n",
+ "4 Daniel_Krzizike_550162c5-88f4-5624-cd19-114778... US3-AIRA None \n",
+ "\n",
+ " Resource Host ID \\\n",
+ "0 ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa... \n",
+ "1 ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa... \n",
+ "2 ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa... \n",
+ "3 ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa... \n",
+ "4 ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa... \n",
+ "\n",
+ " Project ID Creation Time \\\n",
+ "0 Default_Project_4e1dede8-0925-47e6-b61c-966051... 1468618483000 \n",
+ "1 Default_Project_b884d629-32bf-4532-ae76-8366db... 1468616186000 \n",
+ "2 Default_Project_b884d629-32bf-4532-ae76-8366db... 1468615898000 \n",
+ "3 Default_Project_4e1dede8-0925-47e6-b61c-966051... 1468612459000 \n",
+ "4 Default_Project_4e1dede8-0925-47e6-b61c-966051... 1468612433000 \n",
+ "\n",
+ " Experiment ID \\\n",
+ "0 US3-AIRA_36f4788f-240b-4119-aaed-18926be8165c \n",
+ "1 US3-AIRA_408946e3-6104-48b3-a9dc-27ec03f45cb2 \n",
+ "2 US3-AIRA_270ed9fe-f0f9-4c00-936f-72c994cb2125 \n",
+ "3 US3-AIRA_c23effff-bf70-4d77-968a-5982919eb3a0 \n",
+ "4 US3-AIRA_2e65cd86-b4f2-4514-99c2-68c6cec880f4 \n",
+ "\n",
+ " Execution ID Gateway ID \\\n",
+ "0 Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46 Ultrascan_Production \n",
+ "1 Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46 Ultrascan_Production \n",
+ "2 Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46 Ultrascan_Production \n",
+ "3 Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46 Ultrascan_Production \n",
+ "4 Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46 Ultrascan_Production \n",
+ "\n",
+ " Experiment Status \n",
+ "0 COMPLETED \n",
+ "1 COMPLETED \n",
+ "2 COMPLETED \n",
+ "3 COMPLETED \n",
+ "4 COMPLETED "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "All_Experiments = []\n",
+ "for i in ds.allExperiments:\n",
+ " All_Experiments.append([i.userName, i.name, i.statusUpdateTime, i.resourceHostId, i.projectId, i.creationTime, \n",
+ " i.experimentId, i.executionId, i.gatewayId, i.experimentStatus])\n",
+ "labels = [\"User Name\", \"Name\", \"Status Update\", \"Resource Host ID\", \"Project ID\", \"Creation Time\", \"Experiment ID\", \n",
+ " \"Execution ID\", \"Gateway ID\", \"Experiment Status\"]\n",
+ "df = pd.DataFrame(data=All_Experiments, columns=labels)\n",
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(4124, 10)"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Calculating percentage use of resources"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "ls5_cn = sum([1 for x, row in df.iterrows() if row[3] == 'ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf' and row[9] == 'COMPLETED'])\n",
+ "stampede_cn = sum([1 for x, row in df.iterrows() if row[3] == 'stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12' and row[9] == 'COMPLETED'])\n",
+ "comet_cn = sum([1 for x, row in df.iterrows() if row[3] == 'comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b' and row[9] == 'COMPLETED'])\n",
+ "gordon_cn= sum([1 for x, row in df.iterrows() if row[3] == 'gordon.sdsc.edu_f9363997-4614-477f-847e-79d262ee8ef7' and row[9] == 'COMPLETED'])\n",
+ "#jureca_cn = sum([1 for x, row in df.iterrows() if row[3] == 'Jureca_32098185-4396-4c11-afb7-26e991a03476' and row[9] == 'COMPLETED'])\n",
+ "alamo_cn = sum([1 for x, row in df.iterrows() if row[3] == 'alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29' and row[9] == 'COMPLETED'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD8CAYAAACfF6SlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VGX2wPHvuTOZTElClxIghISANBGQZkFBUVExuEhV\nEEFEmiyrv7UroisguiqLXcEOiKCLaxd0QUUBAUGWJkhHeuqkzby/P+4NhBhIgCR3knk/zzNPJnPL\nnLmBc++c+xZRSqFpmqaFF8PuADRN07Typ5O/pmlaGNLJX9M0LQzp5K9pmhaGdPLXNE0LQzr5a5qm\nhSGd/DWthETkYRF5y+44NK006ORfAYjI7yKSKSKpIrJXRGaKiNfuuAoSkW0i0i1U3ltEhojIkjJ4\nu1LpGFPob7onFP+mWuWmk3/FoIBrlFIxQFugPfDA6e5ERBylHViIC+UejAX/pm2A84F77Q3puDD8\ntxJ2dPKvOARAKbUX+BRoCSAiMSLyqnX1uFNEJomIWMuGiMhSEXlaRA4CD1uv3yYi662rznUi0sZ6\nva6IzBOR/SLym4iMPfbmZsljjoi8YW23VkTaWsveBBoCC61ld1mvz7W+qRwRkW9EpHmB/VUXkYUi\nkiIiP1pxLymwvJmIfCEih0TkfyJy4xkfOJFIEXlLRA5asfwoIrWKO34n4RGR2dbnXCEiraz93CUi\n8wq973Mi8s9ThQaglNoPfI55Esjf1iUi00Rku3UMnxeRSGtZDevYHbGOz7cFtmsmIoutZWtF5LoC\nyxaLyK0Ffj/h25GIBEVklIhsAjZZr7Uo8HfYKyL3WK+LiNwjIltE5IB1TKoWd7y10KGTfwUjIg2A\nnsDP1ktvADlAY8yrxyuA4QU26QhsAc4BHreS6EPATdZVZy/gkJXwFgKrgLpAd+BOEbmiwL6uA94F\nqljrzgBQSg0GdgDXKqVilFLTrPU/ARKs9/4ZeKfAv
p4H0qxltwBDsK7UrfLHF8DbQE2gPzBDRJqd\n9gEzDQFigFigOjAS8FvLijt+hfUC5gDVgPeAj6yr5LeBK0UkxvoMDqCftf9TEpH6wNXA5gIvTwES\ngdbWz1jMvxvA34CdQA3M43eftR8n5t/lM6AWMA54R0SanOLtC387uh7oADQXkSjgS8y/Y10rjq+t\n9cZZx+JioB5wBPNvCqc+3lqoUErpR4g/gG1AKnDYej4diMT8j58FRBZYtz+wyHo+BPi90L4+A8YW\n8R4dilj3HuA16/nDwBcFlp0LZBSKsdspPkNVIAhEY1505ACJBZZPAv5rPe8LfFto+xeBB09xfLoV\nem1Igf0NBZYCrQqtc8rjV8T7PAx8X+B3AfYAF1q//wcYZj2/FlhXgr9pqnVcvgRiCixPB+IL/N4Z\n2Go9nwgsABIK7fMiYE+h194FHrKeLwZuLeoYWb8Hga6FjsXKk8S/HriswO91rb+pcbLjrR+h9XCi\nVRTXK6UWF3xBROKACGBvfqXHeuwosNrOQvtpAPxWxP7jgFgROZy/e8z/yP8tsM6+As8zAbeIGEqp\nYOGdiYgB/APog3n1rqxHTcALOIBdJ4kzDuhUKBYHcLKWNnmYx6GgCCDXev4WUB+YLSJVMK/S77fe\np7jjV9ixOJVSSkR2YV75AryJeZX7GjDoFPHmu14ptVhELsZM0jWBVKtE4gVWFqhAGVZsAE8CjwBf\niIgCXlFKTbHiKPz33o55BV5SBf8mJ/u3AuaxWyAi+X97wTzetTnJ8VZKBU4jDq2M6eRfcRRVh96J\neeVaQ1mXX0Uo/PpOzFJMUfvaqpRqeobxFX6fgZhlom5KqR1WEjiC+TkOYCbs+pglKTATTcFYvlFK\nXVnC994BNCr0Wjxm4kMplYf5zWKSiDTEvGey0fpZ3PEr7FicVqmsPubVP8CHwPMi0gLzyv/uYvaV\nX/NfIiJvAE8BvYGDmCfXFsq8
x3MCpVQ6cBdwl3UfZbGI/GTF0bDQ6g2tzwqQgXlSyVeniJgKHoed\nmFf/RdmB+S3ih5MsL+p4zzzJupoNdM2/AlNK7cOsjf9TRKKtm3CNReSSU2z2KmbSyL9Zm2DdR/gJ\nSBOR/xMRt4g4rJt97U+xr4InpH2YdfN80UA2cEREfMATWInF+qYwH3hERDxWLX9wgW0/BpJE5CYR\ncYpIhIi0P0XNfw4wXkSaWp+pPXArZk0eEblURFpa30bSMa9QA2d4/NqJSLJV0/8r5sljmfW5soEP\nMK/if1RK7Tr5bv7kGeAKEWllnYheAZ6R4zemY0Wkh/X8GhHJP4GnYZ5Ig8CPQIb1N3SKyKWYJ6H3\nrHVXAzdYxzwRGFZMTB8DdURknJg3oKNEpIO17CXgH1ZyR0RqiUgv63lRx/tP3w41e+nkXzGc6qp0\nMODCrMEeBt6n6Cs6c0dKzQMeB94VkVTM2nF1KyFfi9niZBuwHzMBxZQwrsnAgyJyWEQmYN7o3AHs\nBtYB3xfadizmfYC91rrvYp4s8q9se2Bede6xHpOtz1mUVzCvKheKyFFgFnCvUupLa3kdYB6QAvyK\nWft+21p2WscP+AjzRu4RzNJO70LljDeAVpgloFM54W+qlDpobZt/U/cezG9Fy6zP9AWQZC1rAnwl\nImnAd8AMpdS3SqlczG9bPTG/PfwLuFkplX8j+Z+YiXgf5vHKPwYniykd8wZ4L2ubTcCl1uJnrWPx\nhYikYP59808MRR1v3TkuxEjJv+1qWtkRkclAbaXUULtjORvWt6j/AXWs5KlpIUlf+Wu2EJGmcryN\nfAfMEsR8e6M6O1aZ42/AbJ34tVCnb/hqdokG3hORusAfwJNKqYU2x3TGrL4Jf2CWzK62ORxNK5Yu\n+2iapoUhXfbRNE0LQzr5a5qmhSGd/DVN08KQTv6apmlhSCd/TdO0MKSTv6ZpWhjSyV/TNC0M6eSv\naZoWhnT
y1zRNC0M6+WuapoUhnfw1TdPCkE7+mqZpYUgnf03TtDCkk7+maVoY0slf0zQtDOnkr2ma\nFoZ08tc0TQtDOvlrmqaFIZ38NU3TwpBO/pqmaWFIJ39N07QwpJO/pmlaGHLaHYCmlRYREcAH1ACq\nF3jk/+7GMJwYRgSG4UTEfKjAOR4jNxc4GgwSAPKCQQLBILmBAGlAKpBykkeqUiqnvD+rpp0tnfy1\nkCciPiARaAIkEBlZD5erLoZxDkpVJxisRm5uDIbhw+EI4vHkEBUVICZGUaWKUK1aBFWrunC7HRgG\nxx4OBxgGznmzVdvEQ9KmDQSDoJT5MxAAv59gaio5aWnkpaURSE+H9HTIzMSRlYUzOxuX0ylBp5NM\np5NUh4NdgQBbMjLYCOwEdliPXUqpbBsPo6adQCd/LSSIiIfjCb4JPt95OBzNyclphMPho2bNTBo0\ngPh4LzVqOImOhpgYjv3Mf+5yOYCI03lv9dWnqnXrQ9KnT5GLDcB90m0VZGdjZGQQk5pKzP791P/j\nDzr98QeB3bvx791LYP9+HKmpeNxuyXC52CfC9qwsNubksAZYC/yqlEo/nZg17Wzp5K+VKxFxA22B\njvh85+NwtCAnJx6HI5oaNfzUr69o3NhDgwYRxMZC/fpQqxYYRozdsRdFBNxu81GjBsTHH1vkAKLy\nfwkE4MgRYvbvJ2b/fpL27eOKzZvJ2LSJwL59eH0+Oex08mtGBj8EAsdOCpuVUnnl/6m0cKCTv1Zm\nrBp8HNAJt7srERGX4XQ2pk4dP23aRJKQEEn9+scTvMMRbXfMZcXhgJo1zUfz5sde9oF5Yti9m3O2\nbuWc336j64YNpG/dipGSQmR0tOxQilUZGSwClgDrlVJBmz6GVono5K+VGqs23w7oTHT0FURGtsfp\ndNG8eR7nnx9F8+ZC06bgdp9WWaayczigYUPzcemlGEAMgN8P27aRsHUrCatX03PVKoLp
6UhMjPyU\nlsYnmCeDn5VSubZ+AK1C0slfO2MiUgW4HI/nahyOrjidccTG+mnTxk3r1i6aN4fatc3aiHbaPB7z\nW0Lz5nDttXgBDh6EX37hstWr6bJiBdkHDhAZEyNrMzP5JBDgW2CZUirT5tC1CkAnf63ErDJOC0R6\nEhXVj4iIljRtmsVFF0XTooWQlAQul76qL0M1a0K3btCtG5FAZFoarFtH+9WrOW/FCsbv2IE7JkZ+\nTkvjbeDfSqmddseshSad/LVTEhEXcBkeTz/c7l643W4uvNDBhRe6adMGPB6X3TGGs+ho6NwZOncm\nAojIzITly+n07be0XraMadHRsjs7m/dyc1kArFJKKbtj1kKDTv7an1i1+6vw+W7C5epB/fp5XH55\nFF26GDRsqMs4Iczrha5doWtXvIEArFtHwpIl/N833zA+I4Mcr1cW+P28D3yj+x2EN9EXAhqAiEQC\n1xMVdTvZ2RfStGk2l18ew4UXmrWGSswxclhwRLetRt++dkdSdpSCHTvgu+8ILlpE+o4duFwuPs3I\nYAawONRaEInINqCdUuqw3bFUVvrKP8yJyLm43aOIjBxCQgJcf300nTtDdHSk3bFppUcE4uIgLg5j\n4EBiDh+GRYtI/vBDLj98mGyXS17KzeV1pdRWu2O16KvSMqYHdgtDIuIVkSESHb2GqKiVJCffzmuv\nRTNjRjQ9epiFZK1Sq14d+vRB3n6b6GefpWbPntzl8fBrdLSsFJEhIhJV/F5Kh4gsEJHlIrJWRIbn\nv1zMckQkTUSmisg6EflCRC4QkcUiskVErrXWiRSR10XkFxFZKSKXltfnCnW67BNGRKQtHs9oAoH+\ntGgR4IYbzKt8h8Pu0GwVDmWfksjJgR9+gI8+Iv3XX3E4nXyUmcnzwNKyvFEsIlWVUket3t/Lga7A\nSqyyTxHLL1FKHRGRIHCVUuoLEZkPeIGeQEvgDaXU+SIyAWiulBo
uIk2BL4AmejA+Xfap9ESkCiID\n8HonULVqLMnJLnr2dFKrlt2haSHG5Tp2szjq0CH44gv6fvQR16alcVhEHgHeLaObxONFJNl6Xh9z\nfKfilv8EZCulvrBeXwtkKaWCIrIWs2c5wEXAcwBKqY0i8juQBKwrg89RoejkX0mJSGM8nkdwuW6k\nXbsAvXv7aNfOHM1S04pRowYMGIDRvz9RK1cS9cYbPLd5M09FRMjUvDxeUEqllMb7iEhXoBvQUSmV\nLSKLMQfSU8UsByjYszkIZAMopZSInCy36aZqFp38KxkRScDrnYTb3ZsbbnDwl79EUK2a3WFpFZQI\ntG8P7dsTtXkzvP02Dy5bxoNut7ySnc00pdSus3yLKsARK7E3Azrlv3UxywuuU2To1s8lwCDgGxFJ\nAhoAG88y5kpBXwZWEiLSRHy+Objd67jhhhuZO9fN8OE68WulpkkTmDgR7xtv4O3Zk5GRkWz2+WSu\niLQ6i91+BkSIyK/AP4DvrdfVSZb/UGDbU92HyF/2POAQkV+A94Aheiwkk77hW8GJSFO83sdQ6hr6\n9o2gTx8nUeXWUKNS0Dd8z0xaGnz4IYE5c8gBlmdkMEEptdLuuLSS0Vf+FZSINBOfbz4ez2r69k1m\n7lwPt9yiE79WbqKj4eabccyfj+e227g4Opr/RkXJQqu8ooU4nfwrGBFpLj7fR3g8P9O/fy/ef9/N\nkCE66Wu2cbng+uuROXPw9u/PVR4Pq71eeUNE6tkdm3ZyOvlXECJSVbzeV/F6VzBw4DXMm+fh5psd\n+Hx2h6ZpgDkE9U034Zw9G8+119I/MpItLpc8KiJeu2PT/kwn/xAnpoFERm7j0ksH8d57HgYNcuDV\n/5+00BQTA6NG4Zo1C0/HjvzN7WanYcjNIqLzTQjRTT1DmIgk4fW+QfXqrbj3Xl/B+f80LdTVqQOT\nJuFdtw7v00/z/B9/cI+IDFJKrbY7Nk1f+Y
ckEXGL2/04bvdqhgy5gFmzdOLXKqyWLeHVV4kaPZpz\nPR6+d7tlsjWKrGYjnfxDjIj0wOP5jbZtx/Pmmx769nWE+9g7WsVnGNCzJ/LWW3jOO4+xHg8bRaSj\n3XGFM538Q4SI1BOf7yOqV1/AQw/V4x//8Orxd7TKpkYNmDwZ7113Eefzsdjjken6hrA9dPK3mYiI\nOJ23Exm5ieuvv5p33vHSqVPxG2paBSVizkP8zjt4OnRgmNvNFj3UcvnTyd9GIlIVr3chdes+xYsv\n+hgxIgK3u/gNNa0SqFIFJk7E8+CD1I2J4ROvV2aKiJ5Mopzo5G8TEemI272B7t0v57XXfDRqZHdI\nmmaLLl3MbwFdutDf42GtiJxrd0zhQCf/ciYihrhc9+L1Lub++2szYUIkLpfdYWmaraKi4IEHcI8e\nTYPISJYbhtxod0yVnU7+5cgq83xFo0b38/rrHi66yO6QNC2kXHMNxrPP4qtalVkej/xLRCLsjqmy\n0sm/nIhIK9zuX7niii48/7yP2rXtDknTQlLTpjBrFt5zz2Wo18sPIlLX7pgqI538y4EYRj/c7mX8\n9a91GT8+EqfuWK1ppxITA9Om4e3Th9aRkfwqIhfbHVNlo5N/GRIRQzyeZ6lW7XWmT/fSo4eeQk7T\nSsgwYOhQIh59lGpeL5+7XPJXu2OqTHTyLyMi4sTjmUujRsOYOdNLYqLdIWlahdShA7z2Gp4aNXjM\n45GnRERfRJUCnfzLgIhE4vF8TNOmV/PPf/qIibE7JE2r0OrUgRdfxFu3Lrd7PMwSET3myVnSyb+U\niYgXr/cr2rS5hClTvLrTlqaVjipV4F//wte4MX28Xj4UEd1G+izo5F+KRCQGr/e/dOrUnkmTPLr9\nvqaVLq8Xnn4ab6tWdPd6+VpE9GxGZ0gn/1IiIjXweH7gsstacv/9bj0Sp6aVDZcLHn8cT5cutPd6\n+V5EqtsdU0Wkk38pE
JE6eDw/cd11ifztb5EY+rBqWllyOOC++3BffTXNPB6W674Ap09nqbMkInG4\n3Svp168BI0e60A0RNK1ciMDo0bj69qWBx8NSEalqd0wViU7+Z0FEGuJ2L+fWW2szZEiETvyaVr5E\nYMgQInr0INbr5QsR0S0sSkgn/zMkIlF4PF8xeHA1brxRF/g1zSYiMG4ckeefT0uvl/f1RPElow/S\nGRARA4/nfS68sAH9++uxGrRSd+AATJgAt9wCt94KH3xgvv7ttzB0KHTvDps2nXz7efPM7W691Xye\n7+WXYdgwmDz5+Gtffnl8/xWVYcBDD+GJi6Ob280M3RGseDr5n4nIyH/QoMHF3H23W5d6tLLgcMCo\nUTBrFsyYAR99BDt2QHw8TJoE55138m23bYNPP4UXX4RXXoFly2DPHsjIgM2b4bXXwOk018vJgc8/\nh+TkcvtoZcblgqlT8VavzmCXi3vtjifU6eR/msQwBuD1jmXyZJ9ux6+VlerVOTYiiMcDDRua3wYa\nNoT69UGpk2+7Ywece66ZDB0O80SxZIl5dRwImOtkZZkngDlzoHdvKk3L5KgoeOYZvF4v9zscMtju\neEKZTv6nQUQ6EBn5Kk8+6aVaNbvD0cLEvn2wZQs0b16y9ePj4ZdfIC3NTPI//gj795snkQ4d4Lbb\noGZN8Plgwwa48MKyjb+81apldgRzu3lRzw18crpeXUIiEktk5Kc88ICXhAS7w9HChN8PDz8MY8aY\nybskGjaEAQPgrrvMbRITOdb1pH9/8wEwbZp5/+A//4EVKyAhAW66qWw+R3mLj4dHHsHz4IN8ICJN\nlVIH7Y4p1Ogr/xIQES8ez1fcdFNMpbtM0kJWIGAm/iuu4LQnfbv6anjpJXjmGbMU0qDBics3bzZ/\n1q9v3kR++GHYvdt8VBYXXAC9ehHl9TJH3wD+M538iyEigtc7m44d4xg0SH9T0srNlCkQFwd9+hS9\n
/FR1/6NHzZ9//AFLl5qtgwqaOdNsCZSXd3w/hgHZ2Wcfdyi57TZctWvT0enkTrtjCTU6mRVH5GZq\n1OjGvfd6dMserbysXQtff22WL267zWzLPny42TrnuecgJQXuu88s6UyZAocOmWWcJ54wt3/4YUhN\nNW/qjh9v1vfzLV1qTpVY3RoRJyHBbP6ZkACNG5f/Zy1LEREwaRK+4cP5h4h8q5RaZXdMoULUqS4f\nwpyI1CIy8jeefTaapk3tDkcrI46Rw4Ijum01+va1OxKtrHz1Feqpp9idlcW5Sql0u+MJBbrscype\n7/Ncc41LJ35Nq9guvxy56CJqeDy8bHcsoUIn/5MQkStwuXoyfHik3bFomnb2JkzAExVFLxG5we5Y\nQoFO/kUQES9u95v8/e/eErev0zQtpHk8cN99+Kz2/2H/H1sn/6K43Y9xwQUxdOpkdySappWiNm2g\nTRu8ERHcbXcsdtPJvxAROQ+RkYwf77U7Fk3TSt/YsfgMg3tEJNbuWOykk38BIuLA632X0aPdx9rB\naZpWqdSrB8nJOLxenrE7Fjvp5F+Q0zmahg3j6NlTN+jXtEps8GBchsE1ItLR7ljsopO/RUQ8OByP\n8re/+XRnLk2r3LxeGD0at9fLq+E6+UtYfugiGcZwWrZ0HhtHV9O0Sq1HD+Scc2gE9LM7Fjvo5A+I\niAuX62FuvdVX/NqaplUGhgG3306Uz8fEcBz4TSd/AJGbSEyMLPGA6ZqmVQodOoDHQz0g7IbrDfvk\nLyIGbvdEbr01yu5YNE0rX4YBAwbg9fnCb9rHsE/+QHeqVatKmzZ2x6Fpmg2uugrJy6ObiDS0O5by\npJN/VNQ9DBigW/hoWpjyeuHqqzFcrvAa8z+sk7+INCIvrwvdu+vMr2lhrE8fXMAIEQmbnv1hnfyJ\njBxHz56GHrxN08JbbCy0bAkiDLI7lvIStslfRATDuJlrrnHZHYumafa78Uaif
L7wKf2EbfIHmhIR\n4SU+3u44NE0LAe3aQW4uiSJS1+5YykM4J/+r6NxZ9I1eTdPAnO+3Y0fygOvtjqU8hG/yj47uS5cu\nutivaWFOKTh8GNavh6pV8UVFMc7umMqD0+4A7CAiXpzOdrRta3comqaVA78f9u49/ti5k8D27bB3\nL8bhw4hhgNcbEaxSpWowJ+dwExHxKqUy7Y67LIVl8ge6Eh+fRVSUvtmraZVAXh7s328m9n37YNcu\n1PbtBHbvxjhwACMnB7xeh4qK8gVr1qxHfHyS4+qrm9O2bVu6dOlCbGwsmJUQo23btqmrVq26BPjM\n3k9VtsIz+bvdvbjkEj2cg6ZVEErB0aPHr9z37EFt305w1y744w+M1FTE7Ra8XnegWrWaqn79BEeb\nNuc6hww5j06dOtGqVSsMwxDAUdx7JScnR23cuLEnOvlXQobRi44dw/d+h6aFIL/fvGrfs+d4aWbH\nDrM0c+jQ8dJMTEyVYN26jYyEhCTH5Ze34oILLqBjx45ERUVBCZJ7cXr06GE8/fTT10Hlrv2HXfIX\nkcb4fNVISLA7FE0LK4HA8dLM3r2wezfq998J7Nljlmays/NLM16rNNPU0aNHM9q1a0eXLl2oX78+\nWKWZsoyzffv2ZGZm1heRKKVUelm+l53CLvkDl9CmTQBDX/hrWmkqXJrZu9cszezcebw0Exkp+HyR\nVmkm0XHeec2cN9/cms6dO9OyZUucTmeJSjNlyel0Ehsbm/n7778nAqvtjKUshV/ydziakJgYNuN3\naFppyi/NWHV3du0ySzN79vy5NFOnTpyRmNjU0a1by2OlmejoaLA5uZdEs2bN5Pfff09CJ/9KxOtt\nSb16+rJf04pQVGmmYKsZszRjKJ/PF6xZsy6NGiU5rrjCbDXTuXNnGjZsCOVQmilrrVu39n7xxRfN\n7I6jLIVf8ocm1A2L3tua9idKQUqKedVu3Vw91mpm374T
SzNVq5qtZlq1aua86abz6NixI61btw6J\n0kxZO/fccx1VqlSp1JN8hF/yz8mpT716dkehaWWmYGmmQKsZtXcvjoMHj5dmoqNjVJ06cZKY2NRx\n6aUt6NChAx07diQmJgYqeXIvTlJSEiJSqed1DavkLyJROJ0eqle3OxRNO2OBABw4cLzuXuDqXfJL\nMx6PoaKifMEaNeoSH5/kuPzyczn//PPp0qULcXFxUMHLMmUtKSmJjIyMhiIiSilldzxlIaySPxBP\n9eqZiMTYHYimnUx+aabgcATbtxPIbzWTknKsNBOsWrVmMDa2saNFi2aOgQPPo0OHDrRp0yYsSjNl\nqUaNGjgcDgOoBey3O56yEG7JP47atSvlWVyrWLKyjg9FYJVmgjt2ENyzB8ehQ4gIeL3OYHR0FVWn\nTpwkJCQ5unZtSfv27encuXN+aabC31gNVSJCw4YNszZs2JBACCR/EUlTSkWX5j7DLflHERWl/7No\nZa5gaaZwq5n9+zGyssxWM1FR3mCNGmarmW7dzjXySzONGjUCmxN7SkoKw4cPZ926dRiGweuvv07H\njh1PWGfcuHF8+umn+Hw+Zs2aRZs2bTh48CC9e/cmJSWFxx57jF69egGQnJzMiy++SJ06dez4OKfN\nOsH6yvt9RcShlAoUernUL1rDLfl78Xp18tfOmlKQmnq87r5vn1ma2bHjxNKM1xsZrFq1RrB+/QRH\n8+ZNnQMGmK1mKkJp5s4776Rnz568//775OXlkZl54iCXn376Kb/99hubN2/mxx9/ZOTIkSxbtoz3\n3nuPO+64gxtuuIGrr76aXr16sXDhQtq2bVthEj+Ax5ze1X2m24vIg8AgzG8Ou4AVwNfAi4AH+A24\nVSmVIiKLMfsUXAi8JyILgHcxTz7/LrTfJ4GrgCDwuFJqroh0BR4BDgItgRVKqZtPFV/4JX+PJ2T/\ns2mhJSvrxFYzu3YR3L4dtWcPcui
QeVXu9TqDMTExqnbthpKQ0NRx8cXHSzNVqlSBClqaSU1NZcmS\nJcyaNQswe71aV8LHfPTRRwwePBiAjh07kpKSwh9//EFERASZmZn4/X6cTieBQIBnn32Wjz/+uLw/\nxlnxeDzCGSZ/EWkP9AZaAZHAz5jJ/01gtFJqqYhMBB4GJlibRSilOljbfwTMUEq9IyKjCuz3L0Br\npVQrETkHWC4i31qL2wDNgX3AdyLSRSn1/cliDL/k7/WG22fWipMXYN06SE09sdWM33+8NFO9eh0a\nNUpyXHbZ8VYz8eYUoBUusZfEtm3bqFmzJkOHDmXNmjW0b9+eZ599Nv9qGIDdu3fToEGDY7/Hxsay\ne/duBg50fDEJAAAgAElEQVQcyMCBA3n55ZeZMmUKzz//PIMHD8btPuOLaFucTfLHvIL/SCmVC+SK\nyL+BKKCKUmqptc4bwNwC28wptP0N1vO3gMkFXn8PQCm1X0S+AS4A0oCflFJ7AURkNdAI0MnfEoE5\nrKumHRMICitXGixbJpKbG3AA1K1TR1111YWBFi1aOOLj4x2NGjUiLi6O+vXrExERYXfIZS4vL4+f\nf/6ZGTNm0L59e8aPH8/kyZOZOHFisdvGxMQcu8o/evQokydPZsGCBYwYMYKjR48yYcIEOnXqVNYf\n4axZLTyDpbS7kuSdjIJvz/E6/6m2Lbgsu8DzAMXk93BL/plkZQUI4TqrZoP7HzAYPpy/Q/BuMJYD\nK/ftk/UffOBcNH++2u/z5aU6HEZ6Xp7hz8qiatWq1I+NDSYkJgabNWvmaNy4scTFxdGoUSMaNGhA\nZGSk3Z/orNWvX58GDRrQvn17APr06cOUKVNOWCc2NpadO3ce+33Xrl35k6IcM2nSJO6//37effdd\nLr74Yvr06UPv3r357LPQHyo/NzdXAXlnuPl3wIsiMhmIAK4FXgKOiMiFSqnvgJuBb0+x/QDgHcz7\nBvmWACNE5E
2gBnAxcBdw7ukGGG7JPwO/Pw/QM3hpxyUkkFflnMBTKfsdVwHdrQcASgnp6cf+n2QC\nKw8dYuWhQ8a6X34xvhdRH3i9ealOp6QHAkam3y/R0dHUj40NNm7cONjs3HMdjRs3lvxvDnFxcSeU\nTkJV7dq1adCgAZs2bSIpKYmvv/6a5s1P7PDaq1cvZsyYQb9+/Vi2bBlVq1aldu3ax5Zv3ryZ3bt3\nc8kll7B69Wo8Hg9KKbKyssr745yRvLw8OMPkr5RaYZV61gB/AL8AKcAQ4CUR8QBbgaH5mxTaxXjg\nXRH5P+CjAvtdICKdrP0Ggbut8k/h5F9s6yCppJ3XiiQiN3Hxxc/z6KOl2l62VPXvDz4fGAY4nfDC\nC8eXzZ0LL74IH34IhW6+kZMDd95pzmcXCEDXrjBkiLns5Zfhxx+hSRO45x7ztS+/NJur/OUv5fO5\nQt38+TB9OueA2gRS5Qx3kwOsApYDvwKbQO3zeoNHIyLICAaN9MxM8fl81KtbN9i4ceNg02bNjMTE\nRCP/m0NcXFz+pCS2W7NmDcOHDyc3N5fGjRszc+ZMZs+ejYgwYsQIAMaMGcNnn32Gz+dj5syZtC0w\nL3b//v15/PHHSUhI4MCBAyQnJ5OamsqkSZNITk6262OVWPfu3VMWLVo0RCn1UfFr/5mI+JRSGVai\n/y9wm1IqZEYJDbfk35t27WYxbVro9vAdOBBeegmiC52fDhyAJ5+EnTvN5YWTP5jNU9xuM/mPHWs+\nGjaERx4xt502zUz2sbFw330wZQo4dAUMgGAQzxXXK08wyMVkBheAoyxuDuUB64CfgLXAZmC32513\nNDJS0oNBI93vl8jISOrVrRtsFB+vmjVrJomJiUb+iaFRo0b5rYi0MtaiRYuU9evXX2OVaE6biLyD\n2fomEpillJpaqgGepXAr+xziyJHQPtspBcEi7jHNmAEjR8L995982/zWFLm55glAxPwGEbD
6i2Rl\nmd8m5syB3r114i/IMPBf1Jak/6aoRaw13iCobinZTbrT4sRsj3fCcJFZWU6sUkgQ+F9eHj9t2WKs\n3bKFjV9+ybeRkYEjkZGkg5Hu94vT6aRunTrBRo0aBZOaNpWkpCRH/omhUaNGVKtWzewirJ2VHTt2\nRGK2xT8jSqlBxa9ln3BL/ts5cCC0m2qIwN13m0n72mvNx3ffQa1a0LjxqbcNBuH2281eR8nJ0Mwa\njrxDB7jtNmjXziwpbdgAN5+y/0d4GjVK1v93sIzhTsbwTy4CEss5BANoYT2Oyc52kG025AgCW3Nz\n+XHbNmPNtm3GpsWLWeZyBY643SoNjIzsbAOgTu3aKi4uLpjUtClJSUmO/BNDXFwctWrV0ieHYqSm\nppKVleXArNdXSuFW9nFiGFl89pmDUG2ud+gQ1Khhzod3991m6ebFF82SjdcLAwaYv5/qq39GBjz4\nIIwbB+YwAcdNm2aeGDZuhBUrICEBbrqpTD9SReIaODTQf29X+Z3f5CBL1WowQvRfykltB37EvCO4\nAdgeERE85PEE00WM9OxsIxAIcM4556i4hg2DTZKSaNas2QnfHGrXro0R5tOcrlmzhq5du+48evRo\nQ7tjKSthdeWvlMoTr/coBw7UCNkx/WvUMH9WrQoXXQRr1pjdTIcPN0tCBw6YV/cvvADVqhW9D58P\n2rSBn346Mflv3mz+rF/fvAk8dapZ99+927wPoJEz/GbHgknP8gHzuIne6j4ygk9WsI5ccdajb/4L\nubkGubnHPsM+4Mfdu2XV7t2ODT/8wAKnM3jQ4wmmGYaRnpNj5ObmUqtmTdWgQYNgkyZNaNqsmREf\nH3+sOWu9evVwVPKS4datW3E6nVvtjqMsFZv8y2I0uZO8T1cgRyn1Q5m+UUTELvbtC83kn5VlJniP\nx5yRY/lys8XO/PnH1xkwwEzchW8Ip6SYNfyoKMjOhpUrzXULmjkT7r
rLbBGU/43PMMgvKWhAt27k\nTX4u+GPuj8ZkphtjuJVrgEvtjqsU1QGutx4A5OUZpKUdOzkcBH7at09W7dvnWL98OZ86HOqAx5OX\n6nAYGbm5RlZ2NjWqV1cNGjQIJiQmqmbNmjni4+OlMnWE27p1K36//1e74yhLJbnyL6+60KVAOlDi\n5H+S0e9OLTd3Fdu2nUeBJmkh48gRs1wjYt6kvfxyuOCCE9cROZ64Dx0yyzhPPGE+nzzZrPsrBZdd\nBgV7US5dCk2bcmwim4QEGDbM/FncvYQw4+9xkTHnP3MC05nu6M+t9OF1NgHhMgVQTaCn9QAgEDih\nr0MqsPzAAVl54IBj/c8/s8gw1H6vt1J1hNu4cWNWZmbmBrvjKEvF1vxFJFUpFWM9P63R5ESkLfA0\n5sh0B4FblFJ/iMg44HYgF1gP3Assw2wJdwAYC1QDHsDsHXcIGKSUOiAiDwMJQGNg++neUReR2+ne\n/WkeeMB7OttpYSQ9Hdd1f+F1XieWWO7g1kA82/hPGTX/rGwyMUcw+xmzWetvImqf1xtIcTolIxAw\nMipAR7iLL744ZenSpYOUUv+xNZAyVOLkb40mN0IpdWX+aHJAB6AZ8CEFRpPD7G78E2bX5V5KqUMi\n0he4Uik1TER2A42UUrkiEqOUSrWSeppS6mnrfasopVKs58OAZkqpu631rgUuVErlnPYHFmlH7dqL\nmT07dDt6abZzDhsZuH5rSxnDGCOddAaRrKYS4PYyaP4ZborqCLfX4wmmuFykWyeHYx3hEhKCTZs2\nLdeOcEopatasmXn48OHzlFJbyuyNbHY6N3xPdzS5FMxvAl+K2a7MAPZY+1qD2XX5Q8wTR1EaiMhc\noC7m1f+2Asv+fSaJ3/ILhw65SE836+OaVoS8O4Y7Prn7IUYwgiiiuIdJMoH76Ip5taOdORfQ0XpY\nBL/fgd8PmF//16amsjw11Vi7caOx/pNP+NLjy
TvicklGoY5w8fHxx3pJl1ZHuN9++42srKwczqKN\nf0VwNq19ihtNToB1SqkLi9j2GuASoBdwv4i0LGKd6cA0pdR/rNLSwwWWZRSxfokopXIlJmYdv/7a\njkKzEmnaMe3bg8cb+Mb/jaMHPehMZ7rQXfXia9aChHbFumJzAudbj2P8fmf+ySG/I9zyLVuMNVu2\nGJvyO8K53aQrddYd4RYvXozL5fomIyOjUreDL0nyzz9Cpzua3Eagloh0UkotExEnkKSUWg80VEp9\nKyLfA/0wx7lOAwqOWRDD8W8KQ07nQxXL7/+CtWvb0LFj5W6vpp0Vf3IPx+z3Zgd70MMAuJf7ZBDL\nA3eTynN6ZFjbnG5HuI2LF/OjyxU45HardDAysrIMRIrsCBcXF8eCBQv8R48erVgzz5yBErf2Od3R\n5Kx6fh9guohUwfzP8oyIbALeFpEYzBPLs1bNfyEwT0R6Yd7wfcT6/TCwCLOUVDry8pawfPlohg8P\n3TF+NPvdcgt73ltgbGELiSRiYDCVfzlGMphrgR52x6cVycDsmZ1IgbGQc3Ic5ByvFG8HftqxQ1bv\n2OHYsGQJc6yOcGlg+PPy3Jx8qOVKI6x6+OYTES8REQd5910PNWvaHY4Wwow7/xq84pc66h7+fuxK\nfy5zmc0LbADOsTE2rfStBC6DPalKVfpejxWq52JpUUplEhGxgK++Kq1ZerRKKjj6DmMxixwZBW4z\n9aUvsSQF+kMw/C6dKreFEMiD+cWvWfGFZfIHIDPzJf797wzC8JuPdhqSkjCqVAt8wRcn/EN5kmcd\nq4jgudKb5k+zmQJmmn3r5xa7ciUQvskflnL0aBa/VerWXFopyOqf7JjDHFSBzu5u3DzAE8Z9YKy1\nMTat9KwEDpstCZcWt25lELbJXykVJC/vFT79VA9so51a376kGums5cQ03452XMrV6npQfptC00rP\na5CdAy+rMLkRGrbJH4Dc
3Fl8/nmQvDOdo1kLC4ZBVqc2zGXun8aR+ht3SQ7Vg3ea/Vu0CioHeBtU\nDsy0O5byEtbJXym1GZGtLF9udyhaiFNjRstP/OQ4wpETXjcwmMYMx7uIo9I3DK/EPgGc8D+l1LZi\nV64kwjr5A5CR8S8+/viMewxrYaJuXeScOoH/8J8/3eCtQx2GM45BwF4bQtPO3lRIPwr/tDuO8qST\nv1JzWb7cSVqa3ZFoIS5n6EDHB3wggSIqPMkk05gWwRuLnoFZC2ErgF/MIWpm2x1LeQr75K+UOkxE\nxIfMmZNrdyxaiLvqKrKdAfUTPxW5eApPG+txMU03/6xQJkJGljlEfVjlgLBP/gBkZv4f8+blceiQ\n3ZFoIc7fvYsxp4gbvwAuXExkmvEIGD+Xc1zamdkMfA0qAK/YHUt508kfUErtQOQVXnsty+5YtBA3\nciT/Y71jH/uKXNyKVlxFskoGVd43koYBtYHWBV6bCNQH2lqPz06y7WeYQ1UnAVMKvH4PcB5wS4HX\n3gGeK5WI7fcEZCmYrpRKtzuW8qaTf76srIksWhRgxw67I9FCWdWqBBvFBT7kw5OWdsZxpwi1gneU\nc/PPocDnRbw+AXNWrZ8xp+ErLAiMsbb9FXPSjg2Y0zWuwhzJMcJalgXMAkaXbui22AzMhmBWmN3o\nzaeTv0UpdZhg8HGef163/NFOKe/2Wx0L+djI5eQl4qd43rEAMT4ox7guwpz7tLDieiz9BDQB4jCT\nfH/gI8zkkP8JM61l0zCH3K0M41mPg4yAWes/YHcsdtDJv6Dc3GdYsyaLdevsjkQLZZ06oSJdgSUs\nOekqNanJKO6WocDO8ousSP8C2gDDMafXK2w30KDA7/Wt16KAqzEnVYnFnGDjJ8wZmCq6xcASyMgx\n5xgPSzr5F6CU8pOdfRfTp6frAd+0U/Ff190xm9mnbNVzNVfTjPODN0DQru6/o4CtwGqgDmYJ6HTc\njVn
6mQo8CDwKvIY5A9M/Si/MchUARkJGBoxTSoXtfT6d/AtT6i127TrA99/bHYkWyoYNYzs7jG2c\nukPoY0w2tuHmcZuaf9bi+FR8t2FOml5YLFDwTtcu67WCVlk/k4D3gTnAFirmJLdvgNpnhh4Wo3ee\njE7+hSilAmRmjmX69Axyw6rZr3Y63G7ymicFP+CDU17Uu3DxGP80poDxYzmEpTixxl+wTdJ8oKjJ\nsi/ATOTbMce4mc2fSzsPAZMw7wHkn8UMzHsBFckfwHjISoVh4TKA28no5F+0T0hLW8Yrr+QUv6oW\nroKjRxpf8ZXDz6nH9GxGM66jH71BlWU/8oFAF2AT0BBzhLL/w2z62QZzXsL8Zi17gWut5w7M+wI9\nMOfF7c+JE3N/hHmCqANUwWz62RqzS2yrMvs0pU8Bt0JmAGYopVbYHY/dwnIax5IQkZq43RuZOLE6\nHTrYHY4Woty9+gXuSBtk9KKXFLfurQwMtGcvcytHY5kK5z1QI2BHOjRVSoX9UO76yv8klFIHycrq\nw6RJfg4ftjscLURl3XitYw5zT5jo5WSeYobjMwzjneJbX2ql7A9gJGSlw4068Zt08j8FpdRicnOf\nY+LETD1cl1akAQM4LEf4H/8rdtVqVONO7pORIGEzbnAIUMAtkJlnlnv0+O0WnfyLk539AFu2bGL2\nbD3ji/ZnTifZF7Tifd4vUWvO7nSnNR2DvSGo/0GVj6cg8B38ngkP2B1LKNHJvxhKqTwyM5N5880s\n1q+3OxwtBKkxo+U7vnekFNmF6s8m8pixB696WI/+Web+CzwMGWnQU5d7TqSTfwkopbaTnT2EBx/M\nJD3sxn/SitOgAUbNWoFP+KREtXwnTv7Bs45nwAiLmcJtshdIBn8m9FVKbbc7nlCjk38JKaXm4/fP\nYepUv+79qxWWPbifYx7zCJbwYj6RRPowmBuAo2UbWljKBa6DDD9MU0oVNd5d2NPJ
/3T4/aNZsWIv\n8+bpybq1E11zDX5HrlrJyhJvMpShVKVBYDAE9OVE6VHAKMjeBCuy4BG74wlVOvmfBqWUH7+/G6+/\nfpRFi/T/V+04w8DftYPMPclELyczjX85vsVhzNTNP0vNY5A7G3akQS+llL6vchI6+Z8mpdR2srIu\nY+rUDFaW/CpPCwOjR8kv/OI4QMlHCI4hhrt4WMaBbC7D0MLFTFBT4Eg6XKqUSrU7nlCmk/8ZUEqt\nJTv7Gh58MJNNm+wORwsFBw7AY4+R41Tcxm18wJ9H8k8nnYd4iGEMYxSj+J3fAWhNa5zE0ApO2CoZ\nTjJfmFaUz4AxkJYBXZVSe+yOJ9Tp5H+GlFL/JSvrJv72N7+e/UvD4YBRo+ChB8kjjw/5kB2c+O/i\nbd4mkURe4zXu4R6mMx2Ar/ma0YwhBl9wvFX+WYg57WKd8v4cFdRyoA9kZppNOjfYHU9FoJP/WVDB\n4AIyM0cxdqyfXbvsDkezU/XqkJgIF19M0BUR9OGjcPlnO9s5n/MBaEhD9rGPoxzFiZMccniEqcYe\nkC+BZzEHZdOK9xPQDfwZMEAp9Z3d8VQUOvmfJRUIzCIjYxxjx2ayR3/T1MDf9QLjN7bSnOYnvJ5A\nAvmzf/2P/7Gf/RzgAN3pzlKWMp3pXEVPkoEbAHf5h17hLAO6gz8d+iml/m13PBWJTv6lQOXlvUp6\n+t2MGZPJPl2lDWt+P2zbBqg/XfkPZCBppDGCEXzIhySSiIGBDx9P8AQv8AJ3cAeCR82HwG1AX8wE\np/3Z98AVkJkOfZRSC+2Op6LRyb+UqNzc50lPv59RozL5/Xe7w9HsEAjAww/DlVeikpKC85l/QrNP\nL17+zt95mZe5l3s5ylHqUe+EXbzJmzzAQ/I9hpEL6g10Q/WiLAWuNBP/DUqpT+yOpyLSyb8UqZyc\nZ0hJGc2oUX5WhP1cEeFnyhSIi4M+fQiMGWl8zueOLI5PEZt
OOnmYw7l9zMecx3l48BxbvotdHOQg\nnehEd3rKeyDrgbCdZPYkPuZY4k/WvXfPnJ7MpQyIyCVERi7kjjuiuP56fYINB2vXwvjxEB8PIiCC\na8cfwUuzOxktacl1XMd61jOZyQhCIxpxN3cTRdSxXTzKowxjGLHEcpSj3MIt+EnhbeBG+z5ZSHkZ\nAn+F9Ey4UilVHjNjVlo6+ZcREUnE41nEVVedw+jRkTj05E1hZ+ZMGr75TfAN3jijC4AgQW7ihsAN\npPCvMJ/9KwjcDznT4XAGXKKU0n3izpK+Ki0jSqkt+P3n8fnnq/j73zPJrGhTXWtnbdAg9ssBYyMb\nz2hzA4MnmeGYhTg+K+XQKhI/0Bv8M2B9BrTWib906ORfhpRSR8jMvIT16+dx++0Z7N9vd0haeXK5\nyD6/RbCkE70UJZZYbmEUAzCnIgw324ELIGMxfJ4GnZVSJR87oxyJyJ0iUqFa5+rkX8aUUrn4/bew\nf/+jDB+eyQbd+TCcqDGjjCUscaSRdsb76EMfGtA00A+C4VSk/QxoBf4t8Gia2aonlO99jwe8dgdx\nOnTyLwdKKaWys6eSljaQ8eMz9YigYSQ+HqNajcDnfH5Wf/OpPONYQwTPhMHsXwHgQcj9CxxJg6uy\nlJqqzvDmpIgMFpE1IrJKRN4QkTgR+VpEVovIlyJS31pvpog8LyI/iMgWEekqIq+JyHoReb3A/q4Q\nke9FZIWIzBERn4iMBeoBi0Xk61I5COVA3/AtZyJyPm73x3TqVI0JEzxER9sdklbW5s+n1vTZag5z\nRJAz3s1KVvIQd/ED0Lr0ogspB4G/QOYqWJ8G1ymlzrjXpIg0B+ZjlouOiEg14A1grlLqbREZijns\nc28RmQlEKqUGikgv4C1ru/UisgK4Fdht7e8qpZRfRP4PcCmlHhORbUBbpdSRszoA5Uhf+ZczpdQq\nsrKS+PHHd7jppkyWL7c7JK2sJSeTbv
hZzeqz2k072tGNa1QvUP5SCi2UfAGcC5kr4GWrvn+23eW7\nAe/nJ2TrZ2fgPWv5W8CFBdbP7yW8FtinlMqftPtXoBHQCWgOfCciq4DBQMMC25/5md0GOvnbQCmV\noTIzbyM19Xoeeugg06Zl4a+M/501wJzo5aK2nO5EL0X5KxMkQPXgWLM6UimkAkMh6wY4eBCSM5T6\nq1Iqr4ze7lSljvwJ3oMFnuf/7sRM7l8opdoqpc5XSrVUSo0oozjLnE7+NlJKfUVWVhMWL/43N9+c\nydq1doeklZVRo2QlPzsOceisdmNgMI3nHbMRozKMYvY10AQy58G8DEhUSn1ZirtfBNwoItUBrJ/f\nAwOs5TeBNdLenxV1Fb8MuFBEEqz9eUWkibUsFYgprcDLg07+NlNKHVUZGf04dGgQd9+dwgsv5JCT\nY3dYWmmrXRupWy+wkIVnfcO2NrUZwXi5Gaio48imA7dBdi84tB/6pCl1s1IqpTTfwyrbPA58a5Vp\npgFjgaEishoYBNyZv3rhzQs/V0odBG4B3hORNZgnkqbWOq8An+kbvtoZEZFz8HrfpEqVi5g40UeT\nJsVvpFUcixYRPelZFjAfRyl02J3AuICbtbIUjIp0FfctMMAcm2dhGoxUSh21O6ZwVJH+zVR6Sqn9\nZGZezb59dzB2bDqvvpqn7wVUIt26kRchwR/4oVR2N5lpjg24mFpBmn+mAqMhuycc2Qv9UpXqrxO/\nfXTyDzFKKaWCwbfIzj6XBQsW0revn48/VgQqzf29sObvcZExhzml8sd04WIi04xJYKwsjR2WkWzg\nGQg2AP/bsCDTrO1/bHdc4U6XfUKciLTH53uB6OhzGTfOR6dO5qiRWsWUno7rur/wOq8TS2yp7PI5\nnlM/sYANIFHFr15ugsBsYAJkZMGKFBirlNKtGkKEvvIPcUqpFWRkdGDfvgFMmrSTMWMy2LTJ7rC0\nMxUVRbBxfOBDP
iy1Us04xomTc4IjQ6j555dAc8i4A9b/AdceVepSnfhDi77yr0BExIlh3EZExBN0\n7uxi5EgPtWvbHZZ2ulauxHPXg3zIh7hwlcouD3KQofRVr6Hoa2Nno5+BOyFjNaSkmy1pPjjToRm0\nsqWv/CsQpVSeCgReIDu7Ad9//yxDhvh58cUc0tPtDk07He3agccb+JZvS22XNanJaP5PhoHsKLW9\nltw2oA/4L4aUZfB/6dBIKTVPJ/7QpZN/BaSUSlPZ2feSnd2EhQs/oF8/P3PmBPWcARWHP7mH4z3e\nK9VWOldxFc1pF7wBguVV/zkAjIHsFpD5H5iWCfVzlXpeKZVbTiFoZ0iXfSoBEWmNz/c4gcDlJCc7\nuPHGCKpXtzss7VRycoi88nr+xXQSSSy13eaSywB6BceQpR4pw9m/fgdmQO4LkCfwTjo8oJQKxykH\nKiyd/CsREWmMx3MvgcAgLrsMBg700LBh8RtqtjDu/Gvwil/qqHv4e6km6Q1sYAJ3sAhzJLLSojCH\nY5gGGd+COGBWBjyllNpaim+jlROd/CshEalJRMSdiNxJy5ZC//5RtG+vm4iGmk2bcN0+lvnMx4ev\nVHf9Ei/xDbPVRpCzHXAmFXgD1DTIOAoH02CygneUUvpmUwWmk38lJiJeRAbi8dyLz3cO/fv7uPJK\nwVe6iUY7c+7k/oERKf2M3vQu9TPzMAYF2rKH98+w/LMBeAay3wIVAYtTYArwX30Tt3LQyT8MiIgA\nF+Hz3UNeXjd69BCSkyNp3Nju0LTZs6nz0kfqXd49q4leinKUowzmL2oGQW4uYfPPAPAxMBXSVoFS\n8HwWzFBK7SrV4DTb6eQfZkSkPi7XGAxjOFWruujZ00u3bg5iS6e3qXaagkE8V/RSU4JPSCtalfru\nF7GIp5nEL8CpTvUHgFch8E/IzoVtR+EJYJ5SKvsUm2kVmE7+YUpEDKALHs8QgsF+1Kmj6Nkzms
v+\nv727j63qruM4/v7e9t72thcEeWhXJxQoK51s0I4ZQBJgBAIsY3H+gc656dQsaqKJM9E5Ypxb4syW\nsERjsv0zlyySTYw64gQSkESGYwwmskEWIgUEW2mVhz7c9j6cr3+c03E3B+OhpaXn80p+yX0893fv\nH597zu9xqTFp0nBXL1bs0XW+cBfBEzwxJKNz1vFIcJbX2QeJZMnj/wF+D/wKuvZAqgL+cA6ecvc3\nh6IeMrIo/CWcOQxLqap6kEJhDfX1BVavHsvixTBu3HBXb/RrayN57wO8xEuMZ/ygH75AgXu5O3iQ\nXr4PiYHA3w2pNGw/A88Dr7p7z6B/uIxYCn95HzOrAFZSXf1VcrnlNDXlWbVqDIsWQWYkLRs2uqTW\n3l/80qkVdh/3DfrEyw462MhGXuFlHPrTsCMK/D9qxE58KfzlgsysGriLTObr9PcvoqGhj4ULM7S0\nJGhshLIhm0MUP5s3M+5nz/pGNtrVbvTiOK20spOdxW1s62mjrTxFaksPPZsI2/G7BqfScj1T+Msl\nMbOxwGIqKlZSXr6afL6O2bP7WLBgDC0tRn39dbaf1MiTXn538KPCI4n5VzA1q5129rGP3ezu2cve\nRPixzT0AAAWASURBVEDQ5fhv++j7DbBTyy3IByn85YqY2WTCfoI7gRXAx2huLjB/fobmZqir06Sy\ny/Xkk8zd8u/ietZf9NTfcdpo4wAH2Me+7B72FHvp9STJHd10vwJs16xb+SgKfxkUZjYVuINMZg35\n/BLS6STz5iWYOzfNjBlQXw+VlcNdzZHtzBlSn13LC7xALbXvPZwjRyutHOQge9nbvZ/9iTz5XIrU\nri66/gTsAN7R5Cu5HAp/GXTRpLJZwDIymSVAM9nsJxk/vo+ZM2HWrAwNDcb06VBToyuEEuUPfK24\n9Ph0a6QxcZCDvYc4VDjFqao06RMBwV976d0K/AU4orCXq6Hwl2vCzJJAI
3AryeRtpNMLyOWaCIIq\npkzJ0tRUyU03hbOOp02DdHq4qzy0slk4ehRaW+HIkTzvvtvLsWNJenvLq4J0p3txa5bsLuAt4G13\n7xvmGssoo/CXYWVmk4BbgDlUV8/HrIVsdirpdJ6JE/PU1SW48cY0tbXl1NSEVwoTJ8KYMSOzg9kd\nenqgoyMsnZ3Q0eG0t/fR1pbj1Cnj9OkU+XwZ6fRxYD/d3W8A7wBvA8fdfVDX+Rf5MAp/GXGiSWc3\nAFOBKcAUqqoaKS+fSbE4hXx+AoVCJdXVfYwbl2fCBJg8OcnkyWkyGSOVglQKKirOl4vdT0VbKebz\n0N8PfX2Qy/3/7Q8r3d0B7e1Z2tsLdHQkOHu2EveAiopOysr+RRAcI5s9TLF4HDgJnIhK57VutjGz\n7wDPjoSrCDNbDHzP3e8a7rrElcJfrkvRZLQaoPa9YlZHKvVxysoyJBIZEolqoCoqlbinca8kCCoI\nggqKxRTFYpIgKAcgkShSVpajrCxHItFPItGPWRazLJAFenHvxr2HYrGbQqGbfP405wP9JHDC3c9d\n+1/ko5lZK3Cbu/93BNRlMfCwu68Z7rrEVflwV0DkSkQLjh2PylWJ1jkyLxav1e6HQ87MqoCXgU8Q\nLum8EagD/mxmne6+zMx+CcwD0oSTvx6L3tsKbABWAXngIcKF3mYQrv3zXBTePwG6gAbC4aXfjN6/\nHHgMSAH/AL7i7r1mthJYD/QAr32grj8HPgUkgR+7+6Yh+3EE0B6+Irh74O6jJvgjK4GT7t7s7rcC\nzxBemSxx92XRa37o7p8G5gBLzGx2yfuPunszsJNwKYh7gAWEgT/gduBbQBPQYGb3mNkEYB2wzN3n\nAXuB70ZXas8Bd0aP15Yc51Fgm7vPB+4AnjazUd7jP/wU/iKj0wFguZn91MwWRU1RxvvX9f+8me0l\nHFF0c1QGbCo5zm5373X3TqAvmu0N8Ia7H4v6LjYA
iwh3jrwZeM3M3gLuJ+y7mUU4PHVg8tmLJZ+1\nAvhB9PodhFcM2n90iKnZR2QUcvfDZtYCrAYeN7PthNvwAmBm9cDDhH0A58zseaB0Ft7AOv5Bye2B\n+xfKDSf8c9nq7l8sfcLM5nDhDWUM+Jy7H76EryaDRGf+IqOQmd0AZN3918DTQAth+/zAWftYoBvo\nMrMawvb9Szp0ye3bzWxq1GeylrCJ6HXgM2Y2I6pHlZnNJNwVcqqZTYve+4WS42wBvl1S97mX/k3l\nSunMX2R0ugV4yswCIAd8g7DNfrOZnYw6fP8GHAL+SRjcAy42BLD0uTeBX3C+w/d3AGb2ZWBD1M7v\nwLroSuQh4FUz6yGcpTywRvjjwDNm9nfCP5dWQKOAhpiGeorIZdNQzeufmn1ERGJIZ/4iIjGkM38R\nkRhS+IuIxJDCX0QkhhT+IiIxpPAXEYkhhb+ISAwp/EVEYkjhLyISQwp/EZEYUviLiMSQwl9EJIYU\n/iIiMaTwFxGJIYW/iEgMKfxFRGJI4S8iEkMKfxGRGFL4i4jEkMJfRCSGFP4iIjH0P6TMyHgAADaY\nAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x946fba8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "slices= [ls5_cn,stampede_cn,comet_cn,gordon_cn,alamo_cn]\n",
+ "cols = ['c','m','r','w','y']\n",
+ "Hosts= [\"lonestar\",\"stampede\",\"comet\",\"gordon\" , \"alamo\"]\n",
+ "plt.pie(slices,\n",
+ " labels= Hosts,\n",
+ " colors=cols,\n",
+ " startangle=90,\n",
+ " shadow= False,\n",
+ " autopct='%1.1f%%')\n",
+ "\n",
+ "plt.title('Percentage Use by Resources')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Percentage failed by resources"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "ls5_fn = sum([1 for x, row in df.iterrows() if row[3] == 'ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf' and row[9] == 'FAILED'])\n",
+ "stampede_fn = sum([1 for x, row in df.iterrows() if row[3] == 'stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12' and row[9] == 'FAILED'])\n",
+ "comet_fn = sum([1 for x, row in df.iterrows() if row[3] == 'comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b' and row[9] == 'FAILED'])\n",
+ "gordon_fn= sum([1 for x, row in df.iterrows() if row[3] == 'gordon.sdsc.edu_f9363997-4614-477f-847e-79d262ee8ef7' and row[9] == 'FAILED'])\n",
+ "#jureca_fn = sum([1 for x, row in df.iterrows() if row[3] == 'Jureca_32098185-4396-4c11-afb7-26e991a03476' and row[9] == 'FAILED'])\n",
+ "alamo_fn = sum([1 for x, row in df.iterrows() if row[3] == 'alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29' and row[9] == 'FAILED'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD8CAYAAABq6S8VAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8E1X3h5+TtE2brmyCguyCgvgCAj8EFcUV911EXzZB\nEUFxhdcNFVFEfV1Q9AUVBQURBRdQwRXFhUVkB2WVXZG9TZvQ5Pz+mKmE2pYCaadJ7sMnn0xm7r1z\nZhq+c3PuueeKqmIwGAyG6MXltAEGg8FgODKMkBsMBkOUY4TcYDAYohwj5AaDwRDlGCE3GAyGKMcI\nucFgMEQ5RsgNjiMiR4nItyKyW0SeKkX5vSJS194eIyKPlrWN9rm6ich35XEug+FQMEJeDojIOhHx\nicgeEdlii4/XabvCEZG1ItLRodPfBPypqpmqes/BCqtquqquK3uzij59JBoRkW9EJNf+TvwpIu+L\nSPVItG2IP4yQlw8KXKiqGUBLoBXwwKE2IiLuSBtWQagDLCvvk4qIk99/Bfra34mGQBrwtIP2HEAM\nf9diEiPk5YcAqOoW4FPgRAARyRCRV0Vks4hsEJEhIiL2sW4iMktE/isifwGD7f29RWSZ3ZtbIiLN\n7f1Hi8h7dg9vtYj0//vkIoNFZKKIvGnXWywiLe1jY4HawMf2sbvt/e/avyB22j3IJmHtVRaRj213\nyGzb7u/Cjh8vIjNEZLuILBeRq4u8KSJjgG7AQPvcHUWktYj8YJ93k4iMEJGEsDohEalfRFv/cH2E\nl7V/CY0UkWkishc4Q0SSRORpEfndvtaRIuIp4e/osu3ZZf8NOtptXyUi8wqd+04RmVJCWwXfiT3A\nB0DzsLoiIoNEZJWIbBORd0Qkyz7mEZFxIvKXfY9mi0g1+9jRIvKhfd9/E5Fe4fc63A0lIh1EZEPY\n57Uicq+ILASyRcQlIrXsXwt/2na8EFa+p30PtovIp
yJSO+zYsyLyh/39WBj+3TFEHiPk5YyIHAtc\nAMy3d70JBID6QAvgHKBXWJX/A1YBRwFDbUF8CLjB7s1dAmy3xf9j4BfgaOAs4HYROSesrYuB8UCm\nXfYlAFXtCqwHLlLVDFUt6Bl+AjSwzz0feDusrZHAXvtYdywxVvsavcAM4C2gKtAZeElEji98P1S1\nh93uk/a5vwKCwACgMnAK0BHoG17tn3e22GOFP18HDFHVdOB74EmsHvFJ9ntNrPtbHP8HrASqAA8D\nk22B/QioKyKNw8regPX3LRERqQJcYbdbwG1Yf9vTgGOAnVj3HKx7nWHbWhnoA+TaxyZi/S1rAFcD\nj4vIGSWcvvD96Qx0ArLsz1OBtVgP+prAO7bNlwKDgMuAasB3wAT72LnAqUBDVc0ErgG2H+w+GI4A\nVTWvMn5h/UfYA+ywt0cAHiwRzAM8YWU7A1/Z292AdYXa+gzoX8Q52hRRdhDwmr09GJgRduwEIKeQ\njR1LuIYsIASkY3UAAlj/UQuODwG+tbevAWYWqv8K8GAxbY8BHi3h3LcD74d9DgH1C9e179e3heoW\nLvtGoePZQL2wz6cAa4qxoxuwsdC+2cD19vZIrIcEQFMs8Uospq2v7XPvtG2cD9QKO74MODPs89H2\nPXcBPYBZQLNCbdYC9gHesH2PA68XdZ+BDsD6Qt+BbmGf2wJ/AK4i7P8E6BH22QXkAMcCZwIrsB56\n4vT/v3h4/f1z1VDmXKqqX4fvEJE6QCKwRWxviv1aH1ZsAwdyLLC6iPbrADVFZEdB81j/ub4NK7M1\nbNsHJIuIS1VDhRsTy3/8OHAVVq9a7VdVwAu4gY3F2FkHaFvIFjcwrgi7/4GIHAf8F2ssIQVIAH4u\nTd1SEO5KqIZ1LT/b9x+seyZF1CtgU6HPv2P1mMHqfY8HHsTqjb+rqvtKaOs2VX1dRJpi9Xxrsf+e\n1gGmiEjB30awRLo61n2sBbwj
IplYv3zut+3Yoaq+QvadXIINhQn/mx4L/F7U98O273kReSbMPgVq\nqurXIvIi1i++2iIyGbhbVbMPwQ7DIWBcK+VHUeKwAatHXkVVK6tqJVXNUtWTwsoU/um7AcvdUVRb\na+x2CtrKVNWLS2lf4fN0wXLFdFTVLKAu+x8024B8LDEp4NhCtnxTyJYMVb21lLa8DCwHGtjnvp+S\nxbWAHCxhBkBEahRRJvw6/8J6oDUNszVLLXdAcdQs9Lk2sBlAVWcDARE5Dev+lerBpapLgaHsd52A\n9TDvVOgepqrqFlXNV9UhqtoUaIf1d+pq21FZRFIL2Vfw8Dng/mD18v9hTtj2BiwhLkon1gM3F7Iv\nTVV/sq/pRVVtBTQBGgMHjUYyHD5GyB1EVbdi+ZKfFZF0e4CrvoicXkK1V4G7Zf9AZQPb7z4H2GsP\nViWLiFtEmopIqxLaChfHrVh++gLSAT+w0xaGJ7D/k9s9tMnAwyKSYvu+u4bVnQo0EpEbRCRBRBJF\npFVRPvJiSAf2qKrPrnNLKestBJqKyEn2gOVgSvCnq6oCo4HnwgYLa9o+3uKoLiL97eu6Gjgey81Q\nwDjgRSCgqj+U0m6wevPVRaTgwfs/LP92bduuaiJyib19hoicaAtsNlZPPaiqG4EfgCfsAdGTgBvZ\n/0BZAFwgIpXsh9ztB7FpDrAFGCYiXrvNdmH23VcwiCkimSJylb3dSkTaiDVAnYvVWSmqV2+IEEbI\ny4eSBue6AklYPtEdwCSsgaqiG1J9D6v3Nl5E9gBTgMq2uF6EFfmwFvgTS6QySmnXMOBBEdkhIndi\nCct6rN7cEiyBCKc/lt98C/tdCn7bxmzgXCx//2b7Ncy+zoPZAXA3cL19ff/DHmAroTz2eVcCjwJf\nAr9hDcAdjIFYg8k/icgurAdroxLK/wQch9WbHwJcqao7w46Pw4pIOlhv/IBrsF0wz2O5ZbC3PwRm\niMhurPv
fxj5WA3gP2A0sxfK3v2Ufuw6oh3XP38calyhw6Y0DFgHrsMZaSryv9nfqYvt612P10K+x\nj32A9Td9x75vi4Dz7aoZWN+9gjGhv4CDTvQyHD5idUoMhiNDRIYB1dWKQolbRCQZa4CwpaoWNZZh\nMEQc0yM3HBYi0lhEmtnbbbB+wk921qoKQV9grhFxQ3liolYMh0s6MEFEjsbqgT6lqh87bJOjiMha\ne/MyRw0xxB3GtWIwGAxRjnGtGAwGQ5RjhNxgMBiiHCPkBoPBEOUYITcYDIYoxwi5wWAwRDlGyA0G\ngyHKMUJuMBgMUY4RcoPBYIhyjJAbDAZDlGOE3GAwGKIcI+QGg8EQ5RghNxgMhijHCLnBYDBEOUbI\nDQaDIcoxQm4wGAxRjhFygyGKEZG1IlLZaTsMzmKE3GCIbszKMAYj5AZDtCAiU0RkrogsFpFeBbsP\nchwR2Ssiw0VkiYjMEJHWIvK1iKwSkYvsMh4ReV1EFonIzyJyRvleneFIMEu9GQxRgohkqeouEUkG\n5gIdgJ+Bk1V1RxHHT1fVnSISAs5X1RkiMhnwAhcAJwJvqmoLEbkTaKKqvUSkMTADOE5VA05cq+HQ\nMD1ygyF6GCAiC4CfgFrAcaU87lfVGfb2YmCmqobs7Tr2/lOBtwBU9VdgHdCojK7DEGESnDbAYDAc\nHBHpAHQE/k9V/SLyNZCM7SMv4TjAvrCmQoAfQFVVRIrTAClmv6ECYnrkBkN0kAnstEX6eKCtvV8O\ncjy8TFEUHPsOuB5ARBoBxwK/Rsp4Q9lieuSGqEFEBEgFqgLVwl5VgRTAjUgCLlfi3y+RBEL5NVLc\n+XnAnlCIIJCvSjAYJBAMshvYU+hVeJ9fnR9M+gzoIyJLsQT2B3u/FnP8x7C6JdlecGwk8LKILMLq\nwXdT1X3FVzNUJMxgp8FRRMSN5ac9hnBxTk4+hsTEmojUIBSqRjCYRSCQgYiSmhogIyOf
rCyoXNlN\nlSpJpKQk4Ha7cLnA7d7/crlIendc6JQme1wnngihEKha78Eg5OQQ3LOHQHY2wb17CebkQE4O5Obi\nzs3FHQiQpAqJieQmJvKny8Wm/HzW+Hz8BmwENtjvG1U117EbaYhrTI/cUC7YvtgGQBNEmpKW1hrV\nE3G7jyUtLUDVqvlkZQlVqiRQpYqHrCw3WVmQlQWZmdYrKwuSkwESD+nkn0wJtWixx3XppUUedWP1\n5oslEIDsbNL++ou0bduo/+efnPbnnwQ3byZ361aC27bh3rOHFI9H8pKS+NPl4vfcXObt28dCYCmw\nwoi8oSwxQm6IKCLiwYqWaILL1YTU1DaoNsXtPobMzDzq1AnRqJGXevUSqFsXateGlJRDE+ZyJikJ\nKle2Xo32x3G4gbSCD6qwaxep27ZRb8sW6q1bx+m//UbOmjXotm14U1Plr4QElvl8zM7PZzGWwP+q\nqv7yvyJDrGGE3HDY2L3skxE5k7S0swiFmuB2H0WlSrnUq6c0apRK3bpu6taFY48FjyftYG1GKyJQ\nqZL1atQIOnTABaQD5OfDxo3UWLeOGmvXcsavv5KzZg3s2EFKWppsUmWWz8fXWGGDy+3QQIOh1Bgh\nN5QaW7ibI9KRtLRLSEw8mapVA7Rpk8xJJyVRrx7UrAlJSelO21qRSEiAunWt1xln7Bf4QADWrqXO\nsmXUWbiQy5YsQffsISEzUxbl5PBZMMhM4CdV9Tlpv6HiY4TcUCz2QOS/gDNJT7+ExMTWVK6cT5s2\nSZx8sofmzSEzM/lg7RiKJikJGje2XpdfTirA7t2wdCltFi6kxdy5DNiwgZSMDFnp9/NZIMA0YJaZ\nbWkojIlaMfyNiLiAk7CE+2Ly8tpSqVI+bdokcvLJyfzrX5bvIMpI6nl9ft9LNycUM9hZocnLg+XL\nYcECgjNnkrN5M0keDzOzs5kIfKqqW5220eA8pkce54hICtCJ1NT
uJCV1JDMzRKtWibRqlUzz5tYI\nn8ExkpOhRQto0QJ3jx5k7NwJs2dz3rff0n7+fBLT0+V3v59J+/bxETAvFv3rIrJXVY27rgSMkMch\nIuKlQLwTE8+mYcMA55+fQbt2ULWq0+YZSqBSJTj/fDj/fNLy82HJEhr98AP3fvstt+3aBWlp8llO\nDm8CM6JxQo+IuFU1WGi3cRscBCPkcYIdFnghqak9SUw8i0aNApx3XganngqVKhk/dxSSkADNm0Pz\n5iT27Uvili3w449cNW0a52/aBCkpMj4vj9eBueU9M1VEHsSa8v8n1oSpecCXwCtYcfurgZ6qutvO\nC7MAaA9MEJEpwHisWbwfFWr3KeB8rJwxQ1X1XTvPzMPAX1gZHeep6r/L/CIrEEbIYxh7SntbUlJu\nIinpaurXD3HhhemceipkZRnxjjGOPhquuAK54grSN22Czz/nxqlTuSE3l92JiTI6P5+xqrqmrO0Q\nkVbA5UAzwAPMxxLyscCtqjpLRB4BBgN32tUSVbWNXf9D4CVVfVtE+oa1eyVwkqo2E5GjgLkiMtM+\n3BxoAmwFvheRdqpakMYg5jFCHoOISH0SErqRktKbtLR0Lr44hXPOcVOjhtOmGcqJmjWhe3cSunUj\nYflyUj/7jEFffMHA9HRZmZPDSFUmqer2Mjp9e+BD27WzT0Q+wpo8lamqs+wybwLvhtWZWKj+Ffb2\nOGBY2P4JAKr6p4h8A7QG9gJzVHULgJ3Kty7789HEPEbIYwQ74uRC0tIeIiXlRM4+W7jgAg+NG1uz\nVQxxiQg0aQJNmuC57TaYO5dmU6fy9Lx5PJeaKh/6fDyhqgvK2oxSlMkJ21b2+8VLk7kR7NS8NkHi\nTNtMGtsoR0Q84nL1xOtdR+3a4xkwoBUffpjMnXd6OP54I+KGv0lIgFNOgaFDSX33XTzXXceV6el8\nn54uP4vI5fa8gUjwPXCxvXxcGnARkA3sFJ
H2dpl/AzNLqH+dvX192P7vgGtFxCUi1YDTgDkRsjmq\niaunViwhIlkkJNxCcvK9NGqUQNeuabRsaYTbUCoyM+GGG3B37oz3229p+dZbjN2yBZ/bLcNDIV5V\n1d2H27aqzrPdKQuBP4BFWKmBuwH/s0Ne1wA9CqoUamIAMF5E7gU+DGt3ioi0tdsNAffYLpYTCptw\nuLZHK2ZCUJQhIrXweO5GtTennAI33OClYUOnzarQRPOEoPJk2TKYMAHfnDmI28243FyeVtWVh9OW\niKSqao4t2t8CvcvBhRO3mB55lCAiJ+L1PojHcwkXXihcc42H6tWdNssQQzRpAkOG4N22DaZMoccH\nH/DvtDT5KieHgaq69BCbGyUiTbCiVt4wIl62mB55BcYOH+xAWtojqLamc+ckLr3UTbqZ5HYomB75\n4ZGbC1OmEHz7bQIifGEL+nKn7TL8E9Mjr6CIyJmkpr6I11uHrl29nHuukJTktFmGOCIlBbp0wX35\n5aRMnswFY8dyYYpb5uSFuEFVVzttn2E/RsgrGCJSH6/3JSpVOp3+/b106AAuE1xkcI7kZPD7cYkg\nF4RoNR0Wp4uMz4YHTNKuioFRiAqCiKRJcvJwPJ4lXHvt2UyY4OXMM42IGxwlEIBHHkHfm4R84of3\nIWEdpPSEG1JgjVfkERExs4QdxqiEw4iIS1yurng862nXrh/jxqXQtWsCHo/TphninD17oH9/mP8T\nrMiDjvb+qsDz4FkGKWfA3WmwVkQudNDUuMe4VhxERNri9b5K9ep1uPvuNJo0cdokgwGATZtgwABI\n2oX+lY8UNTpTF/gEvNPB2wvezRT5aY8VZljm+VwMB2J65A4gItUlNXUS6elfcvvtTXj1VSPihgrD\n4sVw003QYDu6qRgRD+c8YBV4B8LpXljiFRlqx48bygkj5OWIiIi4XF3weFZy0UWXMHGiFY1i/OCG\nCsKMGeg998C1PvhJS
5UjBbCCxe+DhBWQcg4MSIV1InJ2GZpqCMO4VsoJETkar/dNMjPbMXhwKo0b\nO22SwfA3qvD66+ikScgwvzVH/nA4FvjQdrdcDx+mi7yVDXeYBaTLFtMVLGPsXvgNeDy/cdllZ/DG\nG0bEDRWKQAAefhh9/z0rMuVwRTyc84CV4O0E/06DX0Xk/yLQrKEYTI+8DBGRqni9E8jKOoWHHjIC\nbqhw7N4N99wDW9fDCj/UjmDblYB3IWUS1OoFX3tFRuTCg6oaiOBpDJgeeZkhIu1JTl7BBRecbnrh\nhorIxo3Qqxf41qJ/+ZFIing4VwO/Qkp76JcOS0SkaRmdKm4xQh5hRMQlSUn34fV+zkMPVeHWW5NI\nTHTaLIPhABYtgptvhobb0Y2liEw5UmoAM8D7X2johTkukesOWslQaoyQRxDblfIVdevex5gxKZxy\nitMmGQz/YPp09N574Tof/HgIkSlHigC9QH4Abw14NV3kJRExvZwIYIQ8QojI/5GcvIKLLjqFkSNT\nOeoop00yGA5AFV59FX32WeQpP7zqkB3/ApaAtxV0T4cfRcTkYz5CjJBHAHG5riE5+SseeKAKt9yS\nRIIZQzZULAoiUya/j3zmh/4O21MZ+AK8/eEkLyyzV/4xHCZGyI8AERHxeB4mM3MMI0Z4ad/+4JUM\nhnJm927o1w9+sXOmnOG0QTZuYCgkvgOV0+Arj0hvp22KVkzX8TAREQ8pKeOoXv0Cnn7aS5UqTptk\niBDDh8NPP0GlSvDaa9a+vXvh0Ufhjz+genUYPBjS0v5Zt3NnSE21klYmJMDLL1v7R42C2bPhuONg\n0CBr3+efW4mprryy7K5lwwa44w5I3l18zhSnuRj4GVI6wHNekVq58LCaFW8OCdMjPwxEpApe7480\nb34RL7+cakQ8tujUyRLzcMaPh5YtYexY6338+KLrulzw3HMwevR+Ec/JgZUrrYdCQgKsXWu5OqZP\n
h8suK7vrWLgQ+vSBRjvKJzLlSGgEzAfvsXBXqrVMnNtpm6IJI+SHiIgcQ0rKPC68sCmPPZZCsknF\nHGs0a/bP3vb338N551nb550Hs2YVXVcVQqED97lcEAxa23l5lphPnAiXXw7uMpKrzz5DBw6ELj74\noRwjU46Eo4E5kHoidEmHD0TE5HIuJUbIDwERqUdy8s906VKLvn2TTLKr+GHXLqhc2dquXNn6XBQi\n1kzJPn1g6lRrX0oKtGkDvXtD1aqW62XFCspkSEUVRo9Gn38OedoPoyN/ijIlE/gGvB3grHT4RkQy\nnLYpGjA+8lIiIo1ITv6Bm26qxOWXGwWPc6SYPu6IEVCliiX0d98NdepYPfzOna0XwNNPQ48eMG0a\nzJsHDRrADTccuU2BADz2GDpvLvKpv+IMah4qycAHkHIztJgIc0SknarucNquiowRpFIgIsfj8fxI\n//5GxOOUSpVghy0lO3ZAVlbR5QqGS7Ky4LTTYHmhNedXrrTea9WCmTOtQdNNm6zXkVAQmbJwNqys\nQJEph4sbGA2eG6FeOnxreuYlY0TpIIhIAzyeHxgwoBIXXGDuVxwRHjfRrp01OAnWe1Fukbw8yM21\ntnNzYe5cqFfvwDJjxkDPnpCfv799lwv8/sO3c8MGuPFGyF2LbgsgNQ+/qQqFAM9C0jXQIB2+FBGv\n0zZVVIwwlYCI1CA5eRa33JLJ+edHxYCR4cgZMsTq3W7cCNdeC59+Cl26WG6Qrl1h/nzrM8D27fCf\n/1jbO3daa1z27g233mqJf+vW+9udNQsaN7Z87Glplkvlxhth3z6oX//wbF2wwMqZ0ngHuqGCR6Yc\nDgKMguRO0DQdPjUDoEUjJlyzaEQkk5SUOVx9dT169DD5IKKYpJ7X5/e9dHPCpZc6bUlk+ewz9Lnn\nkK5+GOW0MWVMPnAp5H4HM/fCxaqa77RNFQnTIy8CEUnG653B2WfXpnt3I+KGM
mPOHKuX/+9/w4QJ\nRZd54QVrMLRXL1i1ynLJjBiBDh+OVPHDRWFlLwO2lofh5UwCMBlSTobT02CCSHHDzfGJiVophIi4\nSUmZTIsWzbj99uRiwxMMhiMkFILnn4dnnrHCEvv0sXzvtcMSg8+eDZs3w1tvwbJldtkq6OzZyP0K\n9wOdgEuAj4GWWCljYxEPMA28baHTKngQeNRpmyoKpkdeGI/nCerW7cBDD6WU2WwNgwErlrxWLahR\nw5ok1LGjNfEonO+/h3PPtbaPOQZWr4YFc+HRfKgD5GL1xoLA88C95XoF5Y8X+AxSU2CgiFzstD0V\nBSPkYYjI5SQn38rQoV6SYm3YyFDR2LYNqlXb/7laNWtfOH/9BUcdBevXWwOjrnz4IoD0BT7AWhvz\nPmAk0BUrBjvWOQarZ+61XCxNnLanImCE3MaOFR/HE094qVTJaXMMhr9ZudJyuzTZiZ6qkAhkAFOB\nOUALe/sq4CbgGuAnx6wtH9oCI8CbCp+LSNz/hzVCDohIBikp0+nfP4UTTnDaHEOcUK0a/Pnn/s+F\ne+hgxaOPHAldc+E7RTYChePEh2D5yscDpwFvAg+XndkVhp4g3aFKOnwkInE93hf3Qi4igtc7kTPO\nOIoLL4z7+2EoPxo3tmZ0bt1qxZJ/9ZUVew5WZMqoUeiSJdA4H17B6mVnAeHL6awENgGnAz6s/9AK\n5JXnhTjIc+A5EVqkWIOfcUtcP8UAcLl6UKnSaQwYEA/uRUMFwu2G22+He++1IlguuMDKzTJlCkyb\nhm7ehHyZD+8CDYFUYEyhNh4Ehtrb12GFHw7D6qXHAwnAu5B6AtwjIh+q6nynbSotInI78D9VPeLn\nblxPCBKROng8S3nxxVQaNnTaHEMZEU0TggqSbW3bgC6Loen2Zc040L7wezacEAlhLA9EZC1wciQS\ngsWtK0FEXHi973D99R4j4oaKQEFkSuD32MqZUh7cANIB
jkq1fpAcESLSVUQWisgvIvKmiNQRkS9F\nZIGIfC4itexyY0RkpIj8KCKrRKSDiLwmIstE5PWw9s4RkR9EZJ6ITBSRVBHpjxWA87WIfHmkNset\nkJOQcCs1ajSjSxfjXjI4zi+/7I9MWR+DOVPKGgHGgDcBbhKRUw+7HSuc8T7gDFVtAQwARgBjVLU5\n1pjyiLAqWap6CnAn8BHwjKo2AU4SkZNEpArwAHCWqrYCfgbuUNURwGb7PGcdrr0FxKWQi0g93O5h\nDB6caib9GJzmk0/Q//wHutuRKU7bE61UA96ElFSYJCKph9lMR2CSqu4EsN9PAQoSKIwDwnNffmy/\nLwa2quoy+/NSoC5WpGQT4HsR+QUr3D9s7m5k/t7x2RtNTR3JNdckHTAX2mAoZ0IhazWfD6Ygz/vh\nZqcNigEuBc6FjOnWOPCgCDVb0kBiQQLiUNh2wecE+32Gql4fIVuKJO565CJyBomJp3PttfH5EDNU\nCAIBePBB9KMPkC+MiEeUF6yZ/LeJSL2DFv4nXwFXi0hlAPv9B6ygIIAbgO+KqVtU7/onoL2INLDb\n84rIcfaxPVhzu46YuBJyEXHj9Y7mttu8eExaY4Mz7NoFt9wCS+bB6rwDf6cbjpxawEBIzISXDrWu\n7RoZCsy0XSFPA/2BHiKyALgeuL2geOHqhbdV9S+gO1Y6gYVYD4XGdpnRwGeRGOyMq/BDcbtv4rjj\n/svLL6earIbxQ0UKP1y/Hu64A1J3o6uCZlCzrMgFaoPvLzhHVX9w2p6yJm565CKSTmLicO64w4i4\nwRHmz7ciU5ruQNcbES9TUoDhkJIBL8VD7vK4EXLc7lto1SqRxo0PXtZgiDCffILedx/0zIVvIxSp\nYCiZriBV4TgOXHsjJokLIRcRDwkJg+jWzSzeaihXQiF4+WV0xAvICD+86LRBcYQbeAJSs+JgAYq4\nEHJEunL88Ykcd9zByxoMEcLvhwc
eQKd+ZEWm9HbaoDjkCiARGolI64MWjmJiXshFxE1y8iP06JHm\ntC2G+GHnTuh7Cyz72USmOEkCMBCSM6zZlTFLzAs5cCU1a6Zz0klO22GIE37/3VooObge3R5AYnUN\nzWiht7Ww0rkiErMzAGNfyNPS7qZLlzQTqWIoD+bPt2LEm+1A1wURkwDCeTKAXuDyWvlQYpKYFnIR\nqUN+fjPamx+2hrJn2rT9kSnfOByZciPWAhThv0M7Ay3tVz37vSjqAv/CWkKuTdj+Qfb+7mH73gZe\niITBZcydkBSC3iISkwEPMS3kJCT04OyzxSykbChL/o5MGVFxIlN6ANML7XsHmG+/rsQaCCwKF/AN\n8AvWmqAZ++7EAAAgAElEQVRgzSX/BViItWboUqxViN4Abo2c2WVGHeBkCAIXOG1LWRCzQi4iQmJi\nHy680MzFN5QZfj/cf78VmfJNBYpMORUoaUXid9mfPKQwipXpKRwXsM/e9mGJecHc9WhxH3WH9Czr\nGRdzxKyQA6eSkZFqJgAZyoqdOy1/+PL5VmRKW6cNKiXfATWABsUcF+AcoDVWMhCANKATlrulJpbf\neQ5wSZlaGlkuB3LhrCNIcVthiV0hT07uwoUXes0gp6EsWLfOWs1HozAyZQLF98YBvsdyv3yClXVq\nlr3/Hiz3ynCsHLGPAq8B1wKPl5WxEaQK0AYCwIVO2xJpYlfIXa5LaNs2dq/P4Bg//wx9+8JJO9G1\nURaZEgQmY4lvcRxtv1fD6sXOKXT8F/u9ETAJmAisAlZHzswyo3uMuldiUuhEpB4ilWhQ3I9Hg+Hw\nmDoVvf9+uLECRKYcDOWfeVY/B07AWiyyKHxAtr2dA8wATixU5iFgCJbPvMCX7rLrVnQuA3LhzFiL\nXolJIQfOo3VrxRWrl2cob0IhGDkSfelF5CX/gYs2VkS6AO2A37DWFRtj75/IP90qW9ifVeoPrIHS\nFlg+/4uBc8
PKfojlO68BZGKFI56EtTROs0hfRBlQGWhoBdzE1JT92FwlJz39atq3j6knrsE5/H54\n+GF00QLka390DGqOL2b/mCL2HQ1MtbfrAQtKaPdS+1XAU/YrmjgLUlZYWRNmOm1LpIi5LquIuMnL\na0erVk6bYogBduzYH5myLooiUwzFczokZcL5TtsRSWJOyIFGpKfnk5XltB2GKKdwZEo1pw0yRIR2\ngA9aikjM6F/MXEgYrTj++PhZv85QJhREpjTfFX2RKYaSORrIsMaBY2aSSewJucfTmqZNTcpaw2Hz\n8cdWZErvXPi6gkemGA6P06y/6ylO2xEpYm+w0+NpQ7165j+f4ZApyJky9WPkFf+ByaEMsUUL8H5s\nRWLGBLEn5IFAY+rVc9oKQ5Th98PgwejihchM/4FZ/wyxRz2QNGjitB2RIqaEXEQSEcmgmhmWMpSe\nHTvgrrtg12ZYF7BmNBpimzrWW8z0+GLNR34UXq8ftxmaMpSOtWutyBTZQOgvE5kSN9QF8oqf4Bp1\nxJqQH01WVsBpIwzRwbx5VmRKy13omiAu8/iPH44GApAmIilO2xIJYk3Ia1ClitM2GKKAjz9GH3gA\nbs6DL01kStzhAqpZ6WHqOG1LJIgpHzlQg6OOSnTaCEPFpSBnyrSpJjIl3smA0BYrtXrUE2tCXoms\nLCPkhiLJy7MiU5YsMpEpBkg64C26iTUhd+FymZ/Jhn+wYwf06QO7t5jIFIOFreAx0fGLNSEXI+SG\nf5CXJ+PGwTEudFsQibUvveHwMEJecYm1wVtDBNhXuyGJW+awI4ikANVB60LoeOAEcNfDCiiuj5Vj\n2xAfGNdKxUUQs0in4UB02JPuwJgxeMZO5GquCB3P8a6VrHT/yjq+Y2Mwm23qI9edQ0gSgZoQagB6\nAkgjcBUIfR3A4+ylGCJIohWtZHrkFRBF1WQ+NPyTHj3wt2rFlLvup9m+1cGHeNCdRhrA3+H
jIUJs\nYANLWOJazWq+Y4N+wIagj134CLh8qGQCx0KoEYROAHcDkPpYQn805idhNJFnZUD0O21HJIg1Id/J\nrl0BICaC/A0Rplkz8iaPdy3oOyDYbUN3fZJh0pCGfx924aKO/c9GCBP6AAF+5VeWs9y1hjWuKWzQ\n3WzJ97HX5SPfFQCOKsFtYzLkVyz+tN62OWtFZJBY6sCKyJW0bv06w4fHRGyooQx5/nn1fPCp9KOf\nXsRFEXHH7WQnS1nKSlayjnX8wYbgXrZpLj5XNiFXAnAMhBrabpvjwFXQm68DJEfCCEOpqQY5f8GJ\nqrrOaVuOlFgT8tNo0OBjXn3VjFkZDs6PP+J54DFtF2obupd73MllKKUhQmxi099Cv4ENbGdjfg47\nJRe/KweVDCy3zXEQagIJDdjfmz8G47aJJAokQX4+ZKlqjtP2HCmxJuSNqVJlLu+9l+60LYYoYccO\nkm7qH6yyHdeTDJNjOdYRMwrcNr/yK2tYw0bW6262BHPZ68phnysAVLPdNo2x3DYFvfn6QCVHrI5e\nsoFKsG+fakxErcSakFcmKWkL06fHxB/HUE6EQsiQoer55gcZxCA60MFpi/7BbnazlKX8yq/8zu9s\nZUMomz9DPnJdOQRdbuBoO9qmSSG3TV2M26Ywa4GTYPte1apO2xIJYk3IhcTEHCZNSiHTeFcMh8iM\nGXiGPafn67mhW7nVnRglkWkFbpvlLGclK1nPettts0N8ttsmHctt0xC0KbgagIS7beIt8+M3wJWw\nZLtqM6dtiQQxJeQAkpm5iIcfbkaLFk6bYohGNm3C02dAsGZ2pgzjCVe1GJjMHyDASlaynOWsZS0b\nWa+72BLMZc/fbpuqxbht6gGVib30kM8BD8Kre1V7O21LJIg9Ifd6X+fGG3tw5ZVOm2KIVvLzcQ+8\nL+SZv8z1MINpTWunLSpT9rCHZSxjBSvsaJuNob38GfLhc+UQdLmw3D
b1rUFYV8EkqfpYbptojPW9\nDnLegQGq+qrTtkSC2BNykVs455ynue8+r9O2GKKc997D89KrXM3Vwe50d7vjzgFhuW22sIWlLGUV\nq/id3/+OtvGR58pBJY3i3TY1qZhum4awZzWcparznLYlEsSikJ9KnTpTeeMN4yQ3HDmrVpHc7+7Q\ncf7aPMqjriwzrecA8slnFatYxjJWs5pNbGAXm/N97HH52OfKo2S3TRXK320TANIgfx9kqGpuOZ++\nTIhFIc8gMXEbU6cmkWSCVwwRIBAgod8dQe/KTe7HGUpTmjptUdSQTTZLWcpv/MYa1oS5bXJcOQRd\nULLbpix+Vi8EOsCGXaq1y6B5R4g5IQeQ9PRlPPLICbRs6bQphljitdfwvDWJntwYupqrXBJzQ4Dl\nT4HbpiDa5i82BLPZQS55rmxUUvnbbRM6AdzH2W6bekAtDi/HyP+AQTB5p2rMDKTFppAnJj7OVVfd\nw803R0cumexsePppa0l3Ebj3Xti2Dd54A9avh5dfhkaNiq8fClmrJlSrBkOHWvtGjYLZs+G442DQ\nIGvf55/Dnj2YgeAjYMECku95UJvnn6gP8IArlVSnLYpZ8slnNatZznJWsYpNbNBdbA7msMflI+DK\nA6qA1rHdNk3s3DYFrpuqFO22uQCyP4W+qjquHC+nTIlNIRc5nWOP/ZixY6Mj58qwYfCvf0GnThAM\nWmuSbd8OLhf897+WSJck5JMmwW+/gc9nCXlODjz8MDz1lPWAuPJKqFkT7rsPnnwS3BVx+CmKyM4m\n8eb+wczN2a4neVLqU99pi+KSbLJZxjJ+5VfWsY4tbAjt5Q/NJUeybbdNDdD6EDwe5Hhb6K+FQC7U\nUdWtDl9CxIiOHuuh8xNbtnjYvZsKPzEoJwcWL97fa3a7ITXVegEc7EG7bZvV877hBkvQwXoABIPW\ndl4eJCTAxIlw+eVGxCNBWhr73h7j/uuZ/2rfq
bcygNv1fM43fpZyJo002tj/bA5IR7OVrSxjmfzG\nbwkLWM8XbAzu4g/xENzl0/yYEXGI0Tw8qhogOXk2c+c6bcrB2bIFMjKsnvJNN1k9aP8hpEh+6SWr\nxx5OSgq0aQO9e0PVqtZDYcUKaN8+srbHO3fdKf4h9/OcawSP83jQHxuprWOGGtSgIx3pQx8e53FG\nMdZ9GhflZyP/c9q2SBOTQg5AdvZrfPLJXqfNOCjBIKxcCZddZvm1k5Ph7bdLV/fHH6FSJWho59QO\n77137gyjR1si//rr0KMHTJsGjzwCb70V+euIV049Ff/EN2VmpcX0opduYpPTFhmKQVG+5ut9+eS/\n77QtkSZ2hRwms2RJIjt3Om1HyVSrBkcdBY0bW587dIBVq0pXd8kS+OEH6NIFhgyBX36Bxx8/sMzK\nldZ7rVowcyYMHgybNlkvQ2SoWpXAe2+7N53ekF705ju+c9oiQxGsZjV55OUAi5y2JdLErJCrajZJ\nSZ/y1VcVezS3cmVLzDdssD7Pnw916hxYpjg/ee/elu97/Hh48EFo2dIa0AxnzBjo2dPKvFzQjst1\naO4bw8FxudBHBkvevf0ZKo8zghHBfPKdtsoQxkd8lBck+LrGYIRHzAo5ADk5/+Ojj7KdNuOg9O9v\nRZv06gWrV8P118OsWXDNNbBsmSXOAwdaZbdvh//8p3Ttzppl9fQrV4a0NGjQAG68Efbtg/om0qJM\n6NQJ/5ujmJY6U/rSN7QtNlYSi3pyyGEGMwgQeNFpW8qCmAw/LEBEEvB4tvHKK1nUreu0OYZ4Ij8f\n990DQ8kLf3M9wsOczMlldqrhDOcnfqISlXiN1wDYy14e5VH+4A+qU53BDMZebPoAOtOZVFJx4SKB\nBF7mZQBGMYrZzOY4jmMQVkTV53zOHvZwJdE3D2Eyk/V1Xp+WrdkXO21LWRDTPXJVzScUeol33omJ\nfAqGKCIhgeBzz7hybr6e
+3mAN3gjFCJUJqfqRCeGM/yAfeMZT0taMpaxtKQl4xlfZF0XLp7jOUYz\n+m8RzyGHlazkNV4jgQTWspYAAaYzncu4rEyuoSwJEeId3snJIWf4wUtHJzEt5ADs2/c8X38NO3Y4\nbYkhHuncGf8rzzEx6QPu5M7QbnZH/BTNaPaP3vb3fM95nAfAeZzHLGYVWVdRCj9gXLgIYs1DyCOP\nBBKYyEQu53KiMQPkPObhw/cHFHMTYoCYF3JV3Ybb/TaTJu1z2hZDnNK4MXkfvuNa2sCv3enOMpaV\n+Sl3sYvKVAagMpXZxa4iywnCPdxDH/owlakApJBCG9rQm95UpSqppLKCFbQnOuchTGRidg45w2Jx\nkLOAmBdyAHJzn+CDD4L4fE5bYohXkpPJf/Vl967rOnEnd/I+74eU8tOV4hJ8jWAEoxjFMIbxAR+w\nmMWA5TsfzWj60IfXeZ0e9GAa03iER3iL6JmHsIlNLGGJQDG+pRghLoRcVdfgdn/O1Kll46Q0GErL\nTTfhf+ZxXk14Qx7kwaCPsulcVKISO7DciTvYQXF51KtQBYAssjiN01jO8gOOr8Sah1CLWsxkJoMZ\nzCb7XzQwmtE+QZ5X1ZjuxcWFkAOQk/MAY8f6yclx2hJDvNOyJXnvvy1za2ykO911LWsj0mx4D78d\n7ZjOdACmM71It0geeeRixQHkkstc5lKPegeUGcMYetKTfPL/bt+Fi2hIR7Cc5cxmdsCP/wmnbSlr\nDirkIlIu09xFpIOInFJW7avqIlSnMmGC8ZUbnCcjg8CEN9zbOrXiFvoygxmH7WcZwhD60Y+NbORa\nruVTPqULXZjHPLrSlfnMpwtdANjOdv6DNQ9hJzvpT39605tbuZV2tDtgfdJZzKIxjalMZdJIowEN\nuJEb2cc+KnrGR0V5lmez/fjvUtWKP5fkCDloHLmI7FHVMk8HKyKDgWxVfeYQ6rhVNXgI5Wvj8axg\n7Ng
UjjrqsOw0GCLOzJkkPzpczwidHrqDO9xJmJWtjpSZzGQ4w1f58B1/KBoRrRySa0VEnhKRxSKy\nUESusfd1EJGvRWSSiCwXkXFh5VuKyDciMldEPhWR6vb+20RkqYgsEJHxIlIH6AMMEJH5ItJeRC4S\nkZ9E5GcRmSEi1ey6g0VkrIjMAsYeiv2quh7V53nppZj2lxmijA4dyHvnDfk66xfpRW/dwhanLYpq\nAgR4gRdyfPj6xIOIwyEIuYhcCZykqs2Ac4CnCoQZaA7cBjQBGohIOxFJAEYAV6pqa2AMUJDRaSDQ\nXFWbA31U9XfgFeBZVW2pqt8D36lqW1U9GZgI3BtmzglAR1W9/pCvOBB4jDlz8li8+JCrGgxlRrVq\n+N8f79rYro7eyI18z/dOWxS1TGFK0I9/jqp+6bQt5cWh9MjbAxMAVPVP4Bv426E2R1W32HGaC7DW\nTW0MnAh8LiK/APcDx9jlFwLjReR6oLgn5rEiMl1EFgF3wwEr3n6kqoFDsP1vVDWHvLw+DB2aQ+Cw\nmjAYygaXCx36qCv3zlsYIo8xkpHBYLH/PQxFsZOdvMmbgRxy+jptS3lyJFEr4YGp4UPYQayVhwRY\nYvewW6jqv1S1k13mQuBFoCUwV0SKsmME8IKqnoTldkkOO3akoSfvsXfvTF591Si5oeJx8cX43xzF\nR94vpS+3hraz3WmLogJFeZzHfYq+oqornLanPCmNkBcI9nfAtSLisv3VpwFzSqj3K1BNRNqClcBK\nRJrYx2qr6kxgEJABpAF77e0CMoDN9na30lxMaVFVxefrwUcf5bGs7GfZGQyHzLHH4p8ywbW6WYp2\npzsLWOC0RRWej/k4tIxlG/LIG+S0LeVNaYRcAVR1ClZC9oXAF8A9touluPL7gKuAJ0VkAfALcIrt\nO39LRBYCPwPPq+oe4GPg8oLBTuBh4D0RmQuRzwWqqn/i9/fm0UeNi8VQMUlKIvjC
s+7sXp0ZxCDG\nMa7MEm9FO+tZz8u8nOfDd9nhul2jmZhOY1saJDV1Kp06nUO/fibmy1BxWb6c5AGDQk0CDXUwg90Z\nlHlEcNSwj330pnfORjbem6/5I522xwniZ2Zncfh8PZg2bQ/fmygBQwXmhBPI++Ad1+K62XSju/7K\nr05bVGF4ndcD29g2O0jwZadtcYq475EDiMj/kZLyNaNGpVCrltPmGAwl8/LLeN79kJu5WS/jMiku\nIVY8sJCFDGTgLj/+xsW4euMCI+Q2kpjYj+rVhzF6dCopKU6bYzCUzNy5JP/nEW0dPDn0Hwa5U4i/\n7+wOdtCTnr7d7L5aVT9x2h4nMa6VAvLzX2LHjk8YPjy32MWODYaKQuvW5L33lsw+ai096KG/87vT\nFpUrAQIMZGBOHnnPxbuIgxHyv1FVJTe3O7Nnb2bSJDMLw1DxycoiMHGs+89zm9OHPnzBF3HRA7Hj\nxXM3selLP/4HnLanImBcK4UQkbp4PD8zcGAlzjwzfp2Phujiq6/wPPa0nqVnhm7n9phOvPUGb+yb\nxKSVPnytVNWsx4vpkf8DVV2H39+RJ5/M4ZdfnDbHYCgdHTvinzBGvsyYx03cHNrKVqctKhM+4ZPQ\nRCbu9OE7+0hFXERuF5Hkg5cse+zkgx8fbn0j5EWgqgvx+y/h/vtzWbXKaXMMhtJRvTr+KRPcG/7v\nGHpyIz/yo9MWRZQf+ZEXeCE7j7zTVTUSKSIHAN4ItBMpDts9YoS8GFT1a/LyunPXXblsjc3ejSEG\ncbkIDRvqyr29N4/wKK/wSkwk3lrGMh7lUZ8f/3mqeshB9CLiFZGpIvKLiCwSkYewkvh9LSJf2mVG\nisgcO1X34LC6a0XkcbvuHBFpISKfichKEbnJLtNBRGba51ghIiPD6p8jIj+IyDwRmSgiXnv/+Xbq\n73nAFYVsfS0sjffFB70+4yMvGUlKGkBGxlBefNFLjRpOm2M
wlJ61a/Hceleofm4NHuMxV2UqO23R\nYbGIRQxikC+X3MMOMxSRK4DzVPVm+3MGVqbWk1V1p70vS1V32Un8vgT6q+oSEVkLPKGqo0Tkv0BH\noB1Wb36JqtYQkQ7Ap1gpttcD07FSc88EJgPnq2quiNwLJAFPASuBM1R1jYhMBFJU9RIRGQosVdXx\nIpKJldOqeUmuJNMjPwgaCDzHnj0P0revj82bD17BYKgo1KuH/4N3XL81SaQ73VnEIqctOmR+5mcG\nMjAnl9xLjzDMcDFwjog8ISKn2vmdhAOzuHYWkZ+x8kI1sV8FfBzWzmxV9anqX0Ce/VAAK53373Y6\n7wnAqUBbu53v7XTeXYE6wPHAGlVdY9d9K+xc5wKD7PLfYAl/7ZIuzgh5KdBA4L/s3Xsvffv62LjR\naXMMhtKTlETwpedde3tcxb3cy3jGh/TwXbHlyo/8yP3cn5NHXidV/eJI2lLVlVhpsxcDQ0TkQcJ8\n0iJSF7gLOFNV/wV8woGpswtSdYc4MG13CCttd5GnxXpQzAhL532iqvYuOG0x9QRrQZ4W9qvewdxJ\nRshLie7b9xLZ2bfTt6+P3+Nr8oUhBujaFf+LzzAu8R3u5d5gNhV7PeJv+EYf4ZG9fvwdVfW7I21P\nRI4GclV1PPA0lqiHp87OALKBvfbKZ52KbKiIpsO2W4tIHds1cy0wC/gJaC8iDWw7vCJyHLACqCMi\n9ey614W1Mx1rxbUC25sfzAgj5IeA5ue/Sk5OX/r1y+VXk7TIEGU0bUreB++4FtbeRTe66W/85rRF\nRTKDGTqMYXv8+E9X1ZLWPDgUmgFzbHfFQ8AQYBTwmYh8qaqLsHzmy7HcHLPC6pb0Eyb82DysBXOW\nAqtVdYrtfukOTLBTd/8ANFZVP3Az8Ik92PlHWDtDgER7UHYx8OjBLs4Mdh4GInI5yclv8cADXtq3\nd9ocg+HQGTFCPZOnSV/66sVcXGESb3
3ER8GRjNztx3+aqkbNqi/2YOddqnqJI+c3Qn54iEhrPJ7p\n9OqVwVVXuZ22x2A4ZGbPJvn+Ido22Do0kIHuZJybG5NPPi/yon860//KI+9M26cdNRghj2JEpA4p\nKd9wzjlHc9ttHtxGzw1Rxs6dJN3UP1jlr5BrGMOkdsnBEWXCbnZzH/f51rFung/fpaq6q9yNiHKM\nj/wIUNXfyc1tzhdf/MzAgT6yK/YAksHwDypVIjBxrHvrWU25mZv5iq/KtWe3mtX0pKdvDWtG+fB1\nNCJ+eJgeeQQQkURSUl4mNfU6nnjCS8OGTptkMBw6n3+O54ln9Tw9J9SPfu5EEsv0dN/wjT7Jk7l+\n/L1CGppQpieLcYyQRxBxua4jKelV+vVL5sILXUjFGEAyGErNli14br49eMzeNHmCJ1zVqR7xU4QI\n8RqvBSYzeXceeeer6vyInyTOMEIeYUTkeFJSPqVt2+rcc0+KWW3IEHWEQrgG3hdKnrfYNZjBtKFN\nxJrewQ6GMtS3ghXLffguiOfl2SKJEfIyQERS8XpfJzPzIoYO9VKv3sErGQwVjcmT8YwYzVVcGepB\nD5ebIxvMn8lMnuKp3HzyX/Ljv19VAxGyNO4xQl5GiIjgdvcgIeEF/v1vD507J5ioFkPUsXo1yf3u\nDjXIq8ljPObKIuuQm8gmm2d4Jnc2s3fYia9iK79uBcAIeRkjInXxeidSo0ZTBg9OpXb5h3cZDEdE\nIEDCbXcFvb+udz/GYzSjWamrzmUuj/GYL0Dg7Tzy7lDVnDK0NG4xQl4OiIiLhIRbcbuH0bOnhyuv\ndJveuSHqGDMGz9iJ9KBH6BqucZU0GzSXXEYyMu8LvsjJI6/zkSa9MpSMEfJyREQa4PW+S61ajbnv\nvlTq1HHaJIPh0Fi8mOQ77w+dlN+EB3nAlUbaP4osYhFDGOLLIWdaLrk3mdjwsscIeTkjIi7c7v4k\nJAzlsssS6dYty
US2GKKK7GwSb7k9mLFxt2sYw6Qh1ryJ7WznRV7M/YmfcvPI66WqUxy2NG4wQu4Q\nInI0Xu9LJCaex+23eznjDEzcuSGqePY59Xz0mfSjn/rwhcYwJgC8kkfeQ6pqpjmXI0bIHUZEzsDr\nHU2tWkdz552pNG7stEkGQ+lQhVGjSH7nA1y4fvbhu0FVVzhtVjxihLwCICJuXK4bSUwczmmnJXHL\nLSlUjs71FQ1xwqpV8PzzOaxevZPc3L7AVDVi4hhGyCsQIpJJcvIjwE1cf30iV12VQLJzqUUNhn+w\nbRuMGpXLd9/tIz//PoLBUaq6z2mz4h0j5BUQEWlIauoLqJ7B1VcncvnlCWRmOm2WIZ7ZtQsmTcrn\n/ff3ASPx+4eo6m6nzTJYGCGvwIjICXi9DxAMXsEFFwidO3s46iinzTLEE+vXwzvv5PHll+B2v09u\n7v2qahatrWAYIY8CRKQmyckDCYVupH17+Pe/Tf4WQ9mhCosXw7hxOSxapMAIAoHnVfWPg9Y1OIIR\n8ihCRCqRkNAPt/tumjZ10b17Gs1KP13aYCiRYBC++w7Gjs1m69a9+P1DCYXeMNPqKz5GyKMQEUnB\n5eqOxzOYmjW99OiRTtu24DILPhkOg9xc+OSTEG+/nUcgsIqcnIeBj1Q16LRphtJhhDyKERE3cCVe\n72NkZBxNt25pnHUWJJbtyi6G/2/vbn6jqOM4jr9/+7zb7ROtRGkp9sEU0qSQjQkUo1hRLFIvejQx\nxkTj38HNP0EvmmD0wgEuPNgGjHiwiYQShbAtUKENYvoAbenuzs7O/DxsW4VwAGzZTvfzSn6Z2bSH\nb/bwzmT2t7ObxOwsHD/ucuKERzj8E0tLR/VkwmBSyDcBY4wB3iadPorn7aG/HwYGEvT06CpdHub7\ncOUKnDyZ58IFQzh8jHz+S2vtjUqPJs9OId9kjDEvE4l8RCz2GbFYMwMDMQ4diurD0SpmLYyNwd
BQ\nkaGhEp43jeN8Tan0lbV2ttLjyf+nkG9Sy1fpvcTjn2DMx2zZEmVwsIaDB0PawlgFrIWJCRgeLnH2\nrEM+v0Cp9A2u+7219kqlx5O1pZBXAWNMCHiDVOpTSqUPaW8vMThYx4EDUFtb6fFkLU1OwrlzHqdP\n55ifd7D2OxznGHBJX6HfvBTyKmOMiQOHSac/x3HeYvdulyNH0vT1QTxe6fHkWdy9C+fP+5w6tcT0\ntI8xP1AoHAN+tdb6lR5P1p9CXsWMMfXAB6TTX+A4e+jqyrN/fy2ZTIjubvQrRhtUqVS+5335smV4\neJGpqfDyty6/BX7WtsHqo5ALsBr110kkBohE3qNYbGHXrgJ9fbVkMobOTu2AqRTXhWwWRkd9RkYe\nkM0miMXu4Hk/UiicBIb04KrqppDLYxljmoE3SSYPY8y7+H4zvb1F9u2rJZOBtjb9EMZ6KRbh2rV/\nwz0+niAen8J1z+I4Q8AFa+1MpceUjUMhlydijGkB+kmljuD77xAOp8hkfPburaG3F1padMX+rIpF\nuHoVRkc9RkaWuH49SSLxJ657BscZphzue5UeUzYuhVye2vLWxnagn3T6fTzvNUqlelpbc+zcGae7\nOy+sEmkAAAJLSURBVEFnJ3R0QCpV6XE3lvn58rbAmzdhfLxANuswOZkimbyB45yhWBwGftEjYuVp\nKOSyJowxDUAvsJuamn2EQq+Sy7VTV+fQ0eHT1ZVix44I27eXb8vU1VV65PVjLczMwNRUeU1MuGSz\nOW7dilEsGhKJ63jeRXK534A/gIvW2sVKjy3BpZDLull+FswrQA/G7CKdzgA9FAptRKOWbduKdHRE\naW1NUl9vaGyEhgZWjzU1G+8+vLVQKJSvrBcWysfpaZic9JiYWOL2bZieThIO54nHb+H7V3nw4BLw\n+/Ka0n5uWWsKuTx3y7dmXgS6gZ2Ew20kk22Ewy34/lY8rwnXrcfzotTUO
NTVuTQ2QlNTmObmOE1N\nURoaWF2JRDn4KwvK9+tXzv/7t0f/z5jyPeqVKK8c5+ctc3MF5uZc7t2zLCwYFhcj5PNxwCcaXSQS\nuU8oNIfv32Zp6TLWjgFjwHVr7cLzfl+leinksmEZYxLAC8DWh1Ys9hKx2HZCoW34/lasTQBmdVlr\nHvOa5fPQ6nn5NYRCLpHIfYyZxdq/cd2/KBTuALPAzCPHWWtt7vm8AyJPRiEXEQk47RcTEQk4hVxE\nJOAUchGRgFPIRUQCTiEXEQk4hVxEJOAUchGRgFPIRUQCTiEXEQk4hVxEJOAUchGRgFPIRUQCTiEX\nEQk4hVxEJOAUchGRgFPIRUQCTiEXEQk4hVxEJOAUchGRgFPIRUQCTiEXEQk4hVxEJOAUchGRgFPI\nRUQCTiEXEQk4hVxEJOAUchGRgFPIRUQC7h/zJtHE2H36aAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x97d1c88>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "slices= [ls5_fn,stampede_fn,comet_fn,gordon_fn,alamo_fn]\n",
+ "cols = ['c','m','r','w','y']\n",
+ "Hosts= [\"lonestar\",\"stampede\",\"comet\",\"gordon\" , \"alamo\"]\n",
+ "plt.pie(slices,\n",
+ " labels= Hosts,\n",
+ " colors=cols,\n",
+ " startangle=90,\n",
+ " shadow= False,\n",
+ " autopct='%1.1f%%')\n",
+ "\n",
+ "plt.title('Percentage failure by Resources')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Percentage cancelled by resources"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "ls5_xn = sum([1 for x, row in df.iterrows() if row[3] == 'ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf' and row[9] == 'CANCELED'])\n",
+ "stampede_xn = sum([1 for x, row in df.iterrows() if row[3] == 'stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12' and row[9] == 'CANCELED'])\n",
+ "comet_xn = sum([1 for x, row in df.iterrows() if row[3] == 'comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b' and row[9] == 'CANCELED'])\n",
+ "gordon_xn= sum([1 for x, row in df.iterrows() if row[3] == 'gordon.sdsc.edu_f9363997-4614-477f-847e-79d262ee8ef7' and row[9] == 'CANCELED'])\n",
+ "#jureca_xn = sum([1 for x, row in df.iterrows() if row[3] == 'Jureca_32098185-4396-4c11-afb7-26e991a03476' and row[9] == 'CANCELED'])\n",
+ "alamo_xn = sum([1 for x, row in df.iterrows() if row[3] == 'alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29' and row[9] == 'CANCELED'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8VMXawPHfc3aTbQmE0CEEAiQUaQIiiojXBihVioIK\nooJSVQQLykXhgtixAEoTUUGsFN9rRfSKFaVIRwVpKkVqyqbszvvHOYElppNkk818+ewnm9P2Ocvm\n2Tkzc2ZEKYWmaZoWWoxgB6BpmqYVPZ3cNU3TQpBO7pqmaSFIJ3dN07QQpJO7pmlaCNLJXdM0LQTp\n5K6VKyLSSUT2Fce+IuIXkfqFj07Tio5O7kVARH4XkWQROSkif4rIKyLiDnZcgURkt4hcHuw4Solz\nubkjt32L5KYRERksIhnW5+m4iKwXkWuL4tha+aGTe9FQwLVKqQpAa6At8HBBDyIitqIOTCtRUoTH\n+kYpVUEpFQXMBt4UkQpFePxzoj+rpZ9O7kVHAJRSfwIfAs0ARKSCiMwTkT9EZJ+ITBERsdYNFpE1\nIvKMiBwBJlnLh4rIVqvktllEWlnLa4rIOyJySER+E5HRp19cZJKILBWRV639NolIa2vdIiAWWGmt\nG2ctf8u60jgmIl+ISNOA40WLyEoROSEi31txfxWwvrGIfCIif4vINhHpl+MbI1JJRBaIyAFr+/es\n5VHWaxyylq8UkdoB+60WkcnWe3RSRD4SkeiA9ZeIyNdW/HtEZJC1PFxEnrKW/Skis0TEkUNsub2n\nThFZKCJHRWQzcEHuHwEArrWOc0hEnrCOE2ad33kBx64qIkkiUjkfx3wN8ADxAfu3Dzj39SLSKWDd\nLVYMJ62fA6zlIiIPW1eaf1nnFmmt+0eVU+DVnvX5eltEXhOR48BgETFEZIKI/Gp9TtZm/v/l9vkQ\nkWtEZIsV3z4RGZuP90ArKKWUfpzjA9gNXG49rwNsB
h6xfn8fmAU4gSrAd8BQa91gIB0YgflF6wD6\nAfuA1tY29a1jCvAj8BBgA+oBvwJXWdtNApKBzta204Bvs8T4ryxx3wK4gTDgGWB9wLo3gcVWTE2A\nvcD/rHVu6/dB1mu1BA4BjXN4f/4PWAJUsGLvaC2PBnpbr+EBlgLvB+y3GvgFaGBtsxqYZq2rC5wE\n+lvHrAS0sNY9CywDKlrHXQ5MtdZ1AvZaz/N6T6cDX1rHqQ1sytw3h/P0A6us7WOAHcCt1roXgccC\nth0DLM/hOIMD3msbMBLwAlWsZbWAI0Bn6/crrN8rW/83J4CG1rrqQBPr+a3ATuu9cwPvAouyvi85\nfK4nAalAd+t3BzAe2BjwWs2t/4fsPh+HMz8fwB/AxdbzikCrYP8Nh+Ij6AGEwsP6IzgJHLWev2B9\n+KtZf5SOgG1vAD63ng8Gfs9yrI+A0dm8Rrtstn0AmG89nwR8ErCuCZCUJcbLczmHKCs5RWJ+0aRl\n/tFa66cEJJz+wJdZ9n8JmJjNcWsAGUCFfLyPrYC/A35fDUwI+H048N+Ac383h+MkAnEBv18E7LKe\nByb3C/N4T3/DSvTW70OzJsAs+/qzbD8c+DTg/29PwLq1QN8cjpP5pX/U+n9ICtwWuA94NZvPzc1W\nYj2K+aXpzLLNZ8CdAb8nYCZsg/wl9y+yrN8OdMsm/lw/H8Dv1nsZWRJ/n+X1YUcrKj2VUqsDF4hI\nXcxS8Z9i1cRYj70Bm2XtfVEHM6lkVReoLSJHMw+P+Uf5v4Bt/gp4ngw4RcRQSvmzHkxEDMzSfV/M\nKwplPapgJggbsD+HOOsC7bPEYsOsPsiqDnBUKXUymxhcwAzMq40o6zgRIiLKygLZnFNEwHH/8T6J\nSFUr/p+s9xzM9ym7+vBYcn9Pa3H2e7Anm2NklXX7WgBKqR+saphO1jk1AFbkcpxvlVKXitkwPx+4\nFHjHWlcX6C8i3QPitmMWGpJF
5HrMUvUCEVkD3KuU2mnFEngOezA/n9XzcV6Q/Wd1Vzbb5fT5WGT9\n3geYCDwuIhuBB5VS3+UzBi2fdHIvOtklj32YJffKAckqq6zL92H+4Wd3rF1KqUaFjC/r6wwEumOW\nzPaKSEXgGOZ5HMYsbcdgVlOA+YccGMsXSqnO+XjdfUC0iFTIJsHfi1mPfIFS6rCItATWWTHk1fNk\nH2ZpOKsjmF8C5ymz/SOvY+T2nv6Bed7brN/r5nE8smwfax0j06uYpeu/gHeUUml5HcxK1iOAXSIy\nXym10Yp7kVLqjhz2+RT41GpnmArMxSyZ/5HlHOpiXiEcxKx2Ot3DS8wG06pZD53l972Yn9WtWZbn\n+vlQSv0E9LJeYzTwFuZ7pRUh3aBajJRSfwGfAM+KSKTVoFVfRC7NZbd5wDg50xjaQETqAD8Ap0Tk\nPquhzyYi54lI21yOFfiF8xdm/X2mSMxL8mMi4gEew/rjtUr67wGPiIhLRBpj1p9m+gBIEJGbRMRu\nNRi2tbbL7j34EJglZgNqmIh0DIghBTgpZkPpI7mcS1ZvAFeISF/rvYgWkZbWl+hcYIZVikdEaovI\n1dkcI6/39G3gQSvuGGBUPuIab21fB7gLs+0iMObewI2cKcXmSSl1zDqnSdai14HuInK11ajptBpE\na4lINRHpYZX40zGrqDKv3JYA94hIPRGJwEz8b1r/3zsxr/S6iogds7dXeB6hzQemiEhDABFpLiKV\nyOXzYT0faH3Z+4BTgC+/74WWfzq5F43cSpmDMP9ItmLWhb6NWQ+d/YGUegfzj26xiJzEbJCNtv4A\nu2HWS+/GbMCci9lImZ+4pgMTxez5MRazFLkXOIDZAPxNln1HY1aV/GltuxjzywClVCJwNWb7wR/W\nYzo5J4ObMa8EtmN+ydxlLZ+BWVo8Yr3+f3OJ/+wVSu0DrgHGYb6v64EW1uoHMK84vrN6dnyCWb+c\n9Rh5vae
PYr5HuzHrtPNKyAqz8fYnzCuQlcCCgNfbby1XSqk1eRwrq+eAriLSzDpOT2AC5lXWHsz3\nwbAeYzH/X49gVucMt46xALPq7H+YVVrJmA27WFdVIzAT9n7MpBtYxZSdZzBL3Z+IyAnMgokrH5+P\nm4Hd1v/NMMyrSK2ISc61BZp2hohMB6orpYYEO5ayTETmAweUUv8OdixaaNN17lq2RKQREK6U2iQi\n7YDbMLvSaYUkIvUwq2XOD24kWnmgq2W0nEQC74lIImZd7ZNKqZVBjqnMEpHJwM/AE0qp/PS60bRz\noqtlNE3TQpAuuWuapoUgndw1TdNCkE7umqZpIUgnd03TtBCkk7umaVoI0sld0zQtBOnkrmmaFoJ0\nctc0TQtBOrlrmqaFIJ3cNU3TQpBO7pqmaSFIJ3dN07QQpJO7pmlaCNLJXdM0LQTp5K5pmhaCdHLX\nNE0LQTq5a5qmhSCd3DVN00KQTu6apmkhSCd3TdO0EKSTu6ZpWgjSyV3TNC0E2YMdgKbll4gIEAVU\nAaoGPKKBcMCGiB3DCMMwwjEMOyJhNpUeG274DipFKuBTynykp5OkFCeBU8BJ63Eqm59epZQq6fPV\ntHOhk7sWVCLiABoA1TmTrKvgctXBbq+FSHX8/sqkp0dhGBHY7T48njQqVPBRqRJER9uJjnYQHm5g\ntxvYbGAYYLOR+dz56izVvRtSuTL4/aCU+TMtDRITST91iozERDISE/EnJUFyMpKSguH1Yk9LI0wp\ncLvluN3OQRH2paayKzWVXcAB67Ef+EMp5Q3aG6lpWYgukGglQURcQCOgKXZ7M9zudvh8TfB6qxEV\nlUJ0tJ/oaKFy5TCio51ERQlRURAVBRUrnnmEhxf4tT09r/TPeNpnNGxYuNjT0uDvv+HIETh82Px5\n8CDpf/6J99Ah/EeOYD91Cqfdjtfh4IBSbEpM5Edgm/XYpZTKKNyra1rh6JK7VqREJAJo
DDQlLKwF\nLldbMjIaY7NVpmrVZOrXF+LjPdSrZ1C3LsTEQFhYZLDjzk14ONSsaT4ChFkPwLwSOHECzx9/kLBn\nDwm7d9Pjl19I2bsX4+RJnJGR8ocIW5OSWOv3swXYDGxXSvlK9my08kInd63QRMQDdCAs7ApcrktI\nT0/Abo+iWrVk6tc3rCQu1KsHtWqB3V4h2DEXF8OASpXMx3nnAQHJ3+uFffuI3bOH2D17uPqXX0j8\n9VeMkyexV6woW5KT+Swjg6+B75VSh4J4GloI0cldyzcRcQMXYbdficvVDbu9EfXqpXDhhR6aNLFR\nrx7UqAE2W8gm8cJwOiE+3nxg9lCrAHDiBGzbRputW2m1fj3Dd+7E6fHIccPgu8REVgHfARuUUmnB\ni14rq3Ry13IkIk7MZH45LlcP7PbGxMZ6ad/eTevWdpo2BZcrLM8DadmqWBHat4f27bEBFfx+2LeP\nalu30mPTJq7euJG0Q4dwVKgga0+d4h3gY2CH7rmj5YduUNVOs3quXIjNdgVudzdSUpoRE2Mm8/PP\nt9O8ObhcwQ6zwM61QTWYTp2Cdevgm29I+e47VHo6ycB/U1JYDqxSSp0Idow5EZHdQBul1NFgx1Ie\n6ZJ7OSciVYDeREYOwW5vQ61aXi680EWbNmE0awYeT8G7p2hFJjISOnWCTp1wKQV79uBeu5abv/qK\nXtu346xQQXYkJ/Ouz8cKzCqc0lRaK02xlDs6uZdDIlIVM6HfSnh4K9q2zeDqqz20aQMRETqZl1Ii\nUK8e1KuH9OtHhdRU2LiR5t9/T6PPP2d8WhonwsNlYXo6byiltpZsbPI+EAM4geeUUvMAyWM9InIK\nmA1cA/wBPAQ8AdQB7lZKfWBdUc4G2gLpwL1KqS9K6NTKLF0tU06ISDTQl8jIW0lNbcUFF6Rz1VUR\nXHih2eIXwspytUx+KQXbt8Nnn5H26adk+P0c9nqZ7/OxRCn1a3G
/vohEKaWOW+00a4FOwE9Y1TLZ\nrL9UKXVMRPxAF6XUJyLyHuDGTPTNgFeVUueLyFigqVLqdhFpBHwCxOuG5tzpknsIE5FwoAsez3DC\nw/9FmzbpdO6cmdAdwY5PKzoi0KQJNGlC+MiRhG/eTN3PPmPCqlVMiIyUfcnJzPP7eVMptbeYQrhb\nRHpZz2OA+Hys/wFIVUp9Yi3fhDnUg19ENgF1reWXAM8DKKV2iMjvQALmvQJaDnRyDzHW+CttcLmG\n4nAMIDZW0aNHBS67DCIidEIvBwwDWrSAFi1w3nUXbNhA/Kef8siXX/JoRIT8mJTEE8B/i+oGKhHp\nBFwOXKiUShWR1ZjVLyqP9WBWs2TyA6kASiklIjnlJ8lhuRZAJ/cQISIuDOMW3O4HcDor062bg6uv\ntlO7drBD04LIZoM2baBNG1z33AOrV3PJW2/R8s8/SQ0LkxcyMnhZKXXwHF+mInDMStyNgfbWcslj\nfeA22clc9xVwI/CFiCRg1sfvOMeYQ55O7mWciFQmLGw0Dsc9NGtm46abPLRsaV6na1oAhwO6dIEu\nXYjcuZPI997jgdWreTAiQj5NSuJp4H+F7G3zEXCniGzBTLrfWMtVDuu/Ddg3t9fLXDcLmC0iP2OW\n9AcrpdJz3k0D3aBaZolIPZzO+/H7B9OpEwwc6KJevWCHVSqVhwbVwkpMhE8+Qb31FkmnTnHU6+VJ\nv58FSqnkYMemnRud3MsYEWmFxzMJn68LPXoY9O0bTtWqwQ6rVNPJPW9KwcaN8OabJG3YgN/v5+n0\ndJ5XSh0Ldmxa4ejkXgZYjaRX4PFMxjBaMWBAON2724iICHZoZYJO7gWzZw8sWkTKmjUoEV5OTeXx\nIqiX10qYTu6lmNVboC8ez2QiImoxeLCHK64o1Jjm5ZlO7oXz11+weDHejz9GiTA3NZWpetTKskMn\n91JIRGwYxhDCw6cSG+villsiufBCs4+bVm
A6uZ+bw4fhtddOJ/k5VpI/HOy4tNzp5F7KiMgluN3z\nqFUrhrvu8tCsWbBDKvN0ci8amUn+k0/w+Xw8mpHBc/ou0dJLFwVLCRGpIx7P+1So8DFjxzZizhyd\n2LVSpWpVGDsW55w5eJo3Z5LLxW4R6W61CWmljO7nHmQi4iY8/AEcjnu57rowBg4MK4vD6mrlR2ws\nPPMMnh9+wPPMMyxJTGSjiAxTSm0JdmzaGbrkHiRi6o/TuYcLLriXhQvd3HabTuxamdGuHbz+Op4h\nQ2jvcrHW7ZY5IlI52HFpJp3cg0BEWuDxrCUmZgGPPVaF//zHTY0awQ5L0wrMboc+fTCWLMF15ZXc\n7HDwu90uw0VE55Yg0/8BJUhEwsXpnIrL9R3DhrVm4UIPrVoFOyxNO2cVK5r18bNnE1G3Lk+63Xwt\nInXz3lMrLjq5lxARaYXLtYXzzrubV1910aOHYLMFOyxNK1JxcTBnDp4BA2jrcLDFZpOhusE1OHRy\nL2YBpfVvGDOmAU895dbDBWihzGaDm27CPns2npgYnnW7+VJEYoIdV3mjk3sxEpHmZ5XWu3QRPVqj\nVl7ExcH8+Xj69aO9w8E2m01u0aX4kqOTezEQERGb7Xaczu8YPVqX1rVyy26HW24h7MUXiahZkxfd\nbj7VPWpKhk7uRUxEPLhcS6lWbQazZ7vp2lWX1rVyr2FDeOUVPNdcQ0enk60i0jrYMYU6ndyLkIic\nh8u1hQ4durFggUePr65pZ4SFwciRhN9/P1WdTr6y2eSWYMcUynRyLyJisw3C6fyB0aNjeeghl74Z\nSdOyd9llyKxZuCtXZqbbLXOtidy1IqaT+zkSEUOcziepVGk2s2aZ1TCapuUqLg4WLMDdrBkD3W5+\nEJFawY4p1Ojkfg5ExI3bvYK6dYczf76buLhgh6RpZUZEBEyfjrt/f5o6HGwWkUuCHVMo0cm9kESk\nBi7XD7RrdzkvvOChY
sVgh6RpZY5hwODBhD36KJVcLj4WkeuCHVOo0Mm9EESkOU7nz/Trl8C//+3S\nMyNp2rm58EJ47jncHg+v2+1yW7DjCQU6uReQiFyEw/E1995bhSFDwnQ3R00rGvHxMHs2rshInnc4\n5L5gx1PW6eReACJyBU7np0yeHMmVV+qsrmlFrE4dePll3JUqMcnplCf0Ha2Fp5N7PonINbhcK5g+\n3UO7dsEOR9NCVrVq8NJLuGvUYITTyQIR0SPsFYJO7vkgIt1wud7hqafctGwZ7HA0LeRFRcHMmXji\n4ujvcvGuiOhZ4wpIJ/c8iMg1uN1LefppF02bBjscTSs3PB6YMQN3fDxXuVws0FU0BaOTey5EpD1O\n59s8+aSbJk2CHY6mlTvh4fDYY7irV+c6h4PpwY6nLNGXOjkQkSY4HB8zaZJbl9i1c3X4MDz2GBw9\navbtvvZa6NMHTp2CyZPh4EGoXh0mTTJv7snqiSfgu++gUiWYP//M8jlz4PvvzZ4mDzxgLvv0Uzh5\n0jx+KHC74dln8QwbxqiwMPkjPV09F+yYygJdcs+GiMTgdP6Pe+6JpH37YIejhQCbDUaMgIULYeZM\nWL4c9u6FxYuhdWtYtMj8uXhx9vt37Wom+EBJSfDLL2ayt9th925IS4OPP4ZevYr9lEpUVBQ8/zxu\nt5vHDEOuD3Y8ZYFO7lmISDQu11cMGhRF5866jk8rEtHR5rC3AC4XxMaapfmvv4bOnc3lnTvDmjXZ\n79+8+T9L9IYBPp/53Os1E/zSpdC7NyE5g2ONGvDMM7icTl4RkSuDHU9pp5N7ABGx43Z/QJcuNRkw\nQFdZacXir7/g11+haVM4dsxM/GD+PH48/8dxuaBdOxg6FKpUMRsgt2+HDh2KJ+7SoEEDeOwxXE4n\ny0Tk/GDHU5rpBBbI6XyCBg1aMHKkI9ihaKEpJcWsVx81ykzOWft/FLQ/yA03mA+Ap56CIUPg//4P\n
fvzRTIQ33VQ0cZcmLVvC/ffjefxxPhSRxkqpAnwllh+65G4RkT44nXcwZYonJK9ptaDz+czEftVV\ncIk1/mGlSmYjK5g/o6IKd+xffjF/xsTAl1+ar3PggPkIRZddBldfTZTbzZu6i2T2dHLndM+YV5k+\n3a1Hd9SKy+OPQ9260LfvmWUXX2w2gIL5M68qFaWyX/7KK3DrrZCRcWYbw4DU1HOPu7QaORJHtWpc\nYrdzd7BjKY3KfXIXkUiczo8ZM8ZFo0bBDkcLUZs2wapVsH69WUc+bBj88AMMGGBWoQwaBOvWwcCB\n5vZ//w0PPnhm/ylTzKqc/fvh+uvhww/PrFuzBho1MuvsIyLM6pjbboP0dKhfv2TPsySFh8O0aXjC\nwpgqInpMkCxE5VQUKCfE7X6NSy7py4QJzmDHohUPT88r/TOe9hmZvVW00PLVVzBtGoe8XpoopY4G\nO57SolyX3EWkKw7Hddx1l07smlZGdewIXbtS0e1mqa5/P6PcJncRqYTT+ToPP+zG4wl2OJqmnYPh\nw3FUrcpFhsGtwY6ltCi3yR23+2WuvNJDmzbBjkTTtHMUFgYTJuAJC+NZEakc7HhKg3KZ3EWkOy7X\ntYwYofuza1qISEiAzp0Jd7l4NtixlAblLrmLiBOncx4TJrhxuYIdjqZpRWjoUBw2G31FpNwPClXu\nkjthYffSooWH1q2DHYmmaUUsIgLuugun282i8j7BR7lK7iJSA8OYwJgxugVV00LUFVcgcXHUstkY\nFexYgqlcJXfc7ifp3t1O7drBjkTTtGIiAvfdh8du5z8iUiPY8QRLuUnuItIKkT4MHhwe7Fg0TSte\nsbHQpQt2p5OHgh1LsJSb5I7H8zi33OLIdpobTdNCzk034VCK20SkerBjCYZykdxFpDFKXcq115aL\n89U0zRzj/l//wlZe514tH63JbvdE+vWz666Pmha6UlJgxw7Ytg21YQP+HTuwp
aQQbrcbN4rIOKXU\n38GOsSSFfHIXkRgcjuvo3Tvkz1XTyouMDPj9d9i2DX7+Gd+mTRhHjiAVK4b769RpqDp0uMw2dWpv\nLr/8cgYNGpTxzjvvjAIeDXbcJSn0E57TeT/XXCN6nHZNK5uUgj//NKcQ3LwZ/8aNsHcvhstlU9Wr\n1/S3adPB9tRT3ejVqxcRERH/qHqdMGGC67333hsrItOVUiE8wv3ZQjq5i4iL8PBb6d9fDzOgaWXE\n8eNmIt+61axe+fVXbCBUrlzJd955bY0RI66W/v37U6dOHQHynDatadOmtGjRQr7//vsewNvFfwal\nQ0gnd6AH8fE+qpfLxnJNK/W8XnOKwG3bYMMGfNu2YSQlIZUquX0NGjSTa6+93Na3b1/amAP8FXr+\ny5EjR0bu2LFjNDq5h4iIiFH07BkZ7DA0TTPnkN2z56x6cjl0CKNChTB/7dpx6qKLOtkmTuzNVVdd\nhd1uL9KJjK+77jruuOOOdiJSSyn1R1Eeu7QK2eQuIjVxOC44PROxpmklRik4ePDsevI9ezAcDkNV\nq1bD17r1xfapU6+hT58+VKhQodi7KHs8Hvr27etfsmTJYOCx4n690iBkkzuGcSMdO/p190dNK34n\nT5qJfNs21Pr1+H/5BZvfD5UrR2U0adLGdvvtV8n1119PvXr1hCDlnTvuuMO1bNmykVbDasjPLxq6\nyd3tHkbXrjqza1oRS02FX381q1c2bsS3dSvGyZNIpUouX1xcE7nqqsttc+b0o23bthiGUWpyzMUX\nX0x4eHgloDGwLdjxFLdS88YXJRGpSnh4LC1aBDsUTSvTfD7Yu9cslf/8M77Nm5E//8SIjLT7a9Wq\np9q3v9Q2fnxPunTpQnh4eJHWkxc1EaFHjx7GwoULu6CTe5l1FS1apGG36y6QmpZPSsGRI2aJfMsW\n/Bs3onbtwhYebqhq1ar6W7a8yDZxYlf69u1LdHR0mRzK
o3v37s7ly5f3h9CfrSk0k7vH04sOHXQv\nGU3LRWKiebt+Zn/ynTuxpadDdHQFX+PG5xs333yV0b9/f+Lj4/PVn7wsuPzyy0lMTGwtIm6lVHKw\n4ylOIZfcRURwOK7igguCHYqmlRppafDbb2b1yoYNZGzdiu34cSQqyumrW7eRXHrpv2zPPdeHiy++\nGMMwQiKRZ6dixYo0a9bMu27dusuA/wY7nuIUcskdOA+3W0/IoZVbfj/s329Wr2zaZPYn/+MPDI/H\n7q9Zs45q166jffTo7nTr1g2n0xmyiTwnvXr1iti6devV6ORe5lxIixYS7CA0raT8/ffZ9eS//YbN\nbhdVtWoVX4sW7e333deZfv36Ua1atTJZT17U2rZta3g8ng7BjqO4hV5yd7kuolkzPUeqFpKSkmDn\nTrOefONG/Nu3Y0tNhejoSF9CQkujf/8rjP79+9O0adOg9Scv7c4//3ySkpKaiIiEcn/30PvPt9sv\nomHDYEehaecsPR127TLryTduxLdlC8bRo0jFig5/bGy86tDhMtvjj19Hp06dQrqevKjVqFGD8PBw\nw+v1xgD7gh2PiJxSShV5B5CQSu4iIoSF1ScuLtihaFqBKAUHDpjVK5s34/v5Z2T/fgy326Zq1Kjt\nb9v2EtvQod3o2bMnbrdbV6+coxYtWqSvWbOmFSWc3EXEppTyZVlcLFcPIZXcgVqEhSk9drtW2h09\nanZD3LLFvF3/t9+wGYZQpUq0r3nzdsbdd3eWfv36UatWrZDphliaXHTRRe5vv/32fGBlYfYXkYnA\njcAhYD/wI7AKeAlwAb8BtyqlTojIamAD0AFYIiLvA4sBD7Aiy3GfBLoAfmCqUuotEekEPAIcAZoB\nPyqlbs4rxlBL7g2oUSMN883VtFIhJcWsJ7emf/Nt3449ORmioz2+hg2bG717X2Hr168fLVu2hBJK\n5Dt37uT6669HRFBKsWvXLqZMmcK
YMWNOb/PUU0/xxhtvICKkp6ezbds2jhw5QkZGBr179+bEiRP8\n5z//oUePHgD06tWLl156iRo1apTEKZyT+Ph4e2RkZNPC7CsibYHeQHPAAazDTO6LgJFKqTUi8igw\nCRhr7RamlGpn7b8cmKmUekNERgQctw/QQinVXESqAWtF5EtrdSugKfAX8LWIXKyU+ia3OEMtudeg\nShXdU0YLGp8Pdu8+M6zt5s3m9G8VKoT7Y2IaqIsv7mSfPLk3V1xxBTabLWgl8oSEBNavXw+A3+8n\nJiaG3r17n7XNuHHjGDduHAAffPABM2bMICoqihdeeIHhw4dz3XXX0bVrV3r06MHKlStp3bp1mUjs\nAHXq1MHz/GALAAAgAElEQVRms9Uv5O4dgOVKqXQgXURWABFARaXUGmubV4G3AvZZmmX/66znr8Hp\nCbw7AEsAlFKHROQL4ALgFPCDUupPABHZANQDylVyr07VquHBDkIrH7JM/+bbuBHJOv3bE09cS+/e\nvbOd/q20+Oyzz2jQoAF16tTJcZslS5YwYMAAAMLCwkhOTiYlJQW73Y7P5+O5557jgw8+KKmQz1lM\nTAwZGRk1i+hw+SlQJgU8V5ypZ89t38B1gdMD+shH7g6t5G4YNahaVY8noxWLEyfOTP+2fr05/ZtS\nQpUqUb6mTdsaI0aY9eSxsbFlqp586dKlpxN3dlJSUvjoo4+YOXMmAAMHDmTgwIHMmTOHxx9/nFmz\nZjFo0CCcTmdJhXzOqlatSlpaWlQhd/8aeElEpgNhQDfgZeCYiHRQSn0N3Ax8mcv+A4A3MOvtM30F\nDBORRUBloCMwDmhSmCBDK7m7XHWpVElXy2jnLHP6N+t2fd+2bRiJiUhUlNvXoMF5cs015vRvbdu2\nhTKUyLNKT09nxYoVTJ8+PcdtVq5cySWXXEJUlJkLK1SocLqUfvz4caZPn87777/PsGHDOH78OGPH\njqV9+/YlEn
9hVa5cGa/X686h90qulFI/WlUxG4GDwM/ACWAw8LKIuIBdwJDMXbIc4m5gsYjcBywP\nOO77ItLeOq4fGG9Vz2RN7vnqXSOh1IdfKlZcxdixl9OpU7BD0UoRT88r/TOe9hk53f6Qdfq3zZuR\ngwcxIiPD/DEx5vRvPXv2pHPnztjtoVUeWrFiBbNmzeKjjz7KcZvrrruO/v37c8MNN/xj3b333kvP\nnj3ZuXMnDoeDvn370rt371yPV1o4HI70tLS0ykqpUwXdV0Q8SqkkK5H/DxiqlNpQ9FEWXmh9UkVs\nBK+NSisDcp/+rbr//PMvtk2e3JU+ffoQFRVVauvJi0pgXXp2Tpw4wZdffskbb7zxj3W//PILBw4c\n4NJLL2XDhg24XC6UUni93uIMuciIiCJ/9eXZmSMiTTF7yywsbYkdQi25a1p2lJJly2D/fny//ILN\n54MqVaIyGjdubbvtNnP6t7i4uDJVT14UkpOT+eyzz5gzZ87pZS+//DIiwrBhwwBYtmwZnTt3xpXN\ndJUTJ05k6tSpAAwYMIBevXoxffp0pkyZUjIncI4MwwAo1Be4UurGvLcKrtCqlomK+oJx4zrpSbG1\nQI7e3fziTTN8PrOOuXq1aio2NtbfsGFD4hMSjLi4OImNjaVu3brExMTgcOg2+fLA4/GkJicn11JK\nHQ12LMVBl9y1kJf67gpD7n/Qb/z4g+ECTh06JO5Dh2z+H3/kcxF1yO3OOGm3S1JGhpHs9UqEx0Ot\nWrX89erV8zdq3NioX7++UbduXTK/AKKiohDR7fZlnVUtE7JVb6FVcq9YcTXjx1+mS+5atj78kPAn\nniMCjwoj1X+KJNvN4BsDtsxbFdMwuz78BGwBfgH+cDp9x8LDSQIj0esVEaF6tWqqjlX6b9SokS0z\n8cfGxlKrVq2Qa3gNRVbJvbZS6u9gx1IcQiu5V6iwjJEje9K5c7BD0UqrAwdwDL/HV/OURwY
xyFjG\n2/5f2WY0Bv84MK7DbCHLzV5gLWZ/tZ3A7zab/4jb7T9lGEZSerrhTU0lKiqKmNq1/XFxcapR48Zn\nVf3ExsYSERFR3Geq5SIjIwOHw+H3+/3hBe0KWVaEVnJ3OJ5jyJAxZNNlS9NO8/sxJkz0O75fb0xg\nAm1pywIW8AUrfV68tqHgHwlGYe9NT8QcbGQdsBX4VUQddLn8J8LCSPL7jcSUFHGEh1O9Rg1/vbp1\nVXxCAvHx8WeV/qtVq5bZ4KcVg4MHDxIXF5eYnJwcsnMth1ZyF7mPPn3+w6hRYcGORSsDVq7E8ews\nuqquvhEMt4URxg/8wCu87PudXbY24BsHtm4UbeOUH9iBWfXzM2bVz97wcN9Rp1MlihhJqalGekYG\nVSpXVjExMZkNv7a4uDgCG37L0h2hpc3mzZvp2LHj/mPHjuU85kIZF2oVg39x+HAq5i3Bmpa77t1J\nbdWKD0eMlY2JG/zTmGa0ox3taGc7xSnmMMd2Ox/7FenGSPDfAUZRzMxrYN5PftZth2lpNtLSTv96\nBFh78KBsOHjQtv2nn/hCRC11u32n7HZJ8vmMpJQUiYiIoGaNGv64uDh/QqNG/2j4rVSpkm74zcGh\nQ4ew2WxHgh1HcQq1kntnmjZdysyZekB3Lf8yMjAmPOx3rN1kTORhLuKis1Z/wRe8wXzfPvbbLrVK\n81cS3G4WmQ2/64DNwK/AfofDd8LpJFEpI8nrFQVmw2+dOv74hAQSEhJsmck/NjaW2rVrl9uG3zff\nfJNRo0Z9fOTIkS7BjqW4hFpyb0rlyt/xzjshW4+mFaMVK3DMmM216hrfcIbb7FkubI9whJd4Sf3E\nF8qBT+4GbgOpGpxo85TZ8LsJ2A7ssdn8h10u/ymb7UzDb8WK1DYbfv2NGje2xcXFSeAXQGRkaP4p\nTZ48WU2bNu0Zr9c7LtixFJdQS+5h2GxJrFwZRjZ31GlanvbtwzH8Hn
9MUhTTmGZUo9o/NvHj50M+\n5G1e9f3FYds14LsHbJdQ+HvZgyEZs97/dMMvqIMul/94ePjpht/w8HBqVK/ur1u3rj8+Pl7iExLO\navitXr16mWz47d69+6kPPvhghFLq9WDHUlxCKrkDSGTkbzzxRH2aFGqUTE0zq2nun+B3rttiTGQi\n7cl5hMM/+IPZzFQ/8x2V8DMWGAwSCvWCfszG3szS/05gX1iY72+XSyWKGMlpaUZaejqVK1dWMbVr\n+xs0bKgSEhLsgQ2/derUKZUNv3Xq1Dm1f//+jkqpjcGOpbiEYnJ/izvu6Ee3bsEORSvr3n8fx/Nz\n6EF33zCG/aOaJpAfP+/xHst4w/c3x219wHc32NqWYLjBcBQz+a/HrPrZZd7x6zsZ0PDr8XgyG35V\nfEKCNGjQ4KyG3+jo6BJt+PV6vURGRmZkZGREKKVS896jbAq95C4ylu7dpzF2rB4gRDt3e/bgGDHW\nXye5MtOYalQl7xr23/iNl5nt38Y6ozbKPx6MGzBnQy5v0jFL/T9xdsPvcYeDRJCk1FRDKUW1qlVV\nndhYf3x8PPHx8Ua9evUksOE3LKzoOsBt2LCByy67bN/x48dji+ygpVAoJvfLqV//PebPD4UrY600\nyMjANv4Bv2PDNmMSk2hHu3ztlkYaS1jCx7zjO0Gi7SZrqIPzijncsmY/Z+743YF1x6/L5T9psxnJ\nGRlGSkoKFc80/J6+4zew9F+Qht958+Yxfvz4ZceOHeud99ZlVygmdw92+1GWLQvHUx7LSlqxeecd\nHDPn04ue/qEMNWwFGCF4C1uYwyz/r2w1GllDHfQh76EONLPhdx1m1c8WzIbfvwIafpNSUsQeFpbZ\n8Kvi4+PJ2vBbo0aN0w2/ffv2TXr33XfvVkrNC+JpFbuQS+4AUqHCD9x//wV06BDsUPKWmAhPPQW7\nd4MI3HcfHD4MCxfC3r0wezYkJGS/7w03gMcDh
gF2u7ktwJw58P33EB8PDzxgLvv0Uzh5Evr0KZHT\nClm7d+MYNc5fN7kqU/mPUYUqBdrdi5eFLGQ1K3wppNhut4Y6aFBM4WaqB1TE7JsfBvyQZf1x4Fbg\nN8AFLACaYt5M1RtzDrn/AD2s7XsBLwE1ijnu/PBjVvcENvzuDQvzH3W5/IkiRlJampGalnb6jt8t\nW7fi9XobK6V+DWrgxazs9WHKj8TEd/n++7LRUPLii3DhhfDqqzB/PtStC3FxMGUKtGyZ+76GATNm\nwNy5ZxJ7UpI5+ef8+WbC370b0tLg44+hV6/iP59QFxdH6vtLjN9auNUt3MKP/Fig3Z04uZM7Wcp/\nbRN5go9ooJoBHcD3PpBRLEGbf+hfYJZ+syZ2gGnA+ZhVI68CY6zlS4Dh1j7PWstWAq0pHYkdzHNL\nwJxpejrwHvBjerqx6+RJ+6ETJ4yklBQO+Xy8euiQXLRunQ2v9xTm91hIC83krtRHfPNNerDDyFNS\nEmzaBF27mr/bbGZJPDYWYmLMOeFyoxT4/WcvMwxzUlAwZ3m222HpUujdGz0FYREJD8f33DO2pOGD\neJiJzGWu30fBBxa8gAuYxTzb26ykCj1sQwn3VwMeBv/+Ig5ZYZZwc7IVuNx63gj4HTiMWcpPBlIw\nxyrxAc8B9xVxfMUtGugM1AK/Dd5WoVhlkUVoJnfYRGKinz/+CHYcufvzT6hQAR5/HIYNM6tnUgtw\nwSEC48fDnXeCNRs9Lhe0awdDh0KVKuaXxfbtlIkqqrKmf39S58/kXdeHjGKU/28KNyx4BBHcwz28\nw8fGXTzCUmJUPHAV+D4m96ScX2Ie
<TRUNCATED>
[02/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TJSONProtocol.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TJSONProtocol.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TJSONProtocol.py
new file mode 100644
index 0000000..3c1e80e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TJSONProtocol.py
@@ -0,0 +1,552 @@
+#
+# 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.
+#
+
+import base64
+import json
+import math
+
+from thrift.protocol.TProtocol import TType, TProtocolBase, TProtocolException
+
+
+__all__ = ['TJSONProtocol',
+ 'TJSONProtocolFactory',
+ 'TSimpleJSONProtocol',
+ 'TSimpleJSONProtocolFactory']
+
+VERSION = 1
+
+COMMA = ','
+COLON = ':'
+LBRACE = '{'
+RBRACE = '}'
+LBRACKET = '['
+RBRACKET = ']'
+QUOTE = '"'
+BACKSLASH = '\\'
+ZERO = '0'
+
+ESCSEQ = '\\u00'
+ESCAPE_CHAR = '"\\bfnrt'
+ESCAPE_CHAR_VALS = ['"', '\\', '\b', '\f', '\n', '\r', '\t']
+NUMERIC_CHAR = '+-.0123456789Ee'
+
+CTYPES = {TType.BOOL: 'tf',
+ TType.BYTE: 'i8',
+ TType.I16: 'i16',
+ TType.I32: 'i32',
+ TType.I64: 'i64',
+ TType.DOUBLE: 'dbl',
+ TType.STRING: 'str',
+ TType.STRUCT: 'rec',
+ TType.LIST: 'lst',
+ TType.SET: 'set',
+ TType.MAP: 'map'}
+
+JTYPES = {}
+for key in CTYPES.keys():
+ JTYPES[CTYPES[key]] = key
+
+
+class JSONBaseContext(object):
+
+ def __init__(self, protocol):
+ self.protocol = protocol
+ self.first = True
+
+ def doIO(self, function):
+ pass
+
+ def write(self):
+ pass
+
+ def read(self):
+ pass
+
+ def escapeNum(self):
+ return False
+
+ def __str__(self):
+ return self.__class__.__name__
+
+
+class JSONListContext(JSONBaseContext):
+
+ def doIO(self, function):
+ if self.first is True:
+ self.first = False
+ else:
+ function(COMMA)
+
+ def write(self):
+ self.doIO(self.protocol.trans.write)
+
+ def read(self):
+ self.doIO(self.protocol.readJSONSyntaxChar)
+
+
+class JSONPairContext(JSONBaseContext):
+
+ def __init__(self, protocol):
+ super(JSONPairContext, self).__init__(protocol)
+ self.colon = True
+
+ def doIO(self, function):
+ if self.first:
+ self.first = False
+ self.colon = True
+ else:
+ function(COLON if self.colon else COMMA)
+ self.colon = not self.colon
+
+ def write(self):
+ self.doIO(self.protocol.trans.write)
+
+ def read(self):
+ self.doIO(self.protocol.readJSONSyntaxChar)
+
+ def escapeNum(self):
+ return self.colon
+
+ def __str__(self):
+ return '%s, colon=%s' % (self.__class__.__name__, self.colon)
+
+
+class LookaheadReader():
+ hasData = False
+ data = ''
+
+ def __init__(self, protocol):
+ self.protocol = protocol
+
+ def read(self):
+ if self.hasData is True:
+ self.hasData = False
+ else:
+ self.data = self.protocol.trans.read(1)
+ return self.data
+
+ def peek(self):
+ if self.hasData is False:
+ self.data = self.protocol.trans.read(1)
+ self.hasData = True
+ return self.data
+
+class TJSONProtocolBase(TProtocolBase):
+
+ def __init__(self, trans):
+ TProtocolBase.__init__(self, trans)
+ self.resetWriteContext()
+ self.resetReadContext()
+
+ def resetWriteContext(self):
+ self.context = JSONBaseContext(self)
+ self.contextStack = [self.context]
+
+ def resetReadContext(self):
+ self.resetWriteContext()
+ self.reader = LookaheadReader(self)
+
+ def pushContext(self, ctx):
+ self.contextStack.append(ctx)
+ self.context = ctx
+
+ def popContext(self):
+ self.contextStack.pop()
+ if self.contextStack:
+ self.context = self.contextStack[-1]
+ else:
+ self.context = JSONBaseContext(self)
+
+ def writeJSONString(self, string):
+ self.context.write()
+ self.trans.write(json.dumps(string))
+
+ def writeJSONNumber(self, number):
+ self.context.write()
+ jsNumber = str(number)
+ if self.context.escapeNum():
+ jsNumber = "%s%s%s" % (QUOTE, jsNumber, QUOTE)
+ self.trans.write(jsNumber)
+
+ def writeJSONBase64(self, binary):
+ self.context.write()
+ self.trans.write(QUOTE)
+ self.trans.write(base64.b64encode(binary))
+ self.trans.write(QUOTE)
+
+ def writeJSONObjectStart(self):
+ self.context.write()
+ self.trans.write(LBRACE)
+ self.pushContext(JSONPairContext(self))
+
+ def writeJSONObjectEnd(self):
+ self.popContext()
+ self.trans.write(RBRACE)
+
+ def writeJSONArrayStart(self):
+ self.context.write()
+ self.trans.write(LBRACKET)
+ self.pushContext(JSONListContext(self))
+
+ def writeJSONArrayEnd(self):
+ self.popContext()
+ self.trans.write(RBRACKET)
+
+ def readJSONSyntaxChar(self, character):
+ current = self.reader.read()
+ if character != current:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Unexpected character: %s" % current)
+
+ def readJSONString(self, skipContext):
+ string = []
+ if skipContext is False:
+ self.context.read()
+ self.readJSONSyntaxChar(QUOTE)
+ while True:
+ character = self.reader.read()
+ if character == QUOTE:
+ break
+ if character == ESCSEQ[0]:
+ character = self.reader.read()
+ if character == ESCSEQ[1]:
+ self.readJSONSyntaxChar(ZERO)
+ self.readJSONSyntaxChar(ZERO)
+ character = json.JSONDecoder().decode('"\u00%s"' % self.trans.read(2))
+ else:
+ off = ESCAPE_CHAR.find(character)
+ if off == -1:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Expected control char")
+ character = ESCAPE_CHAR_VALS[off]
+ string.append(character)
+ return ''.join(string)
+
+ def isJSONNumeric(self, character):
+ return (True if NUMERIC_CHAR.find(character) != - 1 else False)
+
+ def readJSONQuotes(self):
+ if (self.context.escapeNum()):
+ self.readJSONSyntaxChar(QUOTE)
+
+ def readJSONNumericChars(self):
+ numeric = []
+ while True:
+ character = self.reader.peek()
+ if self.isJSONNumeric(character) is False:
+ break
+ numeric.append(self.reader.read())
+ return ''.join(numeric)
+
+ def readJSONInteger(self):
+ self.context.read()
+ self.readJSONQuotes()
+ numeric = self.readJSONNumericChars()
+ self.readJSONQuotes()
+ try:
+ return int(numeric)
+ except ValueError:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Bad data encounted in numeric data")
+
+ def readJSONDouble(self):
+ self.context.read()
+ if self.reader.peek() == QUOTE:
+ string = self.readJSONString(True)
+ try:
+ double = float(string)
+ if (self.context.escapeNum is False and
+ not math.isinf(double) and
+ not math.isnan(double)):
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Numeric data unexpectedly quoted")
+ return double
+ except ValueError:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Bad data encounted in numeric data")
+ else:
+ if self.context.escapeNum() is True:
+ self.readJSONSyntaxChar(QUOTE)
+ try:
+ return float(self.readJSONNumericChars())
+ except ValueError:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Bad data encounted in numeric data")
+
+ def readJSONBase64(self):
+ string = self.readJSONString(False)
+ return base64.b64decode(string)
+
+ def readJSONObjectStart(self):
+ self.context.read()
+ self.readJSONSyntaxChar(LBRACE)
+ self.pushContext(JSONPairContext(self))
+
+ def readJSONObjectEnd(self):
+ self.readJSONSyntaxChar(RBRACE)
+ self.popContext()
+
+ def readJSONArrayStart(self):
+ self.context.read()
+ self.readJSONSyntaxChar(LBRACKET)
+ self.pushContext(JSONListContext(self))
+
+ def readJSONArrayEnd(self):
+ self.readJSONSyntaxChar(RBRACKET)
+ self.popContext()
+
+
+class TJSONProtocol(TJSONProtocolBase):
+
+ def readMessageBegin(self):
+ self.resetReadContext()
+ self.readJSONArrayStart()
+ if self.readJSONInteger() != VERSION:
+ raise TProtocolException(TProtocolException.BAD_VERSION,
+ "Message contained bad version.")
+ name = self.readJSONString(False)
+ typen = self.readJSONInteger()
+ seqid = self.readJSONInteger()
+ return (name, typen, seqid)
+
+ def readMessageEnd(self):
+ self.readJSONArrayEnd()
+
+ def readStructBegin(self):
+ self.readJSONObjectStart()
+
+ def readStructEnd(self):
+ self.readJSONObjectEnd()
+
+ def readFieldBegin(self):
+ character = self.reader.peek()
+ ttype = 0
+ id = 0
+ if character == RBRACE:
+ ttype = TType.STOP
+ else:
+ id = self.readJSONInteger()
+ self.readJSONObjectStart()
+ ttype = JTYPES[self.readJSONString(False)]
+ return (None, ttype, id)
+
+ def readFieldEnd(self):
+ self.readJSONObjectEnd()
+
+ def readMapBegin(self):
+ self.readJSONArrayStart()
+ keyType = JTYPES[self.readJSONString(False)]
+ valueType = JTYPES[self.readJSONString(False)]
+ size = self.readJSONInteger()
+ self.readJSONObjectStart()
+ return (keyType, valueType, size)
+
+ def readMapEnd(self):
+ self.readJSONObjectEnd()
+ self.readJSONArrayEnd()
+
+ def readCollectionBegin(self):
+ self.readJSONArrayStart()
+ elemType = JTYPES[self.readJSONString(False)]
+ size = self.readJSONInteger()
+ return (elemType, size)
+ readListBegin = readCollectionBegin
+ readSetBegin = readCollectionBegin
+
+ def readCollectionEnd(self):
+ self.readJSONArrayEnd()
+ readSetEnd = readCollectionEnd
+ readListEnd = readCollectionEnd
+
+ def readBool(self):
+ return (False if self.readJSONInteger() == 0 else True)
+
+ def readNumber(self):
+ return self.readJSONInteger()
+ readByte = readNumber
+ readI16 = readNumber
+ readI32 = readNumber
+ readI64 = readNumber
+
+ def readDouble(self):
+ return self.readJSONDouble()
+
+ def readString(self):
+ return self.readJSONString(False)
+
+ def readBinary(self):
+ return self.readJSONBase64()
+
+ def writeMessageBegin(self, name, request_type, seqid):
+ self.resetWriteContext()
+ self.writeJSONArrayStart()
+ self.writeJSONNumber(VERSION)
+ self.writeJSONString(name)
+ self.writeJSONNumber(request_type)
+ self.writeJSONNumber(seqid)
+
+ def writeMessageEnd(self):
+ self.writeJSONArrayEnd()
+
+ def writeStructBegin(self, name):
+ self.writeJSONObjectStart()
+
+ def writeStructEnd(self):
+ self.writeJSONObjectEnd()
+
+ def writeFieldBegin(self, name, ttype, id):
+ self.writeJSONNumber(id)
+ self.writeJSONObjectStart()
+ self.writeJSONString(CTYPES[ttype])
+
+ def writeFieldEnd(self):
+ self.writeJSONObjectEnd()
+
+ def writeFieldStop(self):
+ pass
+
+ def writeMapBegin(self, ktype, vtype, size):
+ self.writeJSONArrayStart()
+ self.writeJSONString(CTYPES[ktype])
+ self.writeJSONString(CTYPES[vtype])
+ self.writeJSONNumber(size)
+ self.writeJSONObjectStart()
+
+ def writeMapEnd(self):
+ self.writeJSONObjectEnd()
+ self.writeJSONArrayEnd()
+
+ def writeListBegin(self, etype, size):
+ self.writeJSONArrayStart()
+ self.writeJSONString(CTYPES[etype])
+ self.writeJSONNumber(size)
+
+ def writeListEnd(self):
+ self.writeJSONArrayEnd()
+
+ def writeSetBegin(self, etype, size):
+ self.writeJSONArrayStart()
+ self.writeJSONString(CTYPES[etype])
+ self.writeJSONNumber(size)
+
+ def writeSetEnd(self):
+ self.writeJSONArrayEnd()
+
+ def writeBool(self, boolean):
+ self.writeJSONNumber(1 if boolean is True else 0)
+
+ def writeInteger(self, integer):
+ self.writeJSONNumber(integer)
+ writeByte = writeInteger
+ writeI16 = writeInteger
+ writeI32 = writeInteger
+ writeI64 = writeInteger
+
+ def writeDouble(self, dbl):
+ self.writeJSONNumber(dbl)
+
+ def writeString(self, string):
+ self.writeJSONString(string)
+
+ def writeBinary(self, binary):
+ self.writeJSONBase64(binary)
+
+
+class TJSONProtocolFactory:
+
+ def getProtocol(self, trans):
+ return TJSONProtocol(trans)
+
+
+class TSimpleJSONProtocol(TJSONProtocolBase):
+ """Simple, readable, write-only JSON protocol.
+
+ Useful for interacting with scripting languages.
+ """
+
+ def readMessageBegin(self):
+ raise NotImplementedError()
+
+ def readMessageEnd(self):
+ raise NotImplementedError()
+
+ def readStructBegin(self):
+ raise NotImplementedError()
+
+ def readStructEnd(self):
+ raise NotImplementedError()
+
+ def writeMessageBegin(self, name, request_type, seqid):
+ self.resetWriteContext()
+
+ def writeMessageEnd(self):
+ pass
+
+ def writeStructBegin(self, name):
+ self.writeJSONObjectStart()
+
+ def writeStructEnd(self):
+ self.writeJSONObjectEnd()
+
+ def writeFieldBegin(self, name, ttype, fid):
+ self.writeJSONString(name)
+
+ def writeFieldEnd(self):
+ pass
+
+ def writeMapBegin(self, ktype, vtype, size):
+ self.writeJSONObjectStart()
+
+ def writeMapEnd(self):
+ self.writeJSONObjectEnd()
+
+ def _writeCollectionBegin(self, etype, size):
+ self.writeJSONArrayStart()
+
+ def _writeCollectionEnd(self):
+ self.writeJSONArrayEnd()
+ writeListBegin = _writeCollectionBegin
+ writeListEnd = _writeCollectionEnd
+ writeSetBegin = _writeCollectionBegin
+ writeSetEnd = _writeCollectionEnd
+
+ def writeInteger(self, integer):
+ self.writeJSONNumber(integer)
+ writeByte = writeInteger
+ writeI16 = writeInteger
+ writeI32 = writeInteger
+ writeI64 = writeInteger
+
+ def writeBool(self, boolean):
+ self.writeJSONNumber(1 if boolean is True else 0)
+
+ def writeDouble(self, dbl):
+ self.writeJSONNumber(dbl)
+
+ def writeString(self, string):
+ self.writeJSONString(string)
+
+ def writeBinary(self, binary):
+ self.writeJSONBase64(binary)
+
+
+class TSimpleJSONProtocolFactory(object):
+
+ def getProtocol(self, trans):
+ return TSimpleJSONProtocol(trans)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.py
new file mode 100644
index 0000000..dc2b095
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.py
@@ -0,0 +1,406 @@
+#
+# 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.
+#
+
+from thrift.Thrift import *
+
+
+class TProtocolException(TException):
+ """Custom Protocol Exception class"""
+
+ UNKNOWN = 0
+ INVALID_DATA = 1
+ NEGATIVE_SIZE = 2
+ SIZE_LIMIT = 3
+ BAD_VERSION = 4
+
+ def __init__(self, type=UNKNOWN, message=None):
+ TException.__init__(self, message)
+ self.type = type
+
+
+class TProtocolBase:
+ """Base class for Thrift protocol driver."""
+
+ def __init__(self, trans):
+ self.trans = trans
+
+ def writeMessageBegin(self, name, ttype, seqid):
+ pass
+
+ def writeMessageEnd(self):
+ pass
+
+ def writeStructBegin(self, name):
+ pass
+
+ def writeStructEnd(self):
+ pass
+
+ def writeFieldBegin(self, name, ttype, fid):
+ pass
+
+ def writeFieldEnd(self):
+ pass
+
+ def writeFieldStop(self):
+ pass
+
+ def writeMapBegin(self, ktype, vtype, size):
+ pass
+
+ def writeMapEnd(self):
+ pass
+
+ def writeListBegin(self, etype, size):
+ pass
+
+ def writeListEnd(self):
+ pass
+
+ def writeSetBegin(self, etype, size):
+ pass
+
+ def writeSetEnd(self):
+ pass
+
+ def writeBool(self, bool_val):
+ pass
+
+ def writeByte(self, byte):
+ pass
+
+ def writeI16(self, i16):
+ pass
+
+ def writeI32(self, i32):
+ pass
+
+ def writeI64(self, i64):
+ pass
+
+ def writeDouble(self, dub):
+ pass
+
+ def writeString(self, str_val):
+ pass
+
+ def readMessageBegin(self):
+ pass
+
+ def readMessageEnd(self):
+ pass
+
+ def readStructBegin(self):
+ pass
+
+ def readStructEnd(self):
+ pass
+
+ def readFieldBegin(self):
+ pass
+
+ def readFieldEnd(self):
+ pass
+
+ def readMapBegin(self):
+ pass
+
+ def readMapEnd(self):
+ pass
+
+ def readListBegin(self):
+ pass
+
+ def readListEnd(self):
+ pass
+
+ def readSetBegin(self):
+ pass
+
+ def readSetEnd(self):
+ pass
+
+ def readBool(self):
+ pass
+
+ def readByte(self):
+ pass
+
+ def readI16(self):
+ pass
+
+ def readI32(self):
+ pass
+
+ def readI64(self):
+ pass
+
+ def readDouble(self):
+ pass
+
+ def readString(self):
+ pass
+
+ def skip(self, ttype):
+ if ttype == TType.STOP:
+ return
+ elif ttype == TType.BOOL:
+ self.readBool()
+ elif ttype == TType.BYTE:
+ self.readByte()
+ elif ttype == TType.I16:
+ self.readI16()
+ elif ttype == TType.I32:
+ self.readI32()
+ elif ttype == TType.I64:
+ self.readI64()
+ elif ttype == TType.DOUBLE:
+ self.readDouble()
+ elif ttype == TType.STRING:
+ self.readString()
+ elif ttype == TType.STRUCT:
+ name = self.readStructBegin()
+ while True:
+ (name, ttype, id) = self.readFieldBegin()
+ if ttype == TType.STOP:
+ break
+ self.skip(ttype)
+ self.readFieldEnd()
+ self.readStructEnd()
+ elif ttype == TType.MAP:
+ (ktype, vtype, size) = self.readMapBegin()
+ for i in xrange(size):
+ self.skip(ktype)
+ self.skip(vtype)
+ self.readMapEnd()
+ elif ttype == TType.SET:
+ (etype, size) = self.readSetBegin()
+ for i in xrange(size):
+ self.skip(etype)
+ self.readSetEnd()
+ elif ttype == TType.LIST:
+ (etype, size) = self.readListBegin()
+ for i in xrange(size):
+ self.skip(etype)
+ self.readListEnd()
+
+ # tuple of: ( 'reader method' name, is_container bool, 'writer_method' name )
+ _TTYPE_HANDLERS = (
+ (None, None, False), # 0 TType.STOP
+ (None, None, False), # 1 TType.VOID # TODO: handle void?
+ ('readBool', 'writeBool', False), # 2 TType.BOOL
+ ('readByte', 'writeByte', False), # 3 TType.BYTE and I08
+ ('readDouble', 'writeDouble', False), # 4 TType.DOUBLE
+ (None, None, False), # 5 undefined
+ ('readI16', 'writeI16', False), # 6 TType.I16
+ (None, None, False), # 7 undefined
+ ('readI32', 'writeI32', False), # 8 TType.I32
+ (None, None, False), # 9 undefined
+ ('readI64', 'writeI64', False), # 10 TType.I64
+ ('readString', 'writeString', False), # 11 TType.STRING and UTF7
+ ('readContainerStruct', 'writeContainerStruct', True), # 12 *.STRUCT
+ ('readContainerMap', 'writeContainerMap', True), # 13 TType.MAP
+ ('readContainerSet', 'writeContainerSet', True), # 14 TType.SET
+ ('readContainerList', 'writeContainerList', True), # 15 TType.LIST
+ (None, None, False), # 16 TType.UTF8 # TODO: handle utf8 types?
+ (None, None, False) # 17 TType.UTF16 # TODO: handle utf16 types?
+ )
+
+ def readFieldByTType(self, ttype, spec):
+ try:
+ (r_handler, w_handler, is_container) = self._TTYPE_HANDLERS[ttype]
+ except IndexError:
+ raise TProtocolException(type=TProtocolException.INVALID_DATA,
+ message='Invalid field type %d' % (ttype))
+ if r_handler is None:
+ raise TProtocolException(type=TProtocolException.INVALID_DATA,
+ message='Invalid field type %d' % (ttype))
+ reader = getattr(self, r_handler)
+ if not is_container:
+ return reader()
+ return reader(spec)
+
+ def readContainerList(self, spec):
+ results = []
+ ttype, tspec = spec[0], spec[1]
+ r_handler = self._TTYPE_HANDLERS[ttype][0]
+ reader = getattr(self, r_handler)
+ (list_type, list_len) = self.readListBegin()
+ if tspec is None:
+ # list values are simple types
+ for idx in xrange(list_len):
+ results.append(reader())
+ else:
+ # this is like an inlined readFieldByTType
+ container_reader = self._TTYPE_HANDLERS[list_type][0]
+ val_reader = getattr(self, container_reader)
+ for idx in xrange(list_len):
+ val = val_reader(tspec)
+ results.append(val)
+ self.readListEnd()
+ return results
+
+ def readContainerSet(self, spec):
+ results = set()
+ ttype, tspec = spec[0], spec[1]
+ r_handler = self._TTYPE_HANDLERS[ttype][0]
+ reader = getattr(self, r_handler)
+ (set_type, set_len) = self.readSetBegin()
+ if tspec is None:
+ # set members are simple types
+ for idx in xrange(set_len):
+ results.add(reader())
+ else:
+ container_reader = self._TTYPE_HANDLERS[set_type][0]
+ val_reader = getattr(self, container_reader)
+ for idx in xrange(set_len):
+ results.add(val_reader(tspec))
+ self.readSetEnd()
+ return results
+
+ def readContainerStruct(self, spec):
+ (obj_class, obj_spec) = spec
+ obj = obj_class()
+ obj.read(self)
+ return obj
+
+ def readContainerMap(self, spec):
+ results = dict()
+ key_ttype, key_spec = spec[0], spec[1]
+ val_ttype, val_spec = spec[2], spec[3]
+ (map_ktype, map_vtype, map_len) = self.readMapBegin()
+ # TODO: compare types we just decoded with thrift_spec and
+ # abort/skip if types disagree
+ key_reader = getattr(self, self._TTYPE_HANDLERS[key_ttype][0])
+ val_reader = getattr(self, self._TTYPE_HANDLERS[val_ttype][0])
+ # list values are simple types
+ for idx in xrange(map_len):
+ if key_spec is None:
+ k_val = key_reader()
+ else:
+ k_val = self.readFieldByTType(key_ttype, key_spec)
+ if val_spec is None:
+ v_val = val_reader()
+ else:
+ v_val = self.readFieldByTType(val_ttype, val_spec)
+ # this raises a TypeError with unhashable keys types
+ # i.e. this fails: d=dict(); d[[0,1]] = 2
+ results[k_val] = v_val
+ self.readMapEnd()
+ return results
+
+ def readStruct(self, obj, thrift_spec):
+ self.readStructBegin()
+ while True:
+ (fname, ftype, fid) = self.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ try:
+ field = thrift_spec[fid]
+ except IndexError:
+ self.skip(ftype)
+ else:
+ if field is not None and ftype == field[1]:
+ fname = field[2]
+ fspec = field[3]
+ val = self.readFieldByTType(ftype, fspec)
+ setattr(obj, fname, val)
+ else:
+ self.skip(ftype)
+ self.readFieldEnd()
+ self.readStructEnd()
+
+ def writeContainerStruct(self, val, spec):
+ val.write(self)
+
+ def writeContainerList(self, val, spec):
+ self.writeListBegin(spec[0], len(val))
+ r_handler, w_handler, is_container = self._TTYPE_HANDLERS[spec[0]]
+ e_writer = getattr(self, w_handler)
+ if not is_container:
+ for elem in val:
+ e_writer(elem)
+ else:
+ for elem in val:
+ e_writer(elem, spec[1])
+ self.writeListEnd()
+
+ def writeContainerSet(self, val, spec):
+ self.writeSetBegin(spec[0], len(val))
+ r_handler, w_handler, is_container = self._TTYPE_HANDLERS[spec[0]]
+ e_writer = getattr(self, w_handler)
+ if not is_container:
+ for elem in val:
+ e_writer(elem)
+ else:
+ for elem in val:
+ e_writer(elem, spec[1])
+ self.writeSetEnd()
+
+ def writeContainerMap(self, val, spec):
+ k_type = spec[0]
+ v_type = spec[2]
+ ignore, ktype_name, k_is_container = self._TTYPE_HANDLERS[k_type]
+ ignore, vtype_name, v_is_container = self._TTYPE_HANDLERS[v_type]
+ k_writer = getattr(self, ktype_name)
+ v_writer = getattr(self, vtype_name)
+ self.writeMapBegin(k_type, v_type, len(val))
+ for m_key, m_val in val.iteritems():
+ if not k_is_container:
+ k_writer(m_key)
+ else:
+ k_writer(m_key, spec[1])
+ if not v_is_container:
+ v_writer(m_val)
+ else:
+ v_writer(m_val, spec[3])
+ self.writeMapEnd()
+
+ def writeStruct(self, obj, thrift_spec):
+ self.writeStructBegin(obj.__class__.__name__)
+ for field in thrift_spec:
+ if field is None:
+ continue
+ fname = field[2]
+ val = getattr(obj, fname)
+ if val is None:
+ # skip writing out unset fields
+ continue
+ fid = field[0]
+ ftype = field[1]
+ fspec = field[3]
+ # get the writer method for this value
+ self.writeFieldBegin(fname, ftype, fid)
+ self.writeFieldByTType(ftype, val, fspec)
+ self.writeFieldEnd()
+ self.writeFieldStop()
+ self.writeStructEnd()
+
+ def writeFieldByTType(self, ttype, val, spec):
+ r_handler, w_handler, is_container = self._TTYPE_HANDLERS[ttype]
+ writer = getattr(self, w_handler)
+ if is_container:
+ writer(val, spec)
+ else:
+ writer(val)
+
+
+class TProtocolFactory:
+ def getProtocol(self, trans):
+ pass
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc
new file mode 100644
index 0000000..4e8a9e4
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TProtocol.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.py
new file mode 100644
index 0000000..7eefb45
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.py
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+__all__ = ['fastbinary', 'TBase', 'TBinaryProtocol', 'TCompactProtocol', 'TJSONProtocol', 'TProtocol']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc
new file mode 100644
index 0000000..caaf521
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/fastbinary.c
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/fastbinary.c b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/fastbinary.c
new file mode 100644
index 0000000..2ce5660
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/fastbinary.c
@@ -0,0 +1,1219 @@
+/*
+ * 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.
+ */
+
+#include <Python.h>
+#include "cStringIO.h"
+#include <stdint.h>
+#ifndef _WIN32
+# include <stdbool.h>
+# include <netinet/in.h>
+#else
+# include <WinSock2.h>
+# pragma comment (lib, "ws2_32.lib")
+# define BIG_ENDIAN (4321)
+# define LITTLE_ENDIAN (1234)
+# define BYTE_ORDER LITTLE_ENDIAN
+# if defined(_MSC_VER) && _MSC_VER < 1600
+ typedef int _Bool;
+# define bool _Bool
+# define false 0
+# define true 1
+# endif
+# define inline __inline
+#endif
+
+/* Fix endianness issues on Solaris */
+#if defined (__SVR4) && defined (__sun)
+ #if defined(__i386) && !defined(__i386__)
+ #define __i386__
+ #endif
+
+ #ifndef BIG_ENDIAN
+ #define BIG_ENDIAN (4321)
+ #endif
+ #ifndef LITTLE_ENDIAN
+ #define LITTLE_ENDIAN (1234)
+ #endif
+
+ /* I386 is LE, even on Solaris */
+ #if !defined(BYTE_ORDER) && defined(__i386__)
+ #define BYTE_ORDER LITTLE_ENDIAN
+ #endif
+#endif
+
+// TODO(dreiss): defval appears to be unused. Look into removing it.
+// TODO(dreiss): Make parse_spec_args recursive, and cache the output
+// permanently in the object. (Malloc and orphan.)
+// TODO(dreiss): Why do we need cStringIO for reading, why not just char*?
+// Can cStringIO let us work with a BufferedTransport?
+// TODO(dreiss): Don't ignore the rv from cwrite (maybe).
+
+/* ====== BEGIN UTILITIES ====== */
+
+#define INIT_OUTBUF_SIZE 128
+
+// Stolen out of TProtocol.h.
+// It would be a huge pain to have both get this from one place.
+typedef enum TType {
+ T_STOP = 0,
+ T_VOID = 1,
+ T_BOOL = 2,
+ T_BYTE = 3,
+ T_I08 = 3,
+ T_I16 = 6,
+ T_I32 = 8,
+ T_U64 = 9,
+ T_I64 = 10,
+ T_DOUBLE = 4,
+ T_STRING = 11,
+ T_UTF7 = 11,
+ T_STRUCT = 12,
+ T_MAP = 13,
+ T_SET = 14,
+ T_LIST = 15,
+ T_UTF8 = 16,
+ T_UTF16 = 17
+} TType;
+
+#ifndef __BYTE_ORDER
+# if defined(BYTE_ORDER) && defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN)
+# define __BYTE_ORDER BYTE_ORDER
+# define __LITTLE_ENDIAN LITTLE_ENDIAN
+# define __BIG_ENDIAN BIG_ENDIAN
+# else
+# error "Cannot determine endianness"
+# endif
+#endif
+
+// Same comment as the enum. Sorry.
+#if __BYTE_ORDER == __BIG_ENDIAN
+# define ntohll(n) (n)
+# define htonll(n) (n)
+#elif __BYTE_ORDER == __LITTLE_ENDIAN
+# if defined(__GNUC__) && defined(__GLIBC__)
+# include <byteswap.h>
+# define ntohll(n) bswap_64(n)
+# define htonll(n) bswap_64(n)
+# else /* GNUC & GLIBC */
+# define ntohll(n) ( (((unsigned long long)ntohl(n)) << 32) + ntohl(n >> 32) )
+# define htonll(n) ( (((unsigned long long)htonl(n)) << 32) + htonl(n >> 32) )
+# endif /* GNUC & GLIBC */
+#else /* __BYTE_ORDER */
+# error "Can't define htonll or ntohll!"
+#endif
+
+// Doing a benchmark shows that interning actually makes a difference, amazingly.
+#define INTERN_STRING(value) _intern_ ## value
+
+#define INT_CONV_ERROR_OCCURRED(v) ( ((v) == -1) && PyErr_Occurred() )
+#define CHECK_RANGE(v, min, max) ( ((v) <= (max)) && ((v) >= (min)) )
+
+// Py_ssize_t was not defined before Python 2.5
+#if (PY_VERSION_HEX < 0x02050000)
+typedef int Py_ssize_t;
+#endif
+
+/**
+ * A cache of the spec_args for a set or list,
+ * so we don't have to keep calling PyTuple_GET_ITEM.
+ */
+typedef struct {
+ TType element_type;
+ PyObject* typeargs;
+} SetListTypeArgs;
+
+/**
+ * A cache of the spec_args for a map,
+ * so we don't have to keep calling PyTuple_GET_ITEM.
+ */
+typedef struct {
+ TType ktag;
+ TType vtag;
+ PyObject* ktypeargs;
+ PyObject* vtypeargs;
+} MapTypeArgs;
+
+/**
+ * A cache of the spec_args for a struct,
+ * so we don't have to keep calling PyTuple_GET_ITEM.
+ */
+typedef struct {
+ PyObject* klass;
+ PyObject* spec;
+} StructTypeArgs;
+
+/**
+ * A cache of the item spec from a struct specification,
+ * so we don't have to keep calling PyTuple_GET_ITEM.
+ */
+typedef struct {
+ int tag;
+ TType type;
+ PyObject* attrname;
+ PyObject* typeargs;
+ PyObject* defval;
+} StructItemSpec;
+
+/**
+ * A cache of the two key attributes of a CReadableTransport,
+ * so we don't have to keep calling PyObject_GetAttr.
+ */
+typedef struct {
+ PyObject* stringiobuf;
+ PyObject* refill_callable;
+} DecodeBuffer;
+
+/** Pointer to interned string to speed up attribute lookup. */
+static PyObject* INTERN_STRING(cstringio_buf);
+/** Pointer to interned string to speed up attribute lookup. */
+static PyObject* INTERN_STRING(cstringio_refill);
+
+static inline bool
+check_ssize_t_32(Py_ssize_t len) {
+ // error from getting the int
+ if (INT_CONV_ERROR_OCCURRED(len)) {
+ return false;
+ }
+ if (!CHECK_RANGE(len, 0, INT32_MAX)) {
+ PyErr_SetString(PyExc_OverflowError, "string size out of range");
+ return false;
+ }
+ return true;
+}
+
+static inline bool
+parse_pyint(PyObject* o, int32_t* ret, int32_t min, int32_t max) {
+ long val = PyInt_AsLong(o);
+
+ if (INT_CONV_ERROR_OCCURRED(val)) {
+ return false;
+ }
+ if (!CHECK_RANGE(val, min, max)) {
+ PyErr_SetString(PyExc_OverflowError, "int out of range");
+ return false;
+ }
+
+ *ret = (int32_t) val;
+ return true;
+}
+
+
+/* --- FUNCTIONS TO PARSE STRUCT SPECIFICATOINS --- */
+
+static bool
+parse_set_list_args(SetListTypeArgs* dest, PyObject* typeargs) {
+ if (PyTuple_Size(typeargs) != 2) {
+ PyErr_SetString(PyExc_TypeError, "expecting tuple of size 2 for list/set type args");
+ return false;
+ }
+
+ dest->element_type = PyInt_AsLong(PyTuple_GET_ITEM(typeargs, 0));
+ if (INT_CONV_ERROR_OCCURRED(dest->element_type)) {
+ return false;
+ }
+
+ dest->typeargs = PyTuple_GET_ITEM(typeargs, 1);
+
+ return true;
+}
+
+static bool
+parse_map_args(MapTypeArgs* dest, PyObject* typeargs) {
+ if (PyTuple_Size(typeargs) != 4) {
+ PyErr_SetString(PyExc_TypeError, "expecting 4 arguments for typeargs to map");
+ return false;
+ }
+
+ dest->ktag = PyInt_AsLong(PyTuple_GET_ITEM(typeargs, 0));
+ if (INT_CONV_ERROR_OCCURRED(dest->ktag)) {
+ return false;
+ }
+
+ dest->vtag = PyInt_AsLong(PyTuple_GET_ITEM(typeargs, 2));
+ if (INT_CONV_ERROR_OCCURRED(dest->vtag)) {
+ return false;
+ }
+
+ dest->ktypeargs = PyTuple_GET_ITEM(typeargs, 1);
+ dest->vtypeargs = PyTuple_GET_ITEM(typeargs, 3);
+
+ return true;
+}
+
+static bool
+parse_struct_args(StructTypeArgs* dest, PyObject* typeargs) {
+ if (PyTuple_Size(typeargs) != 2) {
+ PyErr_SetString(PyExc_TypeError, "expecting tuple of size 2 for struct args");
+ return false;
+ }
+
+ dest->klass = PyTuple_GET_ITEM(typeargs, 0);
+ dest->spec = PyTuple_GET_ITEM(typeargs, 1);
+
+ return true;
+}
+
+static int
+parse_struct_item_spec(StructItemSpec* dest, PyObject* spec_tuple) {
+
+ // i'd like to use ParseArgs here, but it seems to be a bottleneck.
+ if (PyTuple_Size(spec_tuple) != 5) {
+ PyErr_SetString(PyExc_TypeError, "expecting 5 arguments for spec tuple");
+ return false;
+ }
+
+ dest->tag = PyInt_AsLong(PyTuple_GET_ITEM(spec_tuple, 0));
+ if (INT_CONV_ERROR_OCCURRED(dest->tag)) {
+ return false;
+ }
+
+ dest->type = PyInt_AsLong(PyTuple_GET_ITEM(spec_tuple, 1));
+ if (INT_CONV_ERROR_OCCURRED(dest->type)) {
+ return false;
+ }
+
+ dest->attrname = PyTuple_GET_ITEM(spec_tuple, 2);
+ dest->typeargs = PyTuple_GET_ITEM(spec_tuple, 3);
+ dest->defval = PyTuple_GET_ITEM(spec_tuple, 4);
+ return true;
+}
+
+/* ====== END UTILITIES ====== */
+
+
+/* ====== BEGIN WRITING FUNCTIONS ====== */
+
+/* --- LOW-LEVEL WRITING FUNCTIONS --- */
+
+static void writeByte(PyObject* outbuf, int8_t val) {
+ int8_t net = val;
+ PycStringIO->cwrite(outbuf, (char*)&net, sizeof(int8_t));
+}
+
+static void writeI16(PyObject* outbuf, int16_t val) {
+ int16_t net = (int16_t)htons(val);
+ PycStringIO->cwrite(outbuf, (char*)&net, sizeof(int16_t));
+}
+
+static void writeI32(PyObject* outbuf, int32_t val) {
+ int32_t net = (int32_t)htonl(val);
+ PycStringIO->cwrite(outbuf, (char*)&net, sizeof(int32_t));
+}
+
+static void writeI64(PyObject* outbuf, int64_t val) {
+ int64_t net = (int64_t)htonll(val);
+ PycStringIO->cwrite(outbuf, (char*)&net, sizeof(int64_t));
+}
+
+static void writeDouble(PyObject* outbuf, double dub) {
+ // Unfortunately, bitwise_cast doesn't work in C. Bad C!
+ union {
+ double f;
+ int64_t t;
+ } transfer;
+ transfer.f = dub;
+ writeI64(outbuf, transfer.t);
+}
+
+
+/* --- MAIN RECURSIVE OUTPUT FUCNTION -- */
+
+static int
+output_val(PyObject* output, PyObject* value, TType type, PyObject* typeargs) {
+ /*
+ * Refcounting Strategy:
+ *
+ * We assume that elements of the thrift_spec tuple are not going to be
+ * mutated, so we don't ref count those at all. Other than that, we try to
+ * keep a reference to all the user-created objects while we work with them.
+ * output_val assumes that a reference is already held. The *caller* is
+ * responsible for handling references
+ */
+
+ switch (type) {
+
+ case T_BOOL: {
+ int v = PyObject_IsTrue(value);
+ if (v == -1) {
+ return false;
+ }
+
+ writeByte(output, (int8_t) v);
+ break;
+ }
+ case T_I08: {
+ int32_t val;
+
+ if (!parse_pyint(value, &val, INT8_MIN, INT8_MAX)) {
+ return false;
+ }
+
+ writeByte(output, (int8_t) val);
+ break;
+ }
+ case T_I16: {
+ int32_t val;
+
+ if (!parse_pyint(value, &val, INT16_MIN, INT16_MAX)) {
+ return false;
+ }
+
+ writeI16(output, (int16_t) val);
+ break;
+ }
+ case T_I32: {
+ int32_t val;
+
+ if (!parse_pyint(value, &val, INT32_MIN, INT32_MAX)) {
+ return false;
+ }
+
+ writeI32(output, val);
+ break;
+ }
+ case T_I64: {
+ int64_t nval = PyLong_AsLongLong(value);
+
+ if (INT_CONV_ERROR_OCCURRED(nval)) {
+ return false;
+ }
+
+ if (!CHECK_RANGE(nval, INT64_MIN, INT64_MAX)) {
+ PyErr_SetString(PyExc_OverflowError, "int out of range");
+ return false;
+ }
+
+ writeI64(output, nval);
+ break;
+ }
+
+ case T_DOUBLE: {
+ double nval = PyFloat_AsDouble(value);
+ if (nval == -1.0 && PyErr_Occurred()) {
+ return false;
+ }
+
+ writeDouble(output, nval);
+ break;
+ }
+
+ case T_STRING: {
+ Py_ssize_t len = PyString_Size(value);
+
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ writeI32(output, (int32_t) len);
+ PycStringIO->cwrite(output, PyString_AsString(value), (int32_t) len);
+ break;
+ }
+
+ case T_LIST:
+ case T_SET: {
+ Py_ssize_t len;
+ SetListTypeArgs parsedargs;
+ PyObject *item;
+ PyObject *iterator;
+
+ if (!parse_set_list_args(&parsedargs, typeargs)) {
+ return false;
+ }
+
+ len = PyObject_Length(value);
+
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ writeByte(output, parsedargs.element_type);
+ writeI32(output, (int32_t) len);
+
+ iterator = PyObject_GetIter(value);
+ if (iterator == NULL) {
+ return false;
+ }
+
+ while ((item = PyIter_Next(iterator))) {
+ if (!output_val(output, item, parsedargs.element_type, parsedargs.typeargs)) {
+ Py_DECREF(item);
+ Py_DECREF(iterator);
+ return false;
+ }
+ Py_DECREF(item);
+ }
+
+ Py_DECREF(iterator);
+
+ if (PyErr_Occurred()) {
+ return false;
+ }
+
+ break;
+ }
+
+ case T_MAP: {
+ PyObject *k, *v;
+ Py_ssize_t pos = 0;
+ Py_ssize_t len;
+
+ MapTypeArgs parsedargs;
+
+ len = PyDict_Size(value);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ if (!parse_map_args(&parsedargs, typeargs)) {
+ return false;
+ }
+
+ writeByte(output, parsedargs.ktag);
+ writeByte(output, parsedargs.vtag);
+ writeI32(output, len);
+
+ // TODO(bmaurer): should support any mapping, not just dicts
+ while (PyDict_Next(value, &pos, &k, &v)) {
+ // TODO(dreiss): Think hard about whether these INCREFs actually
+ // turn any unsafe scenarios into safe scenarios.
+ Py_INCREF(k);
+ Py_INCREF(v);
+
+ if (!output_val(output, k, parsedargs.ktag, parsedargs.ktypeargs)
+ || !output_val(output, v, parsedargs.vtag, parsedargs.vtypeargs)) {
+ Py_DECREF(k);
+ Py_DECREF(v);
+ return false;
+ }
+ Py_DECREF(k);
+ Py_DECREF(v);
+ }
+ break;
+ }
+
+ // TODO(dreiss): Consider breaking this out as a function
+ // the way we did for decode_struct.
+ case T_STRUCT: {
+ StructTypeArgs parsedargs;
+ Py_ssize_t nspec;
+ Py_ssize_t i;
+
+ if (!parse_struct_args(&parsedargs, typeargs)) {
+ return false;
+ }
+
+ nspec = PyTuple_Size(parsedargs.spec);
+
+ if (nspec == -1) {
+ return false;
+ }
+
+ for (i = 0; i < nspec; i++) {
+ StructItemSpec parsedspec;
+ PyObject* spec_tuple;
+ PyObject* instval = NULL;
+
+ spec_tuple = PyTuple_GET_ITEM(parsedargs.spec, i);
+ if (spec_tuple == Py_None) {
+ continue;
+ }
+
+ if (!parse_struct_item_spec (&parsedspec, spec_tuple)) {
+ return false;
+ }
+
+ instval = PyObject_GetAttr(value, parsedspec.attrname);
+
+ if (!instval) {
+ return false;
+ }
+
+ if (instval == Py_None) {
+ Py_DECREF(instval);
+ continue;
+ }
+
+ writeByte(output, (int8_t) parsedspec.type);
+ writeI16(output, parsedspec.tag);
+
+ if (!output_val(output, instval, parsedspec.type, parsedspec.typeargs)) {
+ Py_DECREF(instval);
+ return false;
+ }
+
+ Py_DECREF(instval);
+ }
+
+ writeByte(output, (int8_t)T_STOP);
+ break;
+ }
+
+ case T_STOP:
+ case T_VOID:
+ case T_UTF16:
+ case T_UTF8:
+ case T_U64:
+ default:
+ PyErr_SetString(PyExc_TypeError, "Unexpected TType");
+ return false;
+
+ }
+
+ return true;
+}
+
+
+/* --- TOP-LEVEL WRAPPER FOR OUTPUT -- */
+
+static PyObject *
+encode_binary(PyObject *self, PyObject *args) {
+ PyObject* enc_obj;
+ PyObject* type_args;
+ PyObject* buf;
+ PyObject* ret = NULL;
+
+ if (!PyArg_ParseTuple(args, "OO", &enc_obj, &type_args)) {
+ return NULL;
+ }
+
+ buf = PycStringIO->NewOutput(INIT_OUTBUF_SIZE);
+ if (output_val(buf, enc_obj, T_STRUCT, type_args)) {
+ ret = PycStringIO->cgetvalue(buf);
+ }
+
+ Py_DECREF(buf);
+ return ret;
+}
+
+/* ====== END WRITING FUNCTIONS ====== */
+
+
+/* ====== BEGIN READING FUNCTIONS ====== */
+
+/* --- LOW-LEVEL READING FUNCTIONS --- */
+
+static void
+free_decodebuf(DecodeBuffer* d) {
+ Py_XDECREF(d->stringiobuf);
+ Py_XDECREF(d->refill_callable);
+}
+
+static bool
+decode_buffer_from_obj(DecodeBuffer* dest, PyObject* obj) {
+ dest->stringiobuf = PyObject_GetAttr(obj, INTERN_STRING(cstringio_buf));
+ if (!dest->stringiobuf) {
+ return false;
+ }
+
+ if (!PycStringIO_InputCheck(dest->stringiobuf)) {
+ free_decodebuf(dest);
+ PyErr_SetString(PyExc_TypeError, "expecting stringio input");
+ return false;
+ }
+
+ dest->refill_callable = PyObject_GetAttr(obj, INTERN_STRING(cstringio_refill));
+
+ if(!dest->refill_callable) {
+ free_decodebuf(dest);
+ return false;
+ }
+
+ if (!PyCallable_Check(dest->refill_callable)) {
+ free_decodebuf(dest);
+ PyErr_SetString(PyExc_TypeError, "expecting callable");
+ return false;
+ }
+
+ return true;
+}
+
+static bool readBytes(DecodeBuffer* input, char** output, int len) {
+ int read;
+
+ // TODO(dreiss): Don't fear the malloc. Think about taking a copy of
+ // the partial read instead of forcing the transport
+ // to prepend it to its buffer.
+
+ read = PycStringIO->cread(input->stringiobuf, output, len);
+
+ if (read == len) {
+ return true;
+ } else if (read == -1) {
+ return false;
+ } else {
+ PyObject* newiobuf;
+
+ // using building functions as this is a rare codepath
+ newiobuf = PyObject_CallFunction(
+ input->refill_callable, "s#i", *output, read, len, NULL);
+ if (newiobuf == NULL) {
+ return false;
+ }
+
+ // must do this *AFTER* the call so that we don't deref the io buffer
+ Py_CLEAR(input->stringiobuf);
+ input->stringiobuf = newiobuf;
+
+ read = PycStringIO->cread(input->stringiobuf, output, len);
+
+ if (read == len) {
+ return true;
+ } else if (read == -1) {
+ return false;
+ } else {
+ // TODO(dreiss): This could be a valid code path for big binary blobs.
+ PyErr_SetString(PyExc_TypeError,
+ "refill claimed to have refilled the buffer, but didn't!!");
+ return false;
+ }
+ }
+}
+
+static int8_t readByte(DecodeBuffer* input) {
+ char* buf;
+ if (!readBytes(input, &buf, sizeof(int8_t))) {
+ return -1;
+ }
+
+ return *(int8_t*) buf;
+}
+
+static int16_t readI16(DecodeBuffer* input) {
+ char* buf;
+ if (!readBytes(input, &buf, sizeof(int16_t))) {
+ return -1;
+ }
+
+ return (int16_t) ntohs(*(int16_t*) buf);
+}
+
+static int32_t readI32(DecodeBuffer* input) {
+ char* buf;
+ if (!readBytes(input, &buf, sizeof(int32_t))) {
+ return -1;
+ }
+ return (int32_t) ntohl(*(int32_t*) buf);
+}
+
+
+static int64_t readI64(DecodeBuffer* input) {
+ char* buf;
+ if (!readBytes(input, &buf, sizeof(int64_t))) {
+ return -1;
+ }
+
+ return (int64_t) ntohll(*(int64_t*) buf);
+}
+
+static double readDouble(DecodeBuffer* input) {
+ union {
+ int64_t f;
+ double t;
+ } transfer;
+
+ transfer.f = readI64(input);
+ if (transfer.f == -1) {
+ return -1;
+ }
+ return transfer.t;
+}
+
+static bool
+checkTypeByte(DecodeBuffer* input, TType expected) {
+ TType got = readByte(input);
+ if (INT_CONV_ERROR_OCCURRED(got)) {
+ return false;
+ }
+
+ if (expected != got) {
+ PyErr_SetString(PyExc_TypeError, "got wrong ttype while reading field");
+ return false;
+ }
+ return true;
+}
+
+static bool
+skip(DecodeBuffer* input, TType type) {
+#define SKIPBYTES(n) \
+ do { \
+ if (!readBytes(input, &dummy_buf, (n))) { \
+ return false; \
+ } \
+ } while(0)
+
+ char* dummy_buf;
+
+ switch (type) {
+
+ case T_BOOL:
+ case T_I08: SKIPBYTES(1); break;
+ case T_I16: SKIPBYTES(2); break;
+ case T_I32: SKIPBYTES(4); break;
+ case T_I64:
+ case T_DOUBLE: SKIPBYTES(8); break;
+
+ case T_STRING: {
+ // TODO(dreiss): Find out if these check_ssize_t32s are really necessary.
+ int len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+ SKIPBYTES(len);
+ break;
+ }
+
+ case T_LIST:
+ case T_SET: {
+ TType etype;
+ int len, i;
+
+ etype = readByte(input);
+ if (etype == -1) {
+ return false;
+ }
+
+ len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ for (i = 0; i < len; i++) {
+ if (!skip(input, etype)) {
+ return false;
+ }
+ }
+ break;
+ }
+
+ case T_MAP: {
+ TType ktype, vtype;
+ int len, i;
+
+ ktype = readByte(input);
+ if (ktype == -1) {
+ return false;
+ }
+
+ vtype = readByte(input);
+ if (vtype == -1) {
+ return false;
+ }
+
+ len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ for (i = 0; i < len; i++) {
+ if (!(skip(input, ktype) && skip(input, vtype))) {
+ return false;
+ }
+ }
+ break;
+ }
+
+ case T_STRUCT: {
+ while (true) {
+ TType type;
+
+ type = readByte(input);
+ if (type == -1) {
+ return false;
+ }
+
+ if (type == T_STOP)
+ break;
+
+ SKIPBYTES(2); // tag
+ if (!skip(input, type)) {
+ return false;
+ }
+ }
+ break;
+ }
+
+ case T_STOP:
+ case T_VOID:
+ case T_UTF16:
+ case T_UTF8:
+ case T_U64:
+ default:
+ PyErr_SetString(PyExc_TypeError, "Unexpected TType");
+ return false;
+
+ }
+
+ return true;
+
+#undef SKIPBYTES
+}
+
+
+/* --- HELPER FUNCTION FOR DECODE_VAL --- */
+
+static PyObject*
+decode_val(DecodeBuffer* input, TType type, PyObject* typeargs);
+
+static bool
+decode_struct(DecodeBuffer* input, PyObject* output, PyObject* spec_seq) {
+ int spec_seq_len = PyTuple_Size(spec_seq);
+ if (spec_seq_len == -1) {
+ return false;
+ }
+
+ while (true) {
+ TType type;
+ int16_t tag;
+ PyObject* item_spec;
+ PyObject* fieldval = NULL;
+ StructItemSpec parsedspec;
+
+ type = readByte(input);
+ if (type == -1) {
+ return false;
+ }
+ if (type == T_STOP) {
+ break;
+ }
+ tag = readI16(input);
+ if (INT_CONV_ERROR_OCCURRED(tag)) {
+ return false;
+ }
+ if (tag >= 0 && tag < spec_seq_len) {
+ item_spec = PyTuple_GET_ITEM(spec_seq, tag);
+ } else {
+ item_spec = Py_None;
+ }
+
+ if (item_spec == Py_None) {
+ if (!skip(input, type)) {
+ return false;
+ } else {
+ continue;
+ }
+ }
+
+ if (!parse_struct_item_spec(&parsedspec, item_spec)) {
+ return false;
+ }
+ if (parsedspec.type != type) {
+ if (!skip(input, type)) {
+ PyErr_SetString(PyExc_TypeError, "struct field had wrong type while reading and can't be skipped");
+ return false;
+ } else {
+ continue;
+ }
+ }
+
+ fieldval = decode_val(input, parsedspec.type, parsedspec.typeargs);
+ if (fieldval == NULL) {
+ return false;
+ }
+
+ if (PyObject_SetAttr(output, parsedspec.attrname, fieldval) == -1) {
+ Py_DECREF(fieldval);
+ return false;
+ }
+ Py_DECREF(fieldval);
+ }
+ return true;
+}
+
+
+/* --- MAIN RECURSIVE INPUT FUCNTION --- */
+
+// Returns a new reference.
+static PyObject*
+decode_val(DecodeBuffer* input, TType type, PyObject* typeargs) {
+ switch (type) {
+
+ case T_BOOL: {
+ int8_t v = readByte(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+
+ switch (v) {
+ case 0: Py_RETURN_FALSE;
+ case 1: Py_RETURN_TRUE;
+ // Don't laugh. This is a potentially serious issue.
+ default: PyErr_SetString(PyExc_TypeError, "boolean out of range"); return NULL;
+ }
+ break;
+ }
+ case T_I08: {
+ int8_t v = readByte(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+
+ return PyInt_FromLong(v);
+ }
+ case T_I16: {
+ int16_t v = readI16(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+ return PyInt_FromLong(v);
+ }
+ case T_I32: {
+ int32_t v = readI32(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+ return PyInt_FromLong(v);
+ }
+
+ case T_I64: {
+ int64_t v = readI64(input);
+ if (INT_CONV_ERROR_OCCURRED(v)) {
+ return NULL;
+ }
+ // TODO(dreiss): Find out if we can take this fastpath always when
+ // sizeof(long) == sizeof(long long).
+ if (CHECK_RANGE(v, LONG_MIN, LONG_MAX)) {
+ return PyInt_FromLong((long) v);
+ }
+
+ return PyLong_FromLongLong(v);
+ }
+
+ case T_DOUBLE: {
+ double v = readDouble(input);
+ if (v == -1.0 && PyErr_Occurred()) {
+ return false;
+ }
+ return PyFloat_FromDouble(v);
+ }
+
+ case T_STRING: {
+ Py_ssize_t len = readI32(input);
+ char* buf;
+ if (!readBytes(input, &buf, len)) {
+ return NULL;
+ }
+
+ return PyString_FromStringAndSize(buf, len);
+ }
+
+ case T_LIST:
+ case T_SET: {
+ SetListTypeArgs parsedargs;
+ int32_t len;
+ PyObject* ret = NULL;
+ int i;
+
+ if (!parse_set_list_args(&parsedargs, typeargs)) {
+ return NULL;
+ }
+
+ if (!checkTypeByte(input, parsedargs.element_type)) {
+ return NULL;
+ }
+
+ len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return NULL;
+ }
+
+ ret = PyList_New(len);
+ if (!ret) {
+ return NULL;
+ }
+
+ for (i = 0; i < len; i++) {
+ PyObject* item = decode_val(input, parsedargs.element_type, parsedargs.typeargs);
+ if (!item) {
+ Py_DECREF(ret);
+ return NULL;
+ }
+ PyList_SET_ITEM(ret, i, item);
+ }
+
+ // TODO(dreiss): Consider biting the bullet and making two separate cases
+ // for list and set, avoiding this post facto conversion.
+ if (type == T_SET) {
+ PyObject* setret;
+#if (PY_VERSION_HEX < 0x02050000)
+ // hack needed for older versions
+ setret = PyObject_CallFunctionObjArgs((PyObject*)&PySet_Type, ret, NULL);
+#else
+ // official version
+ setret = PySet_New(ret);
+#endif
+ Py_DECREF(ret);
+ return setret;
+ }
+ return ret;
+ }
+
+ case T_MAP: {
+ int32_t len;
+ int i;
+ MapTypeArgs parsedargs;
+ PyObject* ret = NULL;
+
+ if (!parse_map_args(&parsedargs, typeargs)) {
+ return NULL;
+ }
+
+ if (!checkTypeByte(input, parsedargs.ktag)) {
+ return NULL;
+ }
+ if (!checkTypeByte(input, parsedargs.vtag)) {
+ return NULL;
+ }
+
+ len = readI32(input);
+ if (!check_ssize_t_32(len)) {
+ return false;
+ }
+
+ ret = PyDict_New();
+ if (!ret) {
+ goto error;
+ }
+
+ for (i = 0; i < len; i++) {
+ PyObject* k = NULL;
+ PyObject* v = NULL;
+ k = decode_val(input, parsedargs.ktag, parsedargs.ktypeargs);
+ if (k == NULL) {
+ goto loop_error;
+ }
+ v = decode_val(input, parsedargs.vtag, parsedargs.vtypeargs);
+ if (v == NULL) {
+ goto loop_error;
+ }
+ if (PyDict_SetItem(ret, k, v) == -1) {
+ goto loop_error;
+ }
+
+ Py_DECREF(k);
+ Py_DECREF(v);
+ continue;
+
+ // Yuck! Destructors, anyone?
+ loop_error:
+ Py_XDECREF(k);
+ Py_XDECREF(v);
+ goto error;
+ }
+
+ return ret;
+
+ error:
+ Py_XDECREF(ret);
+ return NULL;
+ }
+
+ case T_STRUCT: {
+ StructTypeArgs parsedargs;
+ PyObject* ret;
+ if (!parse_struct_args(&parsedargs, typeargs)) {
+ return NULL;
+ }
+
+ ret = PyObject_CallObject(parsedargs.klass, NULL);
+ if (!ret) {
+ return NULL;
+ }
+
+ if (!decode_struct(input, ret, parsedargs.spec)) {
+ Py_DECREF(ret);
+ return NULL;
+ }
+
+ return ret;
+ }
+
+ case T_STOP:
+ case T_VOID:
+ case T_UTF16:
+ case T_UTF8:
+ case T_U64:
+ default:
+ PyErr_SetString(PyExc_TypeError, "Unexpected TType");
+ return NULL;
+ }
+}
+
+
+/* --- TOP-LEVEL WRAPPER FOR INPUT -- */
+
+static PyObject*
+decode_binary(PyObject *self, PyObject *args) {
+ PyObject* output_obj = NULL;
+ PyObject* transport = NULL;
+ PyObject* typeargs = NULL;
+ StructTypeArgs parsedargs;
+ DecodeBuffer input = {0, 0};
+
+ if (!PyArg_ParseTuple(args, "OOO", &output_obj, &transport, &typeargs)) {
+ return NULL;
+ }
+
+ if (!parse_struct_args(&parsedargs, typeargs)) {
+ return NULL;
+ }
+
+ if (!decode_buffer_from_obj(&input, transport)) {
+ return NULL;
+ }
+
+ if (!decode_struct(&input, output_obj, parsedargs.spec)) {
+ free_decodebuf(&input);
+ return NULL;
+ }
+
+ free_decodebuf(&input);
+
+ Py_RETURN_NONE;
+}
+
+/* ====== END READING FUNCTIONS ====== */
+
+
+/* -- PYTHON MODULE SETUP STUFF --- */
+
+static PyMethodDef ThriftFastBinaryMethods[] = {
+
+ {"encode_binary", encode_binary, METH_VARARGS, ""},
+ {"decode_binary", decode_binary, METH_VARARGS, ""},
+
+ {NULL, NULL, 0, NULL} /* Sentinel */
+};
+
+PyMODINIT_FUNC
+initfastbinary(void) {
+#define INIT_INTERN_STRING(value) \
+ do { \
+ INTERN_STRING(value) = PyString_InternFromString(#value); \
+ if(!INTERN_STRING(value)) return; \
+ } while(0)
+
+ INIT_INTERN_STRING(cstringio_buf);
+ INIT_INTERN_STRING(cstringio_refill);
+#undef INIT_INTERN_STRING
+
+ PycString_IMPORT;
+ if (PycStringIO == NULL) return;
+
+ (void) Py_InitModule("thrift.protocol.fastbinary", ThriftFastBinaryMethods);
+}
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/THttpServer.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/THttpServer.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/THttpServer.py
new file mode 100644
index 0000000..be54bab
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/THttpServer.py
@@ -0,0 +1,87 @@
+#
+# 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.
+#
+
+import BaseHTTPServer
+
+from thrift.server import TServer
+from thrift.transport import TTransport
+
+
+class ResponseException(Exception):
+ """Allows handlers to override the HTTP response
+
+ Normally, THttpServer always sends a 200 response. If a handler wants
+ to override this behavior (e.g., to simulate a misconfigured or
+ overloaded web server during testing), it can raise a ResponseException.
+ The function passed to the constructor will be called with the
+ RequestHandler as its only argument.
+ """
+ def __init__(self, handler):
+ self.handler = handler
+
+
+class THttpServer(TServer.TServer):
+ """A simple HTTP-based Thrift server
+
+ This class is not very performant, but it is useful (for example) for
+ acting as a mock version of an Apache-based PHP Thrift endpoint.
+ """
+ def __init__(self,
+ processor,
+ server_address,
+ inputProtocolFactory,
+ outputProtocolFactory=None,
+ server_class=BaseHTTPServer.HTTPServer):
+ """Set up protocol factories and HTTP server.
+
+ See BaseHTTPServer for server_address.
+ See TServer for protocol factories.
+ """
+ if outputProtocolFactory is None:
+ outputProtocolFactory = inputProtocolFactory
+
+ TServer.TServer.__init__(self, processor, None, None, None,
+ inputProtocolFactory, outputProtocolFactory)
+
+ thttpserver = self
+
+ class RequestHander(BaseHTTPServer.BaseHTTPRequestHandler):
+ def do_POST(self):
+ # Don't care about the request path.
+ itrans = TTransport.TFileObjectTransport(self.rfile)
+ otrans = TTransport.TFileObjectTransport(self.wfile)
+ itrans = TTransport.TBufferedTransport(
+ itrans, int(self.headers['Content-Length']))
+ otrans = TTransport.TMemoryBuffer()
+ iprot = thttpserver.inputProtocolFactory.getProtocol(itrans)
+ oprot = thttpserver.outputProtocolFactory.getProtocol(otrans)
+ try:
+ thttpserver.processor.process(iprot, oprot)
+ except ResponseException, exn:
+ exn.handler(self)
+ else:
+ self.send_response(200)
+ self.send_header("content-type", "application/x-thrift")
+ self.end_headers()
+ self.wfile.write(otrans.getvalue())
+
+ self.httpd = server_class(server_address, RequestHander)
+
+ def serve(self):
+ self.httpd.serve_forever()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TNonblockingServer.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TNonblockingServer.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TNonblockingServer.py
new file mode 100644
index 0000000..fa478d0
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TNonblockingServer.py
@@ -0,0 +1,346 @@
+#
+# 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.
+#
+"""Implementation of non-blocking server.
+
+The main idea of the server is to receive and send requests
+only from the main thread.
+
+The thread poool should be sized for concurrent tasks, not
+maximum connections
+"""
+import threading
+import socket
+import Queue
+import select
+import struct
+import logging
+
+from thrift.transport import TTransport
+from thrift.protocol.TBinaryProtocol import TBinaryProtocolFactory
+
+__all__ = ['TNonblockingServer']
+
+
+class Worker(threading.Thread):
+ """Worker is a small helper to process incoming connection."""
+
+ def __init__(self, queue):
+ threading.Thread.__init__(self)
+ self.queue = queue
+
+ def run(self):
+ """Process queries from task queue, stop if processor is None."""
+ while True:
+ try:
+ processor, iprot, oprot, otrans, callback = self.queue.get()
+ if processor is None:
+ break
+ processor.process(iprot, oprot)
+ callback(True, otrans.getvalue())
+ except Exception:
+ logging.exception("Exception while processing request")
+ callback(False, '')
+
+WAIT_LEN = 0
+WAIT_MESSAGE = 1
+WAIT_PROCESS = 2
+SEND_ANSWER = 3
+CLOSED = 4
+
+
+def locked(func):
+ """Decorator which locks self.lock."""
+ def nested(self, *args, **kwargs):
+ self.lock.acquire()
+ try:
+ return func(self, *args, **kwargs)
+ finally:
+ self.lock.release()
+ return nested
+
+
+def socket_exception(func):
+ """Decorator close object on socket.error."""
+ def read(self, *args, **kwargs):
+ try:
+ return func(self, *args, **kwargs)
+ except socket.error:
+ self.close()
+ return read
+
+
+class Connection:
+ """Basic class is represented connection.
+
+ It can be in state:
+ WAIT_LEN --- connection is reading request len.
+ WAIT_MESSAGE --- connection is reading request.
+ WAIT_PROCESS --- connection has just read whole request and
+ waits for call ready routine.
+ SEND_ANSWER --- connection is sending answer string (including length
+ of answer).
+ CLOSED --- socket was closed and connection should be deleted.
+ """
+ def __init__(self, new_socket, wake_up):
+ self.socket = new_socket
+ self.socket.setblocking(False)
+ self.status = WAIT_LEN
+ self.len = 0
+ self.message = ''
+ self.lock = threading.Lock()
+ self.wake_up = wake_up
+
+ def _read_len(self):
+ """Reads length of request.
+
+ It's a safer alternative to self.socket.recv(4)
+ """
+ read = self.socket.recv(4 - len(self.message))
+ if len(read) == 0:
+ # if we read 0 bytes and self.message is empty, then
+ # the client closed the connection
+ if len(self.message) != 0:
+ logging.error("can't read frame size from socket")
+ self.close()
+ return
+ self.message += read
+ if len(self.message) == 4:
+ self.len, = struct.unpack('!i', self.message)
+ if self.len < 0:
+ logging.error("negative frame size, it seems client "
+ "doesn't use FramedTransport")
+ self.close()
+ elif self.len == 0:
+ logging.error("empty frame, it's really strange")
+ self.close()
+ else:
+ self.message = ''
+ self.status = WAIT_MESSAGE
+
+ @socket_exception
+ def read(self):
+ """Reads data from stream and switch state."""
+ assert self.status in (WAIT_LEN, WAIT_MESSAGE)
+ if self.status == WAIT_LEN:
+ self._read_len()
+ # go back to the main loop here for simplicity instead of
+ # falling through, even though there is a good chance that
+ # the message is already available
+ elif self.status == WAIT_MESSAGE:
+ read = self.socket.recv(self.len - len(self.message))
+ if len(read) == 0:
+ logging.error("can't read frame from socket (get %d of "
+ "%d bytes)" % (len(self.message), self.len))
+ self.close()
+ return
+ self.message += read
+ if len(self.message) == self.len:
+ self.status = WAIT_PROCESS
+
+ @socket_exception
+ def write(self):
+ """Writes data from socket and switch state."""
+ assert self.status == SEND_ANSWER
+ sent = self.socket.send(self.message)
+ if sent == len(self.message):
+ self.status = WAIT_LEN
+ self.message = ''
+ self.len = 0
+ else:
+ self.message = self.message[sent:]
+
+ @locked
+ def ready(self, all_ok, message):
+ """Callback function for switching state and waking up main thread.
+
+ This function is the only function witch can be called asynchronous.
+
+ The ready can switch Connection to three states:
+ WAIT_LEN if request was oneway.
+ SEND_ANSWER if request was processed in normal way.
+ CLOSED if request throws unexpected exception.
+
+ The one wakes up main thread.
+ """
+ assert self.status == WAIT_PROCESS
+ if not all_ok:
+ self.close()
+ self.wake_up()
+ return
+ self.len = ''
+ if len(message) == 0:
+ # it was a oneway request, do not write answer
+ self.message = ''
+ self.status = WAIT_LEN
+ else:
+ self.message = struct.pack('!i', len(message)) + message
+ self.status = SEND_ANSWER
+ self.wake_up()
+
+ @locked
+ def is_writeable(self):
+ """Return True if connection should be added to write list of select"""
+ return self.status == SEND_ANSWER
+
+ # it's not necessary, but...
+ @locked
+ def is_readable(self):
+ """Return True if connection should be added to read list of select"""
+ return self.status in (WAIT_LEN, WAIT_MESSAGE)
+
+ @locked
+ def is_closed(self):
+ """Returns True if connection is closed."""
+ return self.status == CLOSED
+
+ def fileno(self):
+ """Returns the file descriptor of the associated socket."""
+ return self.socket.fileno()
+
+ def close(self):
+ """Closes connection"""
+ self.status = CLOSED
+ self.socket.close()
+
+
+class TNonblockingServer:
+ """Non-blocking server."""
+
+ def __init__(self,
+ processor,
+ lsocket,
+ inputProtocolFactory=None,
+ outputProtocolFactory=None,
+ threads=10):
+ self.processor = processor
+ self.socket = lsocket
+ self.in_protocol = inputProtocolFactory or TBinaryProtocolFactory()
+ self.out_protocol = outputProtocolFactory or self.in_protocol
+ self.threads = int(threads)
+ self.clients = {}
+ self.tasks = Queue.Queue()
+ self._read, self._write = socket.socketpair()
+ self.prepared = False
+ self._stop = False
+
+ def setNumThreads(self, num):
+ """Set the number of worker threads that should be created."""
+ # implement ThreadPool interface
+ assert not self.prepared, "Can't change number of threads after start"
+ self.threads = num
+
+ def prepare(self):
+ """Prepares server for serve requests."""
+ if self.prepared:
+ return
+ self.socket.listen()
+ for _ in xrange(self.threads):
+ thread = Worker(self.tasks)
+ thread.setDaemon(True)
+ thread.start()
+ self.prepared = True
+
+ def wake_up(self):
+ """Wake up main thread.
+
+ The server usualy waits in select call in we should terminate one.
+ The simplest way is using socketpair.
+
+ Select always wait to read from the first socket of socketpair.
+
+ In this case, we can just write anything to the second socket from
+ socketpair.
+ """
+ self._write.send('1')
+
+ def stop(self):
+ """Stop the server.
+
+ This method causes the serve() method to return. stop() may be invoked
+ from within your handler, or from another thread.
+
+ After stop() is called, serve() will return but the server will still
+ be listening on the socket. serve() may then be called again to resume
+ processing requests. Alternatively, close() may be called after
+ serve() returns to close the server socket and shutdown all worker
+ threads.
+ """
+ self._stop = True
+ self.wake_up()
+
+ def _select(self):
+ """Does select on open connections."""
+ readable = [self.socket.handle.fileno(), self._read.fileno()]
+ writable = []
+ for i, connection in self.clients.items():
+ if connection.is_readable():
+ readable.append(connection.fileno())
+ if connection.is_writeable():
+ writable.append(connection.fileno())
+ if connection.is_closed():
+ del self.clients[i]
+ return select.select(readable, writable, readable)
+
+ def handle(self):
+ """Handle requests.
+
+ WARNING! You must call prepare() BEFORE calling handle()
+ """
+ assert self.prepared, "You have to call prepare before handle"
+ rset, wset, xset = self._select()
+ for readable in rset:
+ if readable == self._read.fileno():
+ # don't care i just need to clean readable flag
+ self._read.recv(1024)
+ elif readable == self.socket.handle.fileno():
+ client = self.socket.accept().handle
+ self.clients[client.fileno()] = Connection(client,
+ self.wake_up)
+ else:
+ connection = self.clients[readable]
+ connection.read()
+ if connection.status == WAIT_PROCESS:
+ itransport = TTransport.TMemoryBuffer(connection.message)
+ otransport = TTransport.TMemoryBuffer()
+ iprot = self.in_protocol.getProtocol(itransport)
+ oprot = self.out_protocol.getProtocol(otransport)
+ self.tasks.put([self.processor, iprot, oprot,
+ otransport, connection.ready])
+ for writeable in wset:
+ self.clients[writeable].write()
+ for oob in xset:
+ self.clients[oob].close()
+ del self.clients[oob]
+
+ def close(self):
+ """Closes the server."""
+ for _ in xrange(self.threads):
+ self.tasks.put([None, None, None, None, None])
+ self.socket.close()
+ self.prepared = False
+
+ def serve(self):
+ """Serve requests.
+
+ Serve requests forever, or until stop() is called.
+ """
+ self._stop = False
+ self.prepare()
+ while not self._stop:
+ self.handle()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TProcessPoolServer.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TProcessPoolServer.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TProcessPoolServer.py
new file mode 100644
index 0000000..c665e6d
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TProcessPoolServer.py
@@ -0,0 +1,118 @@
+#
+# 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.
+#
+
+
+import logging
+from multiprocessing import Process, Value, Condition
+
+from lib.thrift.server import TServer
+from thrift.transport.TTransport import TTransportException
+
+
+class TProcessPoolServer(TServer):
+ """Server with a fixed size pool of worker subprocesses to service requests
+
+ Note that if you need shared state between the handlers - it's up to you!
+ Written by Dvir Volk, doat.com
+ """
+ def __init__(self, *args):
+ TServer.__init__(self, *args)
+ self.numWorkers = 10
+ self.workers = []
+ self.isRunning = Value('b', False)
+ self.stopCondition = Condition()
+ self.postForkCallback = None
+
+ def setPostForkCallback(self, callback):
+ if not callable(callback):
+ raise TypeError("This is not a callback!")
+ self.postForkCallback = callback
+
+ def setNumWorkers(self, num):
+ """Set the number of worker threads that should be created"""
+ self.numWorkers = num
+
+ def workerProcess(self):
+ """Loop getting clients from the shared queue and process them"""
+ if self.postForkCallback:
+ self.postForkCallback()
+
+ while self.isRunning.value:
+ try:
+ client = self.serverTransport.accept()
+ self.serveClient(client)
+ except (KeyboardInterrupt, SystemExit):
+ return 0
+ except Exception, x:
+ logging.exception(x)
+
+ def serveClient(self, client):
+ """Process input/output from a client for as long as possible"""
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ itrans.close()
+ otrans.close()
+
+ def serve(self):
+ """Start workers and put into queue"""
+ # this is a shared state that can tell the workers to exit when False
+ self.isRunning.value = True
+
+ # first bind and listen to the port
+ self.serverTransport.listen()
+
+ # fork the children
+ for i in range(self.numWorkers):
+ try:
+ w = Process(target=self.workerProcess)
+ w.daemon = True
+ w.start()
+ self.workers.append(w)
+ except Exception, x:
+ logging.exception(x)
+
+ # wait until the condition is set by stop()
+ while True:
+ self.stopCondition.acquire()
+ try:
+ self.stopCondition.wait()
+ break
+ except (SystemExit, KeyboardInterrupt):
+ break
+ except Exception, x:
+ logging.exception(x)
+
+ self.isRunning.value = False
+
+ def stop(self):
+ self.isRunning.value = False
+ self.stopCondition.acquire()
+ self.stopCondition.notify()
+ self.stopCondition.release()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TServer.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TServer.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TServer.py
new file mode 100644
index 0000000..2f24842
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/server/TServer.py
@@ -0,0 +1,269 @@
+#
+# 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.
+#
+
+import Queue
+import logging
+import os
+import sys
+import threading
+import traceback
+
+from thrift.Thrift import TProcessor
+from thrift.protocol import TBinaryProtocol
+from thrift.transport import TTransport
+
+
+class TServer:
+ """Base interface for a server, which must have a serve() method.
+
+ Three constructors for all servers:
+ 1) (processor, serverTransport)
+ 2) (processor, serverTransport, transportFactory, protocolFactory)
+ 3) (processor, serverTransport,
+ inputTransportFactory, outputTransportFactory,
+ inputProtocolFactory, outputProtocolFactory)
+ """
+ def __init__(self, *args):
+ if (len(args) == 2):
+ self.__initArgs__(args[0], args[1],
+ TTransport.TTransportFactoryBase(),
+ TTransport.TTransportFactoryBase(),
+ TBinaryProtocol.TBinaryProtocolFactory(),
+ TBinaryProtocol.TBinaryProtocolFactory())
+ elif (len(args) == 4):
+ self.__initArgs__(args[0], args[1], args[2], args[2], args[3], args[3])
+ elif (len(args) == 6):
+ self.__initArgs__(args[0], args[1], args[2], args[3], args[4], args[5])
+
+ def __initArgs__(self, processor, serverTransport,
+ inputTransportFactory, outputTransportFactory,
+ inputProtocolFactory, outputProtocolFactory):
+ self.processor = processor
+ self.serverTransport = serverTransport
+ self.inputTransportFactory = inputTransportFactory
+ self.outputTransportFactory = outputTransportFactory
+ self.inputProtocolFactory = inputProtocolFactory
+ self.outputProtocolFactory = outputProtocolFactory
+
+ def serve(self):
+ pass
+
+
+class TSimpleServer(TServer):
+ """Simple single-threaded server that just pumps around one transport."""
+
+ def __init__(self, *args):
+ TServer.__init__(self, *args)
+
+ def serve(self):
+ self.serverTransport.listen()
+ while True:
+ client = self.serverTransport.accept()
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ itrans.close()
+ otrans.close()
+
+
+class TThreadedServer(TServer):
+ """Threaded server that spawns a new thread per each connection."""
+
+ def __init__(self, *args, **kwargs):
+ TServer.__init__(self, *args)
+ self.daemon = kwargs.get("daemon", False)
+
+ def serve(self):
+ self.serverTransport.listen()
+ while True:
+ try:
+ client = self.serverTransport.accept()
+ t = threading.Thread(target=self.handle, args=(client,))
+ t.setDaemon(self.daemon)
+ t.start()
+ except KeyboardInterrupt:
+ raise
+ except Exception, x:
+ logging.exception(x)
+
+ def handle(self, client):
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ itrans.close()
+ otrans.close()
+
+
+class TThreadPoolServer(TServer):
+ """Server with a fixed size pool of threads which service requests."""
+
+ def __init__(self, *args, **kwargs):
+ TServer.__init__(self, *args)
+ self.clients = Queue.Queue()
+ self.threads = 10
+ self.daemon = kwargs.get("daemon", False)
+
+ def setNumThreads(self, num):
+ """Set the number of worker threads that should be created"""
+ self.threads = num
+
+ def serveThread(self):
+ """Loop around getting clients from the shared queue and process them."""
+ while True:
+ try:
+ client = self.clients.get()
+ self.serveClient(client)
+ except Exception, x:
+ logging.exception(x)
+
+ def serveClient(self, client):
+ """Process input/output from a client for as long as possible"""
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ itrans.close()
+ otrans.close()
+
+ def serve(self):
+ """Start a fixed number of worker threads and put client into a queue"""
+ for i in range(self.threads):
+ try:
+ t = threading.Thread(target=self.serveThread)
+ t.setDaemon(self.daemon)
+ t.start()
+ except Exception, x:
+ logging.exception(x)
+
+ # Pump the socket for clients
+ self.serverTransport.listen()
+ while True:
+ try:
+ client = self.serverTransport.accept()
+ self.clients.put(client)
+ except Exception, x:
+ logging.exception(x)
+
+
+class TForkingServer(TServer):
+ """A Thrift server that forks a new process for each request
+
+ This is more scalable than the threaded server as it does not cause
+ GIL contention.
+
+ Note that this has different semantics from the threading server.
+ Specifically, updates to shared variables will no longer be shared.
+ It will also not work on windows.
+
+ This code is heavily inspired by SocketServer.ForkingMixIn in the
+ Python stdlib.
+ """
+ def __init__(self, *args):
+ TServer.__init__(self, *args)
+ self.children = []
+
+ def serve(self):
+ def try_close(file):
+ try:
+ file.close()
+ except IOError, e:
+ logging.warning(e, exc_info=True)
+
+ self.serverTransport.listen()
+ while True:
+ client = self.serverTransport.accept()
+ try:
+ pid = os.fork()
+
+ if pid: # parent
+ # add before collect, otherwise you race w/ waitpid
+ self.children.append(pid)
+ self.collect_children()
+
+ # Parent must close socket or the connection may not get
+ # closed promptly
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+ try_close(itrans)
+ try_close(otrans)
+ else:
+ itrans = self.inputTransportFactory.getTransport(client)
+ otrans = self.outputTransportFactory.getTransport(client)
+
+ iprot = self.inputProtocolFactory.getProtocol(itrans)
+ oprot = self.outputProtocolFactory.getProtocol(otrans)
+
+ ecode = 0
+ try:
+ try:
+ while True:
+ self.processor.process(iprot, oprot)
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, e:
+ logging.exception(e)
+ ecode = 1
+ finally:
+ try_close(itrans)
+ try_close(otrans)
+
+ os._exit(ecode)
+
+ except TTransport.TTransportException, tx:
+ pass
+ except Exception, x:
+ logging.exception(x)
+
+ def collect_children(self):
+ while self.children:
+ try:
+ pid, status = os.waitpid(0, os.WNOHANG)
+ except os.error:
+ pid = None
+
+ if pid:
+ self.children.remove(pid)
+ else:
+ break
[06/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc
new file mode 100644
index 0000000..e152584
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.py
new file mode 100644
index 0000000..f5280cd
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.py
@@ -0,0 +1,542 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ExperimentState:
+ CREATED = 0
+ VALIDATED = 1
+ SCHEDULED = 2
+ LAUNCHED = 3
+ EXECUTING = 4
+ CANCELING = 5
+ CANCELED = 6
+ COMPLETED = 7
+ FAILED = 8
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "VALIDATED",
+ 2: "SCHEDULED",
+ 3: "LAUNCHED",
+ 4: "EXECUTING",
+ 5: "CANCELING",
+ 6: "CANCELED",
+ 7: "COMPLETED",
+ 8: "FAILED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "VALIDATED": 1,
+ "SCHEDULED": 2,
+ "LAUNCHED": 3,
+ "EXECUTING": 4,
+ "CANCELING": 5,
+ "CANCELED": 6,
+ "COMPLETED": 7,
+ "FAILED": 8,
+ }
+
+class TaskState:
+ CREATED = 0
+ EXECUTING = 1
+ COMPLETED = 2
+ FAILED = 3
+ CANCELED = 4
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "EXECUTING",
+ 2: "COMPLETED",
+ 3: "FAILED",
+ 4: "CANCELED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "EXECUTING": 1,
+ "COMPLETED": 2,
+ "FAILED": 3,
+ "CANCELED": 4,
+ }
+
+class ProcessState:
+ CREATED = 0
+ VALIDATED = 1
+ STARTED = 2
+ PRE_PROCESSING = 3
+ CONFIGURING_WORKSPACE = 4
+ INPUT_DATA_STAGING = 5
+ EXECUTING = 6
+ MONITORING = 7
+ OUTPUT_DATA_STAGING = 8
+ POST_PROCESSING = 9
+ COMPLETED = 10
+ FAILED = 11
+ CANCELLING = 12
+ CANCELED = 13
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "VALIDATED",
+ 2: "STARTED",
+ 3: "PRE_PROCESSING",
+ 4: "CONFIGURING_WORKSPACE",
+ 5: "INPUT_DATA_STAGING",
+ 6: "EXECUTING",
+ 7: "MONITORING",
+ 8: "OUTPUT_DATA_STAGING",
+ 9: "POST_PROCESSING",
+ 10: "COMPLETED",
+ 11: "FAILED",
+ 12: "CANCELLING",
+ 13: "CANCELED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "VALIDATED": 1,
+ "STARTED": 2,
+ "PRE_PROCESSING": 3,
+ "CONFIGURING_WORKSPACE": 4,
+ "INPUT_DATA_STAGING": 5,
+ "EXECUTING": 6,
+ "MONITORING": 7,
+ "OUTPUT_DATA_STAGING": 8,
+ "POST_PROCESSING": 9,
+ "COMPLETED": 10,
+ "FAILED": 11,
+ "CANCELLING": 12,
+ "CANCELED": 13,
+ }
+
+class JobState:
+ SUBMITTED = 0
+ QUEUED = 1
+ ACTIVE = 2
+ COMPLETE = 3
+ CANCELED = 4
+ FAILED = 5
+ SUSPENDED = 6
+ UNKNOWN = 7
+
+ _VALUES_TO_NAMES = {
+ 0: "SUBMITTED",
+ 1: "QUEUED",
+ 2: "ACTIVE",
+ 3: "COMPLETE",
+ 4: "CANCELED",
+ 5: "FAILED",
+ 6: "SUSPENDED",
+ 7: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "SUBMITTED": 0,
+ "QUEUED": 1,
+ "ACTIVE": 2,
+ "COMPLETE": 3,
+ "CANCELED": 4,
+ "FAILED": 5,
+ "SUSPENDED": 6,
+ "UNKNOWN": 7,
+ }
+
+
+class ExperimentStatus:
+ """
+ Status: A generic status object.
+
+ state:
+ State .
+
+ timeOfStateChange:
+ time the status was last updated.
+
+ reason:
+ User friendly reason on how the state is inferred.
+
+
+ Attributes:
+ - state
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, timeOfStateChange=None, reason=None,):
+ self.state = state
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('ExperimentStatus')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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 ProcessStatus:
+ """
+ Attributes:
+ - state
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, timeOfStateChange=None, reason=None,):
+ self.state = state
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('ProcessStatus')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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 TaskStatus:
+ """
+ Attributes:
+ - state
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, timeOfStateChange=None, reason=None,):
+ self.state = state
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('TaskStatus')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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 JobStatus:
+ """
+ Attributes:
+ - jobState
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'jobState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, jobState=None, timeOfStateChange=None, reason=None,):
+ self.jobState = jobState
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.jobState = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('JobStatus')
+ if self.jobState is not None:
+ oprot.writeFieldBegin('jobState', TType.I32, 1)
+ oprot.writeI32(self.jobState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobState is None:
+ raise TProtocol.TProtocolException(message='Required field jobState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc
new file mode 100644
index 0000000..6997fb0
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/status/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc
new file mode 100644
index 0000000..3a2b6e8
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.py
new file mode 100644
index 0000000..ff6d729
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.py
@@ -0,0 +1,703 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+import apache.airavata.model.appcatalog.computeresource.ttypes
+import apache.airavata.model.data.movement.ttypes
+import apache.airavata.model.application.io.ttypes
+import apache.airavata.model.status.ttypes
+import apache.airavata.model.job.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class TaskTypes:
+ """
+ TaskTypes: An enumerated list of TaskTypes. Task being generic, the task type will provide the concrete interpretation.
+
+ """
+ ENV_SETUP = 0
+ DATA_STAGING = 1
+ JOB_SUBMISSION = 2
+ ENV_CLEANUP = 3
+ MONITORING = 4
+ OUTPUT_FETCHING = 5
+
+ _VALUES_TO_NAMES = {
+ 0: "ENV_SETUP",
+ 1: "DATA_STAGING",
+ 2: "JOB_SUBMISSION",
+ 3: "ENV_CLEANUP",
+ 4: "MONITORING",
+ 5: "OUTPUT_FETCHING",
+ }
+
+ _NAMES_TO_VALUES = {
+ "ENV_SETUP": 0,
+ "DATA_STAGING": 1,
+ "JOB_SUBMISSION": 2,
+ "ENV_CLEANUP": 3,
+ "MONITORING": 4,
+ "OUTPUT_FETCHING": 5,
+ }
+
+class DataStageType:
+ """
+ DataStagingTaskModel: A structure holding the data staging task details.
+
+ Source and Destination locations includes standard representation of protocol, host, port and path
+ A friendly description of the task, usally used to communicate information to users.
+
+ """
+ INPUT = 0
+ OUPUT = 1
+ ARCHIVE_OUTPUT = 2
+
+ _VALUES_TO_NAMES = {
+ 0: "INPUT",
+ 1: "OUPUT",
+ 2: "ARCHIVE_OUTPUT",
+ }
+
+ _NAMES_TO_VALUES = {
+ "INPUT": 0,
+ "OUPUT": 1,
+ "ARCHIVE_OUTPUT": 2,
+ }
+
+
+class TaskModel:
+ """
+ TaskModel: A structure holding the generic task details.
+
+ taskDetail:
+ A friendly description of the task, usally used to communicate information to users.
+
+ subTaskModel:
+ A generic byte object for the Task developer to store internal serialized data into registry catalogs.
+
+ Attributes:
+ - taskId
+ - taskType
+ - parentProcessId
+ - creationTime
+ - lastUpdateTime
+ - taskStatus
+ - taskDetail
+ - subTaskModel
+ - taskError
+ - jobs
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'taskId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I32, 'taskType', None, None, ), # 2
+ (3, TType.STRING, 'parentProcessId', None, None, ), # 3
+ (4, TType.I64, 'creationTime', None, None, ), # 4
+ (5, TType.I64, 'lastUpdateTime', None, None, ), # 5
+ (6, TType.STRUCT, 'taskStatus', (apache.airavata.model.status.ttypes.TaskStatus, apache.airavata.model.status.ttypes.TaskStatus.thrift_spec), None, ), # 6
+ (7, TType.STRING, 'taskDetail', None, None, ), # 7
+ (8, TType.STRING, 'subTaskModel', None, None, ), # 8
+ (9, TType.STRUCT, 'taskError', (apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec), None, ), # 9
+ (10, TType.LIST, 'jobs', (TType.STRUCT,(apache.airavata.model.job.ttypes.JobModel, apache.airavata.model.job.ttypes.JobModel.thrift_spec)), None, ), # 10
+ )
+
+ def __init__(self, taskId=thrift_spec[1][4], taskType=None, parentProcessId=None, creationTime=None, lastUpdateTime=None, taskStatus=None, taskDetail=None, subTaskModel=None, taskError=None, jobs=None,):
+ self.taskId = taskId
+ self.taskType = taskType
+ self.parentProcessId = parentProcessId
+ self.creationTime = creationTime
+ self.lastUpdateTime = lastUpdateTime
+ self.taskStatus = taskStatus
+ self.taskDetail = taskDetail
+ self.subTaskModel = subTaskModel
+ self.taskError = taskError
+ self.jobs = jobs
+
+ 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.taskId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.taskType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.parentProcessId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.lastUpdateTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRUCT:
+ self.taskStatus = apache.airavata.model.status.ttypes.TaskStatus()
+ self.taskStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.taskDetail = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.subTaskModel = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRUCT:
+ self.taskError = apache.airavata.model.commons.ttypes.ErrorModel()
+ self.taskError.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.jobs = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = apache.airavata.model.job.ttypes.JobModel()
+ _elem5.read(iprot)
+ self.jobs.append(_elem5)
+ 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('TaskModel')
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 1)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.taskType is not None:
+ oprot.writeFieldBegin('taskType', TType.I32, 2)
+ oprot.writeI32(self.taskType)
+ oprot.writeFieldEnd()
+ if self.parentProcessId is not None:
+ oprot.writeFieldBegin('parentProcessId', TType.STRING, 3)
+ oprot.writeString(self.parentProcessId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 4)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastUpdateTime is not None:
+ oprot.writeFieldBegin('lastUpdateTime', TType.I64, 5)
+ oprot.writeI64(self.lastUpdateTime)
+ oprot.writeFieldEnd()
+ if self.taskStatus is not None:
+ oprot.writeFieldBegin('taskStatus', TType.STRUCT, 6)
+ self.taskStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.taskDetail is not None:
+ oprot.writeFieldBegin('taskDetail', TType.STRING, 7)
+ oprot.writeString(self.taskDetail)
+ oprot.writeFieldEnd()
+ if self.subTaskModel is not None:
+ oprot.writeFieldBegin('subTaskModel', TType.STRING, 8)
+ oprot.writeString(self.subTaskModel)
+ oprot.writeFieldEnd()
+ if self.taskError is not None:
+ oprot.writeFieldBegin('taskError', TType.STRUCT, 9)
+ self.taskError.write(oprot)
+ oprot.writeFieldEnd()
+ if self.jobs is not None:
+ oprot.writeFieldBegin('jobs', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.jobs))
+ for iter6 in self.jobs:
+ iter6.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.taskType is None:
+ raise TProtocol.TProtocolException(message='Required field taskType is unset!')
+ if self.parentProcessId is None:
+ raise TProtocol.TProtocolException(message='Required field parentProcessId is unset!')
+ if self.creationTime is None:
+ raise TProtocol.TProtocolException(message='Required field creationTime is unset!')
+ if self.lastUpdateTime is None:
+ raise TProtocol.TProtocolException(message='Required field lastUpdateTime is unset!')
+ if self.taskStatus is None:
+ raise TProtocol.TProtocolException(message='Required field taskStatus is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.taskId)
+ value = (value * 31) ^ hash(self.taskType)
+ value = (value * 31) ^ hash(self.parentProcessId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastUpdateTime)
+ value = (value * 31) ^ hash(self.taskStatus)
+ value = (value * 31) ^ hash(self.taskDetail)
+ value = (value * 31) ^ hash(self.subTaskModel)
+ value = (value * 31) ^ hash(self.taskError)
+ value = (value * 31) ^ hash(self.jobs)
+ 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 DataStagingTaskModel:
+ """
+ Attributes:
+ - source
+ - destination
+ - type
+ - transferStartTime
+ - transferEndTime
+ - transferRate
+ - processInput
+ - processOutput
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'source', None, None, ), # 1
+ (2, TType.STRING, 'destination', None, None, ), # 2
+ (3, TType.I32, 'type', None, None, ), # 3
+ (4, TType.I64, 'transferStartTime', None, None, ), # 4
+ (5, TType.I64, 'transferEndTime', None, None, ), # 5
+ (6, TType.STRING, 'transferRate', None, None, ), # 6
+ (7, TType.STRUCT, 'processInput', (apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec), None, ), # 7
+ (8, TType.STRUCT, 'processOutput', (apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec), None, ), # 8
+ )
+
+ def __init__(self, source=None, destination=None, type=None, transferStartTime=None, transferEndTime=None, transferRate=None, processInput=None, processOutput=None,):
+ self.source = source
+ self.destination = destination
+ self.type = type
+ self.transferStartTime = transferStartTime
+ self.transferEndTime = transferEndTime
+ self.transferRate = transferRate
+ self.processInput = processInput
+ self.processOutput = processOutput
+
+ 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.source = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.destination = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.type = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.transferStartTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.transferEndTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.transferRate = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRUCT:
+ self.processInput = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ self.processInput.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRUCT:
+ self.processOutput = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ self.processOutput.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('DataStagingTaskModel')
+ if self.source is not None:
+ oprot.writeFieldBegin('source', TType.STRING, 1)
+ oprot.writeString(self.source)
+ oprot.writeFieldEnd()
+ if self.destination is not None:
+ oprot.writeFieldBegin('destination', TType.STRING, 2)
+ oprot.writeString(self.destination)
+ oprot.writeFieldEnd()
+ if self.type is not None:
+ oprot.writeFieldBegin('type', TType.I32, 3)
+ oprot.writeI32(self.type)
+ oprot.writeFieldEnd()
+ if self.transferStartTime is not None:
+ oprot.writeFieldBegin('transferStartTime', TType.I64, 4)
+ oprot.writeI64(self.transferStartTime)
+ oprot.writeFieldEnd()
+ if self.transferEndTime is not None:
+ oprot.writeFieldBegin('transferEndTime', TType.I64, 5)
+ oprot.writeI64(self.transferEndTime)
+ oprot.writeFieldEnd()
+ if self.transferRate is not None:
+ oprot.writeFieldBegin('transferRate', TType.STRING, 6)
+ oprot.writeString(self.transferRate)
+ oprot.writeFieldEnd()
+ if self.processInput is not None:
+ oprot.writeFieldBegin('processInput', TType.STRUCT, 7)
+ self.processInput.write(oprot)
+ oprot.writeFieldEnd()
+ if self.processOutput is not None:
+ oprot.writeFieldBegin('processOutput', TType.STRUCT, 8)
+ self.processOutput.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.source is None:
+ raise TProtocol.TProtocolException(message='Required field source is unset!')
+ if self.destination is None:
+ raise TProtocol.TProtocolException(message='Required field destination is unset!')
+ if self.type is None:
+ raise TProtocol.TProtocolException(message='Required field type is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.source)
+ value = (value * 31) ^ hash(self.destination)
+ value = (value * 31) ^ hash(self.type)
+ value = (value * 31) ^ hash(self.transferStartTime)
+ value = (value * 31) ^ hash(self.transferEndTime)
+ value = (value * 31) ^ hash(self.transferRate)
+ value = (value * 31) ^ hash(self.processInput)
+ value = (value * 31) ^ hash(self.processOutput)
+ 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 EnvironmentSetupTaskModel:
+ """
+ EnvironmentSetupTaskModel: A structure holding the environment creation task details
+
+
+ Attributes:
+ - location
+ - protocol
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'location', None, None, ), # 1
+ (2, TType.I32, 'protocol', None, None, ), # 2
+ )
+
+ def __init__(self, location=None, protocol=None,):
+ self.location = location
+ self.protocol = protocol
+
+ 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.location = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.protocol = 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('EnvironmentSetupTaskModel')
+ if self.location is not None:
+ oprot.writeFieldBegin('location', TType.STRING, 1)
+ oprot.writeString(self.location)
+ oprot.writeFieldEnd()
+ if self.protocol is not None:
+ oprot.writeFieldBegin('protocol', TType.I32, 2)
+ oprot.writeI32(self.protocol)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.location is None:
+ raise TProtocol.TProtocolException(message='Required field location is unset!')
+ if self.protocol is None:
+ raise TProtocol.TProtocolException(message='Required field protocol is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.location)
+ value = (value * 31) ^ hash(self.protocol)
+ 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 JobSubmissionTaskModel:
+ """
+ Attributes:
+ - jobSubmissionProtocol
+ - monitorMode
+ - wallTime
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'jobSubmissionProtocol', None, None, ), # 1
+ (2, TType.I32, 'monitorMode', None, None, ), # 2
+ (3, TType.I32, 'wallTime', None, None, ), # 3
+ )
+
+ def __init__(self, jobSubmissionProtocol=None, monitorMode=None, wallTime=None,):
+ self.jobSubmissionProtocol = jobSubmissionProtocol
+ self.monitorMode = monitorMode
+ self.wallTime = wallTime
+
+ 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.I32:
+ self.jobSubmissionProtocol = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.monitorMode = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.wallTime = 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('JobSubmissionTaskModel')
+ if self.jobSubmissionProtocol is not None:
+ oprot.writeFieldBegin('jobSubmissionProtocol', TType.I32, 1)
+ oprot.writeI32(self.jobSubmissionProtocol)
+ oprot.writeFieldEnd()
+ if self.monitorMode is not None:
+ oprot.writeFieldBegin('monitorMode', TType.I32, 2)
+ oprot.writeI32(self.monitorMode)
+ oprot.writeFieldEnd()
+ if self.wallTime is not None:
+ oprot.writeFieldBegin('wallTime', TType.I32, 3)
+ oprot.writeI32(self.wallTime)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobSubmissionProtocol is None:
+ raise TProtocol.TProtocolException(message='Required field jobSubmissionProtocol is unset!')
+ if self.monitorMode is None:
+ raise TProtocol.TProtocolException(message='Required field monitorMode is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobSubmissionProtocol)
+ value = (value * 31) ^ hash(self.monitorMode)
+ value = (value * 31) ^ hash(self.wallTime)
+ 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 MonitorTaskModel:
+ """
+ Attributes:
+ - monitorMode
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'monitorMode', None, None, ), # 1
+ )
+
+ def __init__(self, monitorMode=None,):
+ self.monitorMode = monitorMode
+
+ 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.I32:
+ self.monitorMode = 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('MonitorTaskModel')
+ if self.monitorMode is not None:
+ oprot.writeFieldBegin('monitorMode', TType.I32, 1)
+ oprot.writeI32(self.monitorMode)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.monitorMode is None:
+ raise TProtocol.TProtocolException(message='Required field monitorMode is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.monitorMode)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc
new file mode 100644
index 0000000..08a1ef8
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/task/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.py
new file mode 100644
index 0000000..76c0140
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.py
@@ -0,0 +1,34 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+import apache.airavata.model.workspace.ttypes
+import apache.airavata.api.error.ttypes
+import apache.airavata.model.messaging.event.ttypes
+import apache.airavata.model.security.ttypes
+import apache.airavata.model.experiment.ttypes
+import apache.airavata.model.job.ttypes
+import apache.airavata.model.task.ttypes
+import apache.airavata.model.process.ttypes
+import apache.airavata.model.scheduling.ttypes
+import apache.airavata.model.status.ttypes
+import apache.airavata.model.data.movement.ttypes
+import apache.airavata.model.data.replica.ttypes
+import apache.airavata.model.user.ttypes
+import apache.airavata.model.group.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc
new file mode 100644
index 0000000..18ba5f6
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc
new file mode 100644
index 0000000..0203575
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/constants.py
new file mode 100644
index 0000000..e3e9481
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/constants.py
@@ -0,0 +1,12 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
+USER_PROFILE_VERSION = "1.0"
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.py
new file mode 100644
index 0000000..153a183
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.py
@@ -0,0 +1,721 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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 Status:
+ ACTIVE = 0
+ CONFIRMED = 1
+ APPROVED = 2
+ DELETED = 3
+ DUPLICATE = 4
+ GRACE_PERIOD = 5
+ INVITED = 6
+ DENIED = 7
+ PENDING = 8
+ PENDING_APPROVAL = 9
+ PENDING_CONFIRMATION = 10
+ SUSPENDED = 11
+ DECLINED = 12
+ EXPIRED = 13
+
+ _VALUES_TO_NAMES = {
+ 0: "ACTIVE",
+ 1: "CONFIRMED",
+ 2: "APPROVED",
+ 3: "DELETED",
+ 4: "DUPLICATE",
+ 5: "GRACE_PERIOD",
+ 6: "INVITED",
+ 7: "DENIED",
+ 8: "PENDING",
+ 9: "PENDING_APPROVAL",
+ 10: "PENDING_CONFIRMATION",
+ 11: "SUSPENDED",
+ 12: "DECLINED",
+ 13: "EXPIRED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "ACTIVE": 0,
+ "CONFIRMED": 1,
+ "APPROVED": 2,
+ "DELETED": 3,
+ "DUPLICATE": 4,
+ "GRACE_PERIOD": 5,
+ "INVITED": 6,
+ "DENIED": 7,
+ "PENDING": 8,
+ "PENDING_APPROVAL": 9,
+ "PENDING_CONFIRMATION": 10,
+ "SUSPENDED": 11,
+ "DECLINED": 12,
+ "EXPIRED": 13,
+ }
+
+class USCitizenship:
+ """
+ U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
+
+ """
+ US_CITIZEN = 0
+ US_PERMANENT_RESIDENT = 1
+ OTHER_NON_US_CITIZEN = 2
+
+ _VALUES_TO_NAMES = {
+ 0: "US_CITIZEN",
+ 1: "US_PERMANENT_RESIDENT",
+ 2: "OTHER_NON_US_CITIZEN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "US_CITIZEN": 0,
+ "US_PERMANENT_RESIDENT": 1,
+ "OTHER_NON_US_CITIZEN": 2,
+ }
+
+class ethnicity:
+ """
+ Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or
+ Central American, or other Spanish culture or origin, regardless of race.
+
+ """
+ HISPANIC_LATINO = 0
+ NOT_HISPANIC_LATINO = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "HISPANIC_LATINO",
+ 1: "NOT_HISPANIC_LATINO",
+ }
+
+ _NAMES_TO_VALUES = {
+ "HISPANIC_LATINO": 0,
+ "NOT_HISPANIC_LATINO": 1,
+ }
+
+class race:
+ """
+ * Asian - a person having origins in any of the original peoples of the Far East,
+ * Southeast Asia, or the Indian subcontinent including, for example, Cambodia,
+ * China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands,
+ * Thailand, and Vietnam.
+ * American Indian or Alaskan Native - a person having origins in any of the original
+ * peoples of North and South America (including Central America), and who maintains
+ * tribal affiliation or community attachment.
+ * Black or African American - a person having origins in any of the black racial groups
+ * of Africa.
+ * Native Hawaiian or Pacific Islander - a person having origins in any of the original
+ * peoples of Hawaii, Guan, Samoa, or other Pacific Islands.
+ * White - a person having origins in any of the original peoples of Europe, the Middle East, or North Africa.
+ *
+ """
+ ASIAN = 0
+ AMERICAN_INDIAN_OR_ALASKAN_NATIVE = 1
+ BLACK_OR_AFRICAN_AMERICAN = 2
+ NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER = 3
+ WHITE = 4
+
+ _VALUES_TO_NAMES = {
+ 0: "ASIAN",
+ 1: "AMERICAN_INDIAN_OR_ALASKAN_NATIVE",
+ 2: "BLACK_OR_AFRICAN_AMERICAN",
+ 3: "NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER",
+ 4: "WHITE",
+ }
+
+ _NAMES_TO_VALUES = {
+ "ASIAN": 0,
+ "AMERICAN_INDIAN_OR_ALASKAN_NATIVE": 1,
+ "BLACK_OR_AFRICAN_AMERICAN": 2,
+ "NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER": 3,
+ "WHITE": 4,
+ }
+
+class disability:
+ HEARING_IMAPAIRED = 0
+ VISUAL_IMPAIRED = 1
+ MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT = 2
+ OTHER_IMPAIRMENT = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "HEARING_IMAPAIRED",
+ 1: "VISUAL_IMPAIRED",
+ 2: "MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT",
+ 3: "OTHER_IMPAIRMENT",
+ }
+
+ _NAMES_TO_VALUES = {
+ "HEARING_IMAPAIRED": 0,
+ "VISUAL_IMPAIRED": 1,
+ "MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT": 2,
+ "OTHER_IMPAIRMENT": 3,
+ }
+
+
+class NSFDemographics:
+ """
+ A structure holding the NSF Demographic information.
+
+
+
+ Attributes:
+ - gender
+ - usCitizenship
+ - ethnicities
+ - races
+ - disabilities
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'gender', None, None, ), # 1
+ (2, TType.I32, 'usCitizenship', None, None, ), # 2
+ (3, TType.LIST, 'ethnicities', (TType.I32,None), None, ), # 3
+ (4, TType.LIST, 'races', (TType.I32,None), None, ), # 4
+ (5, TType.LIST, 'disabilities', (TType.I32,None), None, ), # 5
+ )
+
+ def __init__(self, gender=None, usCitizenship=None, ethnicities=None, races=None, disabilities=None,):
+ self.gender = gender
+ self.usCitizenship = usCitizenship
+ self.ethnicities = ethnicities
+ self.races = races
+ self.disabilities = disabilities
+
+ 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.gender = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.usCitizenship = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.LIST:
+ self.ethnicities = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readI32()
+ self.ethnicities.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.LIST:
+ self.races = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = iprot.readI32()
+ self.races.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.LIST:
+ self.disabilities = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = iprot.readI32()
+ self.disabilities.append(_elem17)
+ 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('NSFDemographics')
+ if self.gender is not None:
+ oprot.writeFieldBegin('gender', TType.STRING, 1)
+ oprot.writeString(self.gender)
+ oprot.writeFieldEnd()
+ if self.usCitizenship is not None:
+ oprot.writeFieldBegin('usCitizenship', TType.I32, 2)
+ oprot.writeI32(self.usCitizenship)
+ oprot.writeFieldEnd()
+ if self.ethnicities is not None:
+ oprot.writeFieldBegin('ethnicities', TType.LIST, 3)
+ oprot.writeListBegin(TType.I32, len(self.ethnicities))
+ for iter18 in self.ethnicities:
+ oprot.writeI32(iter18)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.races is not None:
+ oprot.writeFieldBegin('races', TType.LIST, 4)
+ oprot.writeListBegin(TType.I32, len(self.races))
+ for iter19 in self.races:
+ oprot.writeI32(iter19)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.disabilities is not None:
+ oprot.writeFieldBegin('disabilities', TType.LIST, 5)
+ oprot.writeListBegin(TType.I32, len(self.disabilities))
+ for iter20 in self.disabilities:
+ oprot.writeI32(iter20)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.gender)
+ value = (value * 31) ^ hash(self.usCitizenship)
+ value = (value * 31) ^ hash(self.ethnicities)
+ value = (value * 31) ^ hash(self.races)
+ value = (value * 31) ^ hash(self.disabilities)
+ 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 UserProfile:
+ """
+ * A structure holding the user profile and its child models.
+ *
+ * Notes:
+ * The model does not include passwords as it is assumed an external identity provider is used to authenticate user.
+ * References:
+ * NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc
+ * LDAP Schema - https://tools.ietf.org/html/rfc4519
+ * SCIM 2.0 - https://tools.ietf.org/html/rfc7643
+ *
+ * userModelVersion:
+ * Version number of profile
+ *
+ * airavataInternalUserId:
+ * internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways
+ * (that is, never shown to users), never reassigned, REQUIRED
+ *
+ * userId:
+ * Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep
+ * user name less opaque. OpenID Connect maintains them to be opaque.
+ *
+ * emails:
+ * Email identifier are Verified, REQUIRED and MULTIVALUED
+ *
+ * userName:
+ * Name-based identifiers can be multivalues. To keep it simple, Airavata will make it a string.
+ * In the future these can be enumerated as:
+ * Official name (as asserted possibly by some external identity provider)
+ * Prefered name (as asserted or suggested by user directly)
+ * Components:
+ * givenName
+ * surname (familyName)
+ * displayName (often asserted by user to handle things like middle names, suffix, prefix, and the like)
+ *
+ * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid)
+ *
+ * phones: Telephone MULTIVALUED
+ *
+ * country: Country of Residance
+ *
+ * nationality Countries of citizenship
+ *
+ * comments:
+ * Free-form information (treated as opaque by Airavata and simply passed to resource).
+ *
+ * labeledURI:
+ * Google Scholar, Web of Science, ACS, e.t.c
+
+ Attributes:
+ - userModelVersion
+ - airavataInternalUserId
+ - userId
+ - emails
+ - userName
+ - orcidId
+ - phones
+ - country
+ - nationality
+ - homeOrganization
+ - orginationAffiliation
+ - creationTime
+ - lastAccessTime
+ - validUntil
+ - State
+ - comments
+ - labeledURI
+ - gpgKey
+ - timeZone
+ - nsfDemographics
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'userModelVersion', None, "1.0", ), # 1
+ (2, TType.STRING, 'airavataInternalUserId', None, "DO_NOT_SET_AT_CLIENTS", ), # 2
+ (3, TType.STRING, 'userId', None, None, ), # 3
+ (4, TType.LIST, 'emails', (TType.STRING,None), None, ), # 4
+ (5, TType.STRING, 'userName', None, None, ), # 5
+ (6, TType.STRING, 'orcidId', None, None, ), # 6
+ (7, TType.LIST, 'phones', (TType.STRING,None), None, ), # 7
+ (8, TType.STRING, 'country', None, None, ), # 8
+ (9, TType.LIST, 'nationality', (TType.STRING,None), None, ), # 9
+ (10, TType.STRING, 'homeOrganization', None, None, ), # 10
+ (11, TType.STRING, 'orginationAffiliation', None, None, ), # 11
+ (12, TType.STRING, 'creationTime', None, None, ), # 12
+ (13, TType.STRING, 'lastAccessTime', None, None, ), # 13
+ (14, TType.STRING, 'validUntil', None, None, ), # 14
+ (15, TType.I32, 'State', None, None, ), # 15
+ (16, TType.STRING, 'comments', None, None, ), # 16
+ (17, TType.LIST, 'labeledURI', (TType.STRING,None), None, ), # 17
+ (18, TType.STRING, 'gpgKey', None, None, ), # 18
+ (19, TType.STRING, 'timeZone', None, None, ), # 19
+ (20, TType.STRUCT, 'nsfDemographics', (NSFDemographics, NSFDemographics.thrift_spec), None, ), # 20
+ )
+
+ def __init__(self, userModelVersion=thrift_spec[1][4], airavataInternalUserId=thrift_spec[2][4], userId=None, emails=None, userName=None, orcidId=None, phones=None, country=None, nationality=None, homeOrganization=None, orginationAffiliation=None, creationTime=None, lastAccessTime=None, validUntil=None, State=None, comments=None, labeledURI=None, gpgKey=None, timeZone=None, nsfDemographics=None,):
+ self.userModelVersion = userModelVersion
+ self.airavataInternalUserId = airavataInternalUserId
+ self.userId = userId
+ self.emails = emails
+ self.userName = userName
+ self.orcidId = orcidId
+ self.phones = phones
+ self.country = country
+ self.nationality = nationality
+ self.homeOrganization = homeOrganization
+ self.orginationAffiliation = orginationAffiliation
+ self.creationTime = creationTime
+ self.lastAccessTime = lastAccessTime
+ self.validUntil = validUntil
+ self.State = State
+ self.comments = comments
+ self.labeledURI = labeledURI
+ self.gpgKey = gpgKey
+ self.timeZone = timeZone
+ self.nsfDemographics = nsfDemographics
+
+ 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.userModelVersion = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.airavataInternalUserId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.userId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.LIST:
+ self.emails = []
+ (_etype24, _size21) = iprot.readListBegin()
+ for _i25 in xrange(_size21):
+ _elem26 = iprot.readString()
+ self.emails.append(_elem26)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.userName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.orcidId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.phones = []
+ (_etype30, _size27) = iprot.readListBegin()
+ for _i31 in xrange(_size27):
+ _elem32 = iprot.readString()
+ self.phones.append(_elem32)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.country = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.nationality = []
+ (_etype36, _size33) = iprot.readListBegin()
+ for _i37 in xrange(_size33):
+ _elem38 = iprot.readString()
+ self.nationality.append(_elem38)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.homeOrganization = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.orginationAffiliation = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.STRING:
+ self.creationTime = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.STRING:
+ self.lastAccessTime = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.STRING:
+ self.validUntil = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 15:
+ if ftype == TType.I32:
+ self.State = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 16:
+ if ftype == TType.STRING:
+ self.comments = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 17:
+ if ftype == TType.LIST:
+ self.labeledURI = []
+ (_etype42, _size39) = iprot.readListBegin()
+ for _i43 in xrange(_size39):
+ _elem44 = iprot.readString()
+ self.labeledURI.append(_elem44)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 18:
+ if ftype == TType.STRING:
+ self.gpgKey = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 19:
+ if ftype == TType.STRING:
+ self.timeZone = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 20:
+ if ftype == TType.STRUCT:
+ self.nsfDemographics = NSFDemographics()
+ self.nsfDemographics.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('UserProfile')
+ if self.userModelVersion is not None:
+ oprot.writeFieldBegin('userModelVersion', TType.STRING, 1)
+ oprot.writeString(self.userModelVersion)
+ oprot.writeFieldEnd()
+ if self.airavataInternalUserId is not None:
+ oprot.writeFieldBegin('airavataInternalUserId', TType.STRING, 2)
+ oprot.writeString(self.airavataInternalUserId)
+ oprot.writeFieldEnd()
+ if self.userId is not None:
+ oprot.writeFieldBegin('userId', TType.STRING, 3)
+ oprot.writeString(self.userId)
+ oprot.writeFieldEnd()
+ if self.emails is not None:
+ oprot.writeFieldBegin('emails', TType.LIST, 4)
+ oprot.writeListBegin(TType.STRING, len(self.emails))
+ for iter45 in self.emails:
+ oprot.writeString(iter45)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.userName is not None:
+ oprot.writeFieldBegin('userName', TType.STRING, 5)
+ oprot.writeString(self.userName)
+ oprot.writeFieldEnd()
+ if self.orcidId is not None:
+ oprot.writeFieldBegin('orcidId', TType.STRING, 6)
+ oprot.writeString(self.orcidId)
+ oprot.writeFieldEnd()
+ if self.phones is not None:
+ oprot.writeFieldBegin('phones', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRING, len(self.phones))
+ for iter46 in self.phones:
+ oprot.writeString(iter46)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.country is not None:
+ oprot.writeFieldBegin('country', TType.STRING, 8)
+ oprot.writeString(self.country)
+ oprot.writeFieldEnd()
+ if self.nationality is not None:
+ oprot.writeFieldBegin('nationality', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRING, len(self.nationality))
+ for iter47 in self.nationality:
+ oprot.writeString(iter47)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.homeOrganization is not None:
+ oprot.writeFieldBegin('homeOrganization', TType.STRING, 10)
+ oprot.writeString(self.homeOrganization)
+ oprot.writeFieldEnd()
+ if self.orginationAffiliation is not None:
+ oprot.writeFieldBegin('orginationAffiliation', TType.STRING, 11)
+ oprot.writeString(self.orginationAffiliation)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.STRING, 12)
+ oprot.writeString(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastAccessTime is not None:
+ oprot.writeFieldBegin('lastAccessTime', TType.STRING, 13)
+ oprot.writeString(self.lastAccessTime)
+ oprot.writeFieldEnd()
+ if self.validUntil is not None:
+ oprot.writeFieldBegin('validUntil', TType.STRING, 14)
+ oprot.writeString(self.validUntil)
+ oprot.writeFieldEnd()
+ if self.State is not None:
+ oprot.writeFieldBegin('State', TType.I32, 15)
+ oprot.writeI32(self.State)
+ oprot.writeFieldEnd()
+ if self.comments is not None:
+ oprot.writeFieldBegin('comments', TType.STRING, 16)
+ oprot.writeString(self.comments)
+ oprot.writeFieldEnd()
+ if self.labeledURI is not None:
+ oprot.writeFieldBegin('labeledURI', TType.LIST, 17)
+ oprot.writeListBegin(TType.STRING, len(self.labeledURI))
+ for iter48 in self.labeledURI:
+ oprot.writeString(iter48)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.gpgKey is not None:
+ oprot.writeFieldBegin('gpgKey', TType.STRING, 18)
+ oprot.writeString(self.gpgKey)
+ oprot.writeFieldEnd()
+ if self.timeZone is not None:
+ oprot.writeFieldBegin('timeZone', TType.STRING, 19)
+ oprot.writeString(self.timeZone)
+ oprot.writeFieldEnd()
+ if self.nsfDemographics is not None:
+ oprot.writeFieldBegin('nsfDemographics', TType.STRUCT, 20)
+ self.nsfDemographics.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.userModelVersion is None:
+ raise TProtocol.TProtocolException(message='Required field userModelVersion is unset!')
+ if self.airavataInternalUserId is None:
+ raise TProtocol.TProtocolException(message='Required field airavataInternalUserId is unset!')
+ if self.userId is None:
+ raise TProtocol.TProtocolException(message='Required field userId is unset!')
+ if self.emails is None:
+ raise TProtocol.TProtocolException(message='Required field emails is unset!')
+ if self.creationTime is None:
+ raise TProtocol.TProtocolException(message='Required field creationTime is unset!')
+ if self.lastAccessTime is None:
+ raise TProtocol.TProtocolException(message='Required field lastAccessTime is unset!')
+ if self.validUntil is None:
+ raise TProtocol.TProtocolException(message='Required field validUntil is unset!')
+ if self.State is None:
+ raise TProtocol.TProtocolException(message='Required field State is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.userModelVersion)
+ value = (value * 31) ^ hash(self.airavataInternalUserId)
+ value = (value * 31) ^ hash(self.userId)
+ value = (value * 31) ^ hash(self.emails)
+ value = (value * 31) ^ hash(self.userName)
+ value = (value * 31) ^ hash(self.orcidId)
+ value = (value * 31) ^ hash(self.phones)
+ value = (value * 31) ^ hash(self.country)
+ value = (value * 31) ^ hash(self.nationality)
+ value = (value * 31) ^ hash(self.homeOrganization)
+ value = (value * 31) ^ hash(self.orginationAffiliation)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastAccessTime)
+ value = (value * 31) ^ hash(self.validUntil)
+ value = (value * 31) ^ hash(self.State)
+ value = (value * 31) ^ hash(self.comments)
+ value = (value * 31) ^ hash(self.labeledURI)
+ value = (value * 31) ^ hash(self.gpgKey)
+ value = (value * 31) ^ hash(self.timeZone)
+ value = (value * 31) ^ hash(self.nsfDemographics)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc
new file mode 100644
index 0000000..de0c9c1
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/user/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc
new file mode 100644
index 0000000..2748ee1
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
[04/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/ttypes.py
new file mode 100644
index 0000000..d227f3f
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/ttypes.py
@@ -0,0 +1,3474 @@
+#
+# 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.appcatalog.computeresource.ttypes
+import apache.airavata.model.appcatalog.appinterface.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ExperimentState:
+ CREATED = 0
+ VALIDATED = 1
+ SCHEDULED = 2
+ LAUNCHED = 3
+ EXECUTING = 4
+ CANCELING = 5
+ CANCELED = 6
+ SUSPENDED = 7
+ COMPLETED = 8
+ FAILED = 9
+ UNKNOWN = 10
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "VALIDATED",
+ 2: "SCHEDULED",
+ 3: "LAUNCHED",
+ 4: "EXECUTING",
+ 5: "CANCELING",
+ 6: "CANCELED",
+ 7: "SUSPENDED",
+ 8: "COMPLETED",
+ 9: "FAILED",
+ 10: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "VALIDATED": 1,
+ "SCHEDULED": 2,
+ "LAUNCHED": 3,
+ "EXECUTING": 4,
+ "CANCELING": 5,
+ "CANCELED": 6,
+ "SUSPENDED": 7,
+ "COMPLETED": 8,
+ "FAILED": 9,
+ "UNKNOWN": 10,
+ }
+
+class ExperimentSearchFields:
+ EXPERIMENT_NAME = 0
+ EXPERIMENT_DESC = 1
+ APPLICATION_ID = 2
+ FROM_DATE = 3
+ TO_DATE = 4
+ STATUS = 5
+
+ _VALUES_TO_NAMES = {
+ 0: "EXPERIMENT_NAME",
+ 1: "EXPERIMENT_DESC",
+ 2: "APPLICATION_ID",
+ 3: "FROM_DATE",
+ 4: "TO_DATE",
+ 5: "STATUS",
+ }
+
+ _NAMES_TO_VALUES = {
+ "EXPERIMENT_NAME": 0,
+ "EXPERIMENT_DESC": 1,
+ "APPLICATION_ID": 2,
+ "FROM_DATE": 3,
+ "TO_DATE": 4,
+ "STATUS": 5,
+ }
+
+class WorkflowNodeState:
+ INVOKED = 0
+ EXECUTING = 1
+ CANCELING = 2
+ CANCELED = 3
+ SUSPENDED = 4
+ COMPLETED = 5
+ FAILED = 6
+ UNKNOWN = 7
+
+ _VALUES_TO_NAMES = {
+ 0: "INVOKED",
+ 1: "EXECUTING",
+ 2: "CANCELING",
+ 3: "CANCELED",
+ 4: "SUSPENDED",
+ 5: "COMPLETED",
+ 6: "FAILED",
+ 7: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "INVOKED": 0,
+ "EXECUTING": 1,
+ "CANCELING": 2,
+ "CANCELED": 3,
+ "SUSPENDED": 4,
+ "COMPLETED": 5,
+ "FAILED": 6,
+ "UNKNOWN": 7,
+ }
+
+class TaskState:
+ WAITING = 0
+ STARTED = 1
+ PRE_PROCESSING = 2
+ CONFIGURING_WORKSPACE = 3
+ INPUT_DATA_STAGING = 4
+ OUTPUT_DATA_STAGING = 5
+ POST_PROCESSING = 6
+ EXECUTING = 7
+ CANCELING = 8
+ CANCELED = 9
+ COMPLETED = 10
+ FAILED = 11
+ UNKNOWN = 12
+
+ _VALUES_TO_NAMES = {
+ 0: "WAITING",
+ 1: "STARTED",
+ 2: "PRE_PROCESSING",
+ 3: "CONFIGURING_WORKSPACE",
+ 4: "INPUT_DATA_STAGING",
+ 5: "OUTPUT_DATA_STAGING",
+ 6: "POST_PROCESSING",
+ 7: "EXECUTING",
+ 8: "CANCELING",
+ 9: "CANCELED",
+ 10: "COMPLETED",
+ 11: "FAILED",
+ 12: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "WAITING": 0,
+ "STARTED": 1,
+ "PRE_PROCESSING": 2,
+ "CONFIGURING_WORKSPACE": 3,
+ "INPUT_DATA_STAGING": 4,
+ "OUTPUT_DATA_STAGING": 5,
+ "POST_PROCESSING": 6,
+ "EXECUTING": 7,
+ "CANCELING": 8,
+ "CANCELED": 9,
+ "COMPLETED": 10,
+ "FAILED": 11,
+ "UNKNOWN": 12,
+ }
+
+class JobState:
+ SUBMITTED = 0
+ UN_SUBMITTED = 1
+ SETUP = 2
+ QUEUED = 3
+ ACTIVE = 4
+ COMPLETE = 5
+ CANCELING = 6
+ CANCELED = 7
+ FAILED = 8
+ HELD = 9
+ SUSPENDED = 10
+ UNKNOWN = 11
+
+ _VALUES_TO_NAMES = {
+ 0: "SUBMITTED",
+ 1: "UN_SUBMITTED",
+ 2: "SETUP",
+ 3: "QUEUED",
+ 4: "ACTIVE",
+ 5: "COMPLETE",
+ 6: "CANCELING",
+ 7: "CANCELED",
+ 8: "FAILED",
+ 9: "HELD",
+ 10: "SUSPENDED",
+ 11: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "SUBMITTED": 0,
+ "UN_SUBMITTED": 1,
+ "SETUP": 2,
+ "QUEUED": 3,
+ "ACTIVE": 4,
+ "COMPLETE": 5,
+ "CANCELING": 6,
+ "CANCELED": 7,
+ "FAILED": 8,
+ "HELD": 9,
+ "SUSPENDED": 10,
+ "UNKNOWN": 11,
+ }
+
+class TransferState:
+ DIRECTORY_SETUP = 0
+ UPLOAD = 1
+ DOWNLOAD = 2
+ ACTIVE = 3
+ COMPLETE = 4
+ STDOUT_DOWNLOAD = 5
+ STDERROR_DOWNLOAD = 6
+ CANCELING = 7
+ CANCELED = 8
+ FAILED = 9
+ HELD = 10
+ SUSPENDED = 11
+ UNKNOWN = 12
+
+ _VALUES_TO_NAMES = {
+ 0: "DIRECTORY_SETUP",
+ 1: "UPLOAD",
+ 2: "DOWNLOAD",
+ 3: "ACTIVE",
+ 4: "COMPLETE",
+ 5: "STDOUT_DOWNLOAD",
+ 6: "STDERROR_DOWNLOAD",
+ 7: "CANCELING",
+ 8: "CANCELED",
+ 9: "FAILED",
+ 10: "HELD",
+ 11: "SUSPENDED",
+ 12: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "DIRECTORY_SETUP": 0,
+ "UPLOAD": 1,
+ "DOWNLOAD": 2,
+ "ACTIVE": 3,
+ "COMPLETE": 4,
+ "STDOUT_DOWNLOAD": 5,
+ "STDERROR_DOWNLOAD": 6,
+ "CANCELING": 7,
+ "CANCELED": 8,
+ "FAILED": 9,
+ "HELD": 10,
+ "SUSPENDED": 11,
+ "UNKNOWN": 12,
+ }
+
+class ActionableGroup:
+ RESOURCE_ADMINS = 0
+ AIRAVATA_ADMINS = 1
+ GATEWAYS_ADMINS = 2
+ USER = 3
+ CANNOT_BE_DETERMINED = 4
+
+ _VALUES_TO_NAMES = {
+ 0: "RESOURCE_ADMINS",
+ 1: "AIRAVATA_ADMINS",
+ 2: "GATEWAYS_ADMINS",
+ 3: "USER",
+ 4: "CANNOT_BE_DETERMINED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "RESOURCE_ADMINS": 0,
+ "AIRAVATA_ADMINS": 1,
+ "GATEWAYS_ADMINS": 2,
+ "USER": 3,
+ "CANNOT_BE_DETERMINED": 4,
+ }
+
+class ErrorCategory:
+ FILE_SYSTEM_FAILURE = 0
+ APPLICATION_FAILURE = 1
+ RESOURCE_NODE_FAILURE = 2
+ DISK_FULL = 3
+ INSUFFICIENT_ALLOCATION = 4
+ SYSTEM_MAINTENANCE = 5
+ AIRAVATA_INTERNAL_ERROR = 6
+ CANNOT_BE_DETERMINED = 7
+
+ _VALUES_TO_NAMES = {
+ 0: "FILE_SYSTEM_FAILURE",
+ 1: "APPLICATION_FAILURE",
+ 2: "RESOURCE_NODE_FAILURE",
+ 3: "DISK_FULL",
+ 4: "INSUFFICIENT_ALLOCATION",
+ 5: "SYSTEM_MAINTENANCE",
+ 6: "AIRAVATA_INTERNAL_ERROR",
+ 7: "CANNOT_BE_DETERMINED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "FILE_SYSTEM_FAILURE": 0,
+ "APPLICATION_FAILURE": 1,
+ "RESOURCE_NODE_FAILURE": 2,
+ "DISK_FULL": 3,
+ "INSUFFICIENT_ALLOCATION": 4,
+ "SYSTEM_MAINTENANCE": 5,
+ "AIRAVATA_INTERNAL_ERROR": 6,
+ "CANNOT_BE_DETERMINED": 7,
+ }
+
+class CorrectiveAction:
+ RETRY_SUBMISSION = 0
+ CONTACT_SUPPORT = 1
+ CANNOT_BE_DETERMINED = 2
+
+ _VALUES_TO_NAMES = {
+ 0: "RETRY_SUBMISSION",
+ 1: "CONTACT_SUPPORT",
+ 2: "CANNOT_BE_DETERMINED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "RETRY_SUBMISSION": 0,
+ "CONTACT_SUPPORT": 1,
+ "CANNOT_BE_DETERMINED": 2,
+ }
+
+class ExecutionUnit:
+ INPUT = 0
+ APPLICATION = 1
+ OUTPUT = 2
+ OTHER = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "INPUT",
+ 1: "APPLICATION",
+ 2: "OUTPUT",
+ 3: "OTHER",
+ }
+
+ _NAMES_TO_VALUES = {
+ "INPUT": 0,
+ "APPLICATION": 1,
+ "OUTPUT": 2,
+ "OTHER": 3,
+ }
+
+
+class ExperimentStatus:
+ """
+ Attributes:
+ - experimentState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'experimentState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, experimentState=None, timeOfStateChange=None,):
+ self.experimentState = experimentState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.experimentState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('ExperimentStatus')
+ if self.experimentState is not None:
+ oprot.writeFieldBegin('experimentState', TType.I32, 1)
+ oprot.writeI32(self.experimentState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.experimentState is None:
+ raise TProtocol.TProtocolException(message='Required field experimentState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.experimentState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 WorkflowNodeStatus:
+ """
+ Attributes:
+ - workflowNodeState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'workflowNodeState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, workflowNodeState=None, timeOfStateChange=None,):
+ self.workflowNodeState = workflowNodeState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.workflowNodeState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('WorkflowNodeStatus')
+ if self.workflowNodeState is not None:
+ oprot.writeFieldBegin('workflowNodeState', TType.I32, 1)
+ oprot.writeI32(self.workflowNodeState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.workflowNodeState is None:
+ raise TProtocol.TProtocolException(message='Required field workflowNodeState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.workflowNodeState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 TaskStatus:
+ """
+ Attributes:
+ - executionState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'executionState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, executionState=None, timeOfStateChange=None,):
+ self.executionState = executionState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.executionState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('TaskStatus')
+ if self.executionState is not None:
+ oprot.writeFieldBegin('executionState', TType.I32, 1)
+ oprot.writeI32(self.executionState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.executionState is None:
+ raise TProtocol.TProtocolException(message='Required field executionState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.executionState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 JobStatus:
+ """
+ Attributes:
+ - jobState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'jobState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, jobState=None, timeOfStateChange=None,):
+ self.jobState = jobState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.jobState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('JobStatus')
+ if self.jobState is not None:
+ oprot.writeFieldBegin('jobState', TType.I32, 1)
+ oprot.writeI32(self.jobState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobState is None:
+ raise TProtocol.TProtocolException(message='Required field jobState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 TransferStatus:
+ """
+ Attributes:
+ - transferState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'transferState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, transferState=None, timeOfStateChange=None,):
+ self.transferState = transferState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.transferState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('TransferStatus')
+ if self.transferState is not None:
+ oprot.writeFieldBegin('transferState', TType.I32, 1)
+ oprot.writeI32(self.transferState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.transferState is None:
+ raise TProtocol.TProtocolException(message='Required field transferState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.transferState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 ApplicationStatus:
+ """
+ Attributes:
+ - applicationState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'applicationState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, applicationState=None, timeOfStateChange=None,):
+ self.applicationState = applicationState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.applicationState = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('ApplicationStatus')
+ if self.applicationState is not None:
+ oprot.writeFieldBegin('applicationState', TType.STRING, 1)
+ oprot.writeString(self.applicationState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.applicationState is None:
+ raise TProtocol.TProtocolException(message='Required field applicationState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.applicationState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 ComputationalResourceScheduling:
+ """
+ A structure holding the Computational Resource Scheduling.
+
+
+ Attributes:
+ - resourceHostId
+ - totalCPUCount
+ - nodeCount
+ - numberOfThreads
+ - queueName
+ - wallTimeLimit
+ - jobStartTime
+ - totalPhysicalMemory
+ - computationalProjectAccount
+ - chassisName
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'resourceHostId', None, None, ), # 1
+ (2, TType.I32, 'totalCPUCount', None, None, ), # 2
+ (3, TType.I32, 'nodeCount', None, None, ), # 3
+ (4, TType.I32, 'numberOfThreads', None, None, ), # 4
+ (5, TType.STRING, 'queueName', None, None, ), # 5
+ (6, TType.I32, 'wallTimeLimit', None, None, ), # 6
+ (7, TType.I32, 'jobStartTime', None, None, ), # 7
+ (8, TType.I32, 'totalPhysicalMemory', None, None, ), # 8
+ (9, TType.STRING, 'computationalProjectAccount', None, None, ), # 9
+ (10, TType.STRING, 'chassisName', None, None, ), # 10
+ )
+
+ def __init__(self, resourceHostId=None, totalCPUCount=None, nodeCount=None, numberOfThreads=None, queueName=None, wallTimeLimit=None, jobStartTime=None, totalPhysicalMemory=None, computationalProjectAccount=None, chassisName=None,):
+ self.resourceHostId = resourceHostId
+ self.totalCPUCount = totalCPUCount
+ self.nodeCount = nodeCount
+ self.numberOfThreads = numberOfThreads
+ self.queueName = queueName
+ self.wallTimeLimit = wallTimeLimit
+ self.jobStartTime = jobStartTime
+ self.totalPhysicalMemory = totalPhysicalMemory
+ self.computationalProjectAccount = computationalProjectAccount
+ self.chassisName = chassisName
+
+ 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.resourceHostId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.totalCPUCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.nodeCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.numberOfThreads = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.queueName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I32:
+ self.wallTimeLimit = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I32:
+ self.jobStartTime = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.totalPhysicalMemory = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.computationalProjectAccount = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.chassisName = 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('ComputationalResourceScheduling')
+ if self.resourceHostId is not None:
+ oprot.writeFieldBegin('resourceHostId', TType.STRING, 1)
+ oprot.writeString(self.resourceHostId)
+ oprot.writeFieldEnd()
+ if self.totalCPUCount is not None:
+ oprot.writeFieldBegin('totalCPUCount', TType.I32, 2)
+ oprot.writeI32(self.totalCPUCount)
+ oprot.writeFieldEnd()
+ if self.nodeCount is not None:
+ oprot.writeFieldBegin('nodeCount', TType.I32, 3)
+ oprot.writeI32(self.nodeCount)
+ oprot.writeFieldEnd()
+ if self.numberOfThreads is not None:
+ oprot.writeFieldBegin('numberOfThreads', TType.I32, 4)
+ oprot.writeI32(self.numberOfThreads)
+ oprot.writeFieldEnd()
+ if self.queueName is not None:
+ oprot.writeFieldBegin('queueName', TType.STRING, 5)
+ oprot.writeString(self.queueName)
+ oprot.writeFieldEnd()
+ if self.wallTimeLimit is not None:
+ oprot.writeFieldBegin('wallTimeLimit', TType.I32, 6)
+ oprot.writeI32(self.wallTimeLimit)
+ oprot.writeFieldEnd()
+ if self.jobStartTime is not None:
+ oprot.writeFieldBegin('jobStartTime', TType.I32, 7)
+ oprot.writeI32(self.jobStartTime)
+ oprot.writeFieldEnd()
+ if self.totalPhysicalMemory is not None:
+ oprot.writeFieldBegin('totalPhysicalMemory', TType.I32, 8)
+ oprot.writeI32(self.totalPhysicalMemory)
+ oprot.writeFieldEnd()
+ if self.computationalProjectAccount is not None:
+ oprot.writeFieldBegin('computationalProjectAccount', TType.STRING, 9)
+ oprot.writeString(self.computationalProjectAccount)
+ oprot.writeFieldEnd()
+ if self.chassisName is not None:
+ oprot.writeFieldBegin('chassisName', TType.STRING, 10)
+ oprot.writeString(self.chassisName)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.resourceHostId)
+ value = (value * 31) ^ hash(self.totalCPUCount)
+ value = (value * 31) ^ hash(self.nodeCount)
+ value = (value * 31) ^ hash(self.numberOfThreads)
+ value = (value * 31) ^ hash(self.queueName)
+ value = (value * 31) ^ hash(self.wallTimeLimit)
+ value = (value * 31) ^ hash(self.jobStartTime)
+ value = (value * 31) ^ hash(self.totalPhysicalMemory)
+ value = (value * 31) ^ hash(self.computationalProjectAccount)
+ value = (value * 31) ^ hash(self.chassisName)
+ 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 AdvancedInputDataHandling:
+ """
+ A structure holding specified input data handling.
+
+
+ Attributes:
+ - stageInputFilesToWorkingDir
+ - parentWorkingDirectory
+ - uniqueWorkingDirectory
+ - cleanUpWorkingDirAfterJob
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'stageInputFilesToWorkingDir', None, False, ), # 1
+ (2, TType.STRING, 'parentWorkingDirectory', None, None, ), # 2
+ (3, TType.STRING, 'uniqueWorkingDirectory', None, None, ), # 3
+ (4, TType.BOOL, 'cleanUpWorkingDirAfterJob', None, False, ), # 4
+ )
+
+ def __init__(self, stageInputFilesToWorkingDir=thrift_spec[1][4], parentWorkingDirectory=None, uniqueWorkingDirectory=None, cleanUpWorkingDirAfterJob=thrift_spec[4][4],):
+ self.stageInputFilesToWorkingDir = stageInputFilesToWorkingDir
+ self.parentWorkingDirectory = parentWorkingDirectory
+ self.uniqueWorkingDirectory = uniqueWorkingDirectory
+ self.cleanUpWorkingDirAfterJob = cleanUpWorkingDirAfterJob
+
+ 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.BOOL:
+ self.stageInputFilesToWorkingDir = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.parentWorkingDirectory = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.uniqueWorkingDirectory = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.BOOL:
+ self.cleanUpWorkingDirAfterJob = iprot.readBool();
+ 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('AdvancedInputDataHandling')
+ if self.stageInputFilesToWorkingDir is not None:
+ oprot.writeFieldBegin('stageInputFilesToWorkingDir', TType.BOOL, 1)
+ oprot.writeBool(self.stageInputFilesToWorkingDir)
+ oprot.writeFieldEnd()
+ if self.parentWorkingDirectory is not None:
+ oprot.writeFieldBegin('parentWorkingDirectory', TType.STRING, 2)
+ oprot.writeString(self.parentWorkingDirectory)
+ oprot.writeFieldEnd()
+ if self.uniqueWorkingDirectory is not None:
+ oprot.writeFieldBegin('uniqueWorkingDirectory', TType.STRING, 3)
+ oprot.writeString(self.uniqueWorkingDirectory)
+ oprot.writeFieldEnd()
+ if self.cleanUpWorkingDirAfterJob is not None:
+ oprot.writeFieldBegin('cleanUpWorkingDirAfterJob', TType.BOOL, 4)
+ oprot.writeBool(self.cleanUpWorkingDirAfterJob)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.stageInputFilesToWorkingDir)
+ value = (value * 31) ^ hash(self.parentWorkingDirectory)
+ value = (value * 31) ^ hash(self.uniqueWorkingDirectory)
+ value = (value * 31) ^ hash(self.cleanUpWorkingDirAfterJob)
+ 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 AdvancedOutputDataHandling:
+ """
+ A structure holding specified output data handling.
+
+
+ Attributes:
+ - outputDataDir
+ - dataRegistryURL
+ - persistOutputData
+ """
+
+ thrift_spec = (
+ None, # 0
+ None, # 1
+ (2, TType.STRING, 'outputDataDir', None, None, ), # 2
+ (3, TType.STRING, 'dataRegistryURL', None, None, ), # 3
+ (4, TType.BOOL, 'persistOutputData', None, True, ), # 4
+ )
+
+ def __init__(self, outputDataDir=None, dataRegistryURL=None, persistOutputData=thrift_spec[4][4],):
+ self.outputDataDir = outputDataDir
+ self.dataRegistryURL = dataRegistryURL
+ self.persistOutputData = persistOutputData
+
+ 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 == 2:
+ if ftype == TType.STRING:
+ self.outputDataDir = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.dataRegistryURL = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.BOOL:
+ self.persistOutputData = iprot.readBool();
+ 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('AdvancedOutputDataHandling')
+ if self.outputDataDir is not None:
+ oprot.writeFieldBegin('outputDataDir', TType.STRING, 2)
+ oprot.writeString(self.outputDataDir)
+ oprot.writeFieldEnd()
+ if self.dataRegistryURL is not None:
+ oprot.writeFieldBegin('dataRegistryURL', TType.STRING, 3)
+ oprot.writeString(self.dataRegistryURL)
+ oprot.writeFieldEnd()
+ if self.persistOutputData is not None:
+ oprot.writeFieldBegin('persistOutputData', TType.BOOL, 4)
+ oprot.writeBool(self.persistOutputData)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.outputDataDir)
+ value = (value * 31) ^ hash(self.dataRegistryURL)
+ value = (value * 31) ^ hash(self.persistOutputData)
+ 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 QualityOfServiceParams:
+ """
+ A structure holding Quality of Service Parameters.
+
+
+ Attributes:
+ - startExecutionAt
+ - executeBefore
+ - numberofRetries
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'startExecutionAt', None, None, ), # 1
+ (2, TType.STRING, 'executeBefore', None, None, ), # 2
+ (3, TType.I32, 'numberofRetries', None, None, ), # 3
+ )
+
+ def __init__(self, startExecutionAt=None, executeBefore=None, numberofRetries=None,):
+ self.startExecutionAt = startExecutionAt
+ self.executeBefore = executeBefore
+ self.numberofRetries = numberofRetries
+
+ 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.startExecutionAt = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.executeBefore = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.numberofRetries = 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('QualityOfServiceParams')
+ if self.startExecutionAt is not None:
+ oprot.writeFieldBegin('startExecutionAt', TType.STRING, 1)
+ oprot.writeString(self.startExecutionAt)
+ oprot.writeFieldEnd()
+ if self.executeBefore is not None:
+ oprot.writeFieldBegin('executeBefore', TType.STRING, 2)
+ oprot.writeString(self.executeBefore)
+ oprot.writeFieldEnd()
+ if self.numberofRetries is not None:
+ oprot.writeFieldBegin('numberofRetries', TType.I32, 3)
+ oprot.writeI32(self.numberofRetries)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.startExecutionAt)
+ value = (value * 31) ^ hash(self.executeBefore)
+ value = (value * 31) ^ hash(self.numberofRetries)
+ 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 UserConfigurationData:
+ """
+ A structure holding the experiment configuration.
+
+
+
+ Attributes:
+ - airavataAutoSchedule
+ - overrideManualScheduledParams
+ - shareExperimentPublicly
+ - computationalResourceScheduling
+ - advanceInputDataHandling
+ - advanceOutputDataHandling
+ - qosParams
+ - throttleResources
+ - userDN
+ - generateCert
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'airavataAutoSchedule', None, False, ), # 1
+ (2, TType.BOOL, 'overrideManualScheduledParams', None, False, ), # 2
+ (3, TType.BOOL, 'shareExperimentPublicly', None, False, ), # 3
+ (4, TType.STRUCT, 'computationalResourceScheduling', (ComputationalResourceScheduling, ComputationalResourceScheduling.thrift_spec), None, ), # 4
+ (5, TType.STRUCT, 'advanceInputDataHandling', (AdvancedInputDataHandling, AdvancedInputDataHandling.thrift_spec), None, ), # 5
+ (6, TType.STRUCT, 'advanceOutputDataHandling', (AdvancedOutputDataHandling, AdvancedOutputDataHandling.thrift_spec), None, ), # 6
+ (7, TType.STRUCT, 'qosParams', (QualityOfServiceParams, QualityOfServiceParams.thrift_spec), None, ), # 7
+ (8, TType.BOOL, 'throttleResources', None, False, ), # 8
+ (9, TType.STRING, 'userDN', None, None, ), # 9
+ (10, TType.BOOL, 'generateCert', None, False, ), # 10
+ )
+
+ def __init__(self, airavataAutoSchedule=thrift_spec[1][4], overrideManualScheduledParams=thrift_spec[2][4], shareExperimentPublicly=thrift_spec[3][4], computationalResourceScheduling=None, advanceInputDataHandling=None, advanceOutputDataHandling=None, qosParams=None, throttleResources=thrift_spec[8][4], userDN=None, generateCert=thrift_spec[10][4],):
+ self.airavataAutoSchedule = airavataAutoSchedule
+ self.overrideManualScheduledParams = overrideManualScheduledParams
+ self.shareExperimentPublicly = shareExperimentPublicly
+ self.computationalResourceScheduling = computationalResourceScheduling
+ self.advanceInputDataHandling = advanceInputDataHandling
+ self.advanceOutputDataHandling = advanceOutputDataHandling
+ self.qosParams = qosParams
+ self.throttleResources = throttleResources
+ self.userDN = userDN
+ self.generateCert = generateCert
+
+ 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.BOOL:
+ self.airavataAutoSchedule = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.BOOL:
+ self.overrideManualScheduledParams = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.BOOL:
+ self.shareExperimentPublicly = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.computationalResourceScheduling = ComputationalResourceScheduling()
+ self.computationalResourceScheduling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRUCT:
+ self.advanceInputDataHandling = AdvancedInputDataHandling()
+ self.advanceInputDataHandling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRUCT:
+ self.advanceOutputDataHandling = AdvancedOutputDataHandling()
+ self.advanceOutputDataHandling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRUCT:
+ self.qosParams = QualityOfServiceParams()
+ self.qosParams.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.BOOL:
+ self.throttleResources = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.userDN = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.BOOL:
+ self.generateCert = iprot.readBool();
+ 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('UserConfigurationData')
+ if self.airavataAutoSchedule is not None:
+ oprot.writeFieldBegin('airavataAutoSchedule', TType.BOOL, 1)
+ oprot.writeBool(self.airavataAutoSchedule)
+ oprot.writeFieldEnd()
+ if self.overrideManualScheduledParams is not None:
+ oprot.writeFieldBegin('overrideManualScheduledParams', TType.BOOL, 2)
+ oprot.writeBool(self.overrideManualScheduledParams)
+ oprot.writeFieldEnd()
+ if self.shareExperimentPublicly is not None:
+ oprot.writeFieldBegin('shareExperimentPublicly', TType.BOOL, 3)
+ oprot.writeBool(self.shareExperimentPublicly)
+ oprot.writeFieldEnd()
+ if self.computationalResourceScheduling is not None:
+ oprot.writeFieldBegin('computationalResourceScheduling', TType.STRUCT, 4)
+ self.computationalResourceScheduling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.advanceInputDataHandling is not None:
+ oprot.writeFieldBegin('advanceInputDataHandling', TType.STRUCT, 5)
+ self.advanceInputDataHandling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.advanceOutputDataHandling is not None:
+ oprot.writeFieldBegin('advanceOutputDataHandling', TType.STRUCT, 6)
+ self.advanceOutputDataHandling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.qosParams is not None:
+ oprot.writeFieldBegin('qosParams', TType.STRUCT, 7)
+ self.qosParams.write(oprot)
+ oprot.writeFieldEnd()
+ if self.throttleResources is not None:
+ oprot.writeFieldBegin('throttleResources', TType.BOOL, 8)
+ oprot.writeBool(self.throttleResources)
+ oprot.writeFieldEnd()
+ if self.userDN is not None:
+ oprot.writeFieldBegin('userDN', TType.STRING, 9)
+ oprot.writeString(self.userDN)
+ oprot.writeFieldEnd()
+ if self.generateCert is not None:
+ oprot.writeFieldBegin('generateCert', TType.BOOL, 10)
+ oprot.writeBool(self.generateCert)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataAutoSchedule is None:
+ raise TProtocol.TProtocolException(message='Required field airavataAutoSchedule is unset!')
+ if self.overrideManualScheduledParams is None:
+ raise TProtocol.TProtocolException(message='Required field overrideManualScheduledParams is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataAutoSchedule)
+ value = (value * 31) ^ hash(self.overrideManualScheduledParams)
+ value = (value * 31) ^ hash(self.shareExperimentPublicly)
+ value = (value * 31) ^ hash(self.computationalResourceScheduling)
+ value = (value * 31) ^ hash(self.advanceInputDataHandling)
+ value = (value * 31) ^ hash(self.advanceOutputDataHandling)
+ value = (value * 31) ^ hash(self.qosParams)
+ value = (value * 31) ^ hash(self.throttleResources)
+ value = (value * 31) ^ hash(self.userDN)
+ value = (value * 31) ^ hash(self.generateCert)
+ 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 ErrorDetails:
+ """
+ Attributes:
+ - errorID
+ - creationTime
+ - actualErrorMessage
+ - userFriendlyMessage
+ - errorCategory
+ - transientOrPersistent
+ - correctiveAction
+ - actionableGroup
+ - rootCauseErrorIdList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'errorID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'actualErrorMessage', None, None, ), # 3
+ (4, TType.STRING, 'userFriendlyMessage', None, None, ), # 4
+ (5, TType.I32, 'errorCategory', None, None, ), # 5
+ (6, TType.BOOL, 'transientOrPersistent', None, False, ), # 6
+ (7, TType.I32, 'correctiveAction', None, None, ), # 7
+ (8, TType.I32, 'actionableGroup', None, None, ), # 8
+ (9, TType.LIST, 'rootCauseErrorIdList', (TType.STRING,None), None, ), # 9
+ )
+
+ def __init__(self, errorID=thrift_spec[1][4], creationTime=None, actualErrorMessage=None, userFriendlyMessage=None, errorCategory=None, transientOrPersistent=thrift_spec[6][4], correctiveAction=None, actionableGroup=None, rootCauseErrorIdList=None,):
+ self.errorID = errorID
+ self.creationTime = creationTime
+ self.actualErrorMessage = actualErrorMessage
+ self.userFriendlyMessage = userFriendlyMessage
+ self.errorCategory = errorCategory
+ self.transientOrPersistent = transientOrPersistent
+ self.correctiveAction = correctiveAction
+ self.actionableGroup = actionableGroup
+ self.rootCauseErrorIdList = rootCauseErrorIdList
+
+ 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.errorID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.actualErrorMessage = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.userFriendlyMessage = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.errorCategory = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.BOOL:
+ self.transientOrPersistent = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I32:
+ self.correctiveAction = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.actionableGroup = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.rootCauseErrorIdList = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString();
+ self.rootCauseErrorIdList.append(_elem5)
+ 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('ErrorDetails')
+ if self.errorID is not None:
+ oprot.writeFieldBegin('errorID', TType.STRING, 1)
+ oprot.writeString(self.errorID)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.actualErrorMessage is not None:
+ oprot.writeFieldBegin('actualErrorMessage', TType.STRING, 3)
+ oprot.writeString(self.actualErrorMessage)
+ oprot.writeFieldEnd()
+ if self.userFriendlyMessage is not None:
+ oprot.writeFieldBegin('userFriendlyMessage', TType.STRING, 4)
+ oprot.writeString(self.userFriendlyMessage)
+ oprot.writeFieldEnd()
+ if self.errorCategory is not None:
+ oprot.writeFieldBegin('errorCategory', TType.I32, 5)
+ oprot.writeI32(self.errorCategory)
+ oprot.writeFieldEnd()
+ if self.transientOrPersistent is not None:
+ oprot.writeFieldBegin('transientOrPersistent', TType.BOOL, 6)
+ oprot.writeBool(self.transientOrPersistent)
+ oprot.writeFieldEnd()
+ if self.correctiveAction is not None:
+ oprot.writeFieldBegin('correctiveAction', TType.I32, 7)
+ oprot.writeI32(self.correctiveAction)
+ oprot.writeFieldEnd()
+ if self.actionableGroup is not None:
+ oprot.writeFieldBegin('actionableGroup', TType.I32, 8)
+ oprot.writeI32(self.actionableGroup)
+ oprot.writeFieldEnd()
+ if self.rootCauseErrorIdList is not None:
+ oprot.writeFieldBegin('rootCauseErrorIdList', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRING, len(self.rootCauseErrorIdList))
+ for iter6 in self.rootCauseErrorIdList:
+ oprot.writeString(iter6)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.errorID is None:
+ raise TProtocol.TProtocolException(message='Required field errorID is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.errorID)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.actualErrorMessage)
+ value = (value * 31) ^ hash(self.userFriendlyMessage)
+ value = (value * 31) ^ hash(self.errorCategory)
+ value = (value * 31) ^ hash(self.transientOrPersistent)
+ value = (value * 31) ^ hash(self.correctiveAction)
+ value = (value * 31) ^ hash(self.actionableGroup)
+ value = (value * 31) ^ hash(self.rootCauseErrorIdList)
+ 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 JobDetails:
+ """
+ Attributes:
+ - jobID
+ - jobDescription
+ - creationTime
+ - jobStatus
+ - applicationStatus
+ - errors
+ - computeResourceConsumed
+ - jobName
+ - workingDir
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'jobID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'jobDescription', None, None, ), # 2
+ (3, TType.I64, 'creationTime', None, None, ), # 3
+ (4, TType.STRUCT, 'jobStatus', (JobStatus, JobStatus.thrift_spec), None, ), # 4
+ (5, TType.STRUCT, 'applicationStatus', (ApplicationStatus, ApplicationStatus.thrift_spec), None, ), # 5
+ (6, TType.LIST, 'errors', (TType.STRUCT,(ErrorDetails, ErrorDetails.thrift_spec)), None, ), # 6
+ (7, TType.STRING, 'computeResourceConsumed', None, None, ), # 7
+ (8, TType.STRING, 'jobName', None, None, ), # 8
+ (9, TType.STRING, 'workingDir', None, None, ), # 9
+ )
+
+ def __init__(self, jobID=thrift_spec[1][4], jobDescription=None, creationTime=None, jobStatus=None, applicationStatus=None, errors=None, computeResourceConsumed=None, jobName=None, workingDir=None,):
+ self.jobID = jobID
+ self.jobDescription = jobDescription
+ self.creationTime = creationTime
+ self.jobStatus = jobStatus
+ self.applicationStatus = applicationStatus
+ self.errors = errors
+ self.computeResourceConsumed = computeResourceConsumed
+ self.jobName = jobName
+ self.workingDir = workingDir
+
+ 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.jobID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.jobDescription = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.jobStatus = JobStatus()
+ self.jobStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRUCT:
+ self.applicationStatus = ApplicationStatus()
+ self.applicationStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.errors = []
+ (_etype10, _size7) = iprot.readListBegin()
+ for _i11 in xrange(_size7):
+ _elem12 = ErrorDetails()
+ _elem12.read(iprot)
+ self.errors.append(_elem12)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.computeResourceConsumed = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.jobName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.workingDir = 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('JobDetails')
+ if self.jobID is not None:
+ oprot.writeFieldBegin('jobID', TType.STRING, 1)
+ oprot.writeString(self.jobID)
+ oprot.writeFieldEnd()
+ if self.jobDescription is not None:
+ oprot.writeFieldBegin('jobDescription', TType.STRING, 2)
+ oprot.writeString(self.jobDescription)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 3)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.jobStatus is not None:
+ oprot.writeFieldBegin('jobStatus', TType.STRUCT, 4)
+ self.jobStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.applicationStatus is not None:
+ oprot.writeFieldBegin('applicationStatus', TType.STRUCT, 5)
+ self.applicationStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.errors is not None:
+ oprot.writeFieldBegin('errors', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.errors))
+ for iter13 in self.errors:
+ iter13.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.computeResourceConsumed is not None:
+ oprot.writeFieldBegin('computeResourceConsumed', TType.STRING, 7)
+ oprot.writeString(self.computeResourceConsumed)
+ oprot.writeFieldEnd()
+ if self.jobName is not None:
+ oprot.writeFieldBegin('jobName', TType.STRING, 8)
+ oprot.writeString(self.jobName)
+ oprot.writeFieldEnd()
+ if self.workingDir is not None:
+ oprot.writeFieldBegin('workingDir', TType.STRING, 9)
+ oprot.writeString(self.workingDir)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobID is None:
+ raise TProtocol.TProtocolException(message='Required field jobID is unset!')
+ if self.jobDescription is None:
+ raise TProtocol.TProtocolException(message='Required field jobDescription is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobID)
+ value = (value * 31) ^ hash(self.jobDescription)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.jobStatus)
+ value = (value * 31) ^ hash(self.applicationStatus)
+ value = (value * 31) ^ hash(self.errors)
+ value = (value * 31) ^ hash(self.computeResourceConsumed)
+ value = (value * 31) ^ hash(self.jobName)
+ value = (value * 31) ^ hash(self.workingDir)
+ 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 DataTransferDetails:
+ """
+ Attributes:
+ - transferID
+ - creationTime
+ - transferDescription
+ - transferStatus
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'transferID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'transferDescription', None, None, ), # 3
+ (4, TType.STRUCT, 'transferStatus', (TransferStatus, TransferStatus.thrift_spec), None, ), # 4
+ )
+
+ def __init__(self, transferID=thrift_spec[1][4], creationTime=None, transferDescription=None, transferStatus=None,):
+ self.transferID = transferID
+ self.creationTime = creationTime
+ self.transferDescription = transferDescription
+ self.transferStatus = transferStatus
+
+ 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.transferID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.transferDescription = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.transferStatus = TransferStatus()
+ self.transferStatus.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('DataTransferDetails')
+ if self.transferID is not None:
+ oprot.writeFieldBegin('transferID', TType.STRING, 1)
+ oprot.writeString(self.transferID)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.transferDescription is not None:
+ oprot.writeFieldBegin('transferDescription', TType.STRING, 3)
+ oprot.writeString(self.transferDescription)
+ oprot.writeFieldEnd()
+ if self.transferStatus is not None:
+ oprot.writeFieldBegin('transferStatus', TType.STRUCT, 4)
+ self.transferStatus.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.transferID is None:
+ raise TProtocol.TProtocolException(message='Required field transferID is unset!')
+ if self.transferDescription is None:
+ raise TProtocol.TProtocolException(message='Required field transferDescription is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.transferID)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.transferDescription)
+ value = (value * 31) ^ hash(self.transferStatus)
+ 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 TaskDetails:
+ """
+ A structure holding the actual execution context decided based on user provided configuration data or system inferred
+ information from scheduling and QoS parameters. One experiment can have multiple tasks. Each tasks results in
+ data transfers and jobs
+
+
+ Attributes:
+ - taskID
+ - creationTime
+ - applicationId
+ - applicationVersion
+ - applicationDeploymentId
+ - applicationInputs
+ - applicationOutputs
+ - taskScheduling
+ - advancedInputDataHandling
+ - advancedOutputDataHandling
+ - taskStatus
+ - jobDetailsList
+ - dataTransferDetailsList
+ - errors
+ - enableEmailNotification
+ - emailAddresses
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'taskID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'applicationId', None, None, ), # 3
+ (4, TType.STRING, 'applicationVersion', None, None, ), # 4
+ (5, TType.STRING, 'applicationDeploymentId', None, None, ), # 5
+ (6, TType.LIST, 'applicationInputs', (TType.STRUCT,(apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType, apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType.thrift_spec)), None, ), # 6
+ (7, TType.LIST, 'applicationOutputs', (TType.STRUCT,(apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType, apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 7
+ (8, TType.STRUCT, 'taskScheduling', (ComputationalResourceScheduling, ComputationalResourceScheduling.thrift_spec), None, ), # 8
+ (9, TType.STRUCT, 'advancedInputDataHandling', (AdvancedInputDataHandling, AdvancedInputDataHandling.thrift_spec), None, ), # 9
+ (10, TType.STRUCT, 'advancedOutputDataHandling', (AdvancedOutputDataHandling, AdvancedOutputDataHandling.thrift_spec), None, ), # 10
+ (11, TType.STRUCT, 'taskStatus', (TaskStatus, TaskStatus.thrift_spec), None, ), # 11
+ (12, TType.LIST, 'jobDetailsList', (TType.STRUCT,(JobDetails, JobDetails.thrift_spec)), None, ), # 12
+ (13, TType.LIST, 'dataTransferDetailsList', (TType.STRUCT,(DataTransferDetails, DataTransferDetails.thrift_spec)), None, ), # 13
+ (14, TType.LIST, 'errors', (TType.STRUCT,(ErrorDetails, ErrorDetails.thrift_spec)), None, ), # 14
+ (15, TType.BOOL, 'enableEmailNotification', None, None, ), # 15
+ (16, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 16
+ )
+
+ def __init__(self, taskID=thrift_spec[1][4], creationTime=None, applicationId=None, applicationVersion=None, applicationDeploymentId=None, applicationInputs=None, applicationOutputs=None, taskScheduling=None, advancedInputDataHandling=None, advancedOutputDataHandling=None, taskStatus=None, jobDetailsList=None, dataTransferDetailsList=None, errors=None, enableEmailNotification=None, emailAddresses=None,):
+ self.taskID = taskID
+ self.creationTime = creationTime
+ self.applicationId = applicationId
+ self.applicationVersion = applicationVersion
+ self.applicationDeploymentId = applicationDeploymentId
+ self.applicationInputs = applicationInputs
+ self.applicationOutputs = applicationOutputs
+ self.taskScheduling = taskScheduling
+ self.advancedInputDataHandling = advancedInputDataHandling
+ self.advancedOutputDataHandling = advancedOutputDataHandling
+ self.taskStatus = taskStatus
+ self.jobDetailsList = jobDetailsList
+ self.dataTransferDetailsList = dataTransferDetailsList
+ self.errors = errors
+ self.enableEmailNotification = enableEmailNotification
+ self.emailAddresses = emailAddresses
+
+ 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.taskID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.applicationId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.applicationVersion = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.applicationDeploymentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.applicationInputs = []
+ (_etype17, _size14) = iprot.readListBegin()
+ for _i18 in xrange(_size14):
+ _elem19 = apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType()
+ _elem19.read(iprot)
+ self.applicationInputs.append(_elem19)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.applicationOutputs = []
+ (_etype23, _size20) = iprot.readListBegin()
+ for _i24 in xrange(_size20):
+ _elem25 = apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType()
+ _elem25.read(iprot)
+ self.applicationOutputs.append(_elem25)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRUCT:
+ self.taskScheduling = ComputationalResourceScheduling()
+ self.taskScheduling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRUCT:
+ self.advancedInputDataHandling = AdvancedInputDataHandling()
+ self.advancedInputDataHandling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRUCT:
+ self.advancedOutputDataHandling = AdvancedOutputDataHandling()
+ self.advancedOutputDataHandling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRUCT:
+ self.taskStatus = TaskStatus()
+ self.taskStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.jobDetailsList = []
+ (_etype29, _size26) = iprot.readListBegin()
+ for _i30 in xrange(_size26):
+ _elem31 = JobDetails()
+ _elem31.read(iprot)
+ self.jobDetailsList.append(_elem31)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.LIST:
+ self.dataTransferDetailsList = []
+ (_etype35, _size32) = iprot.readListBegin()
+ for _i36 in xrange(_size32):
+ _elem37 = DataTransferDetails()
+ _elem37.read(iprot)
+ self.dataTransferDetailsList.append(_elem37)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.LIST:
+ self.errors = []
+ (_etype41, _size38) = iprot.readListBegin()
+ for _i42 in xrange(_size38):
+ _elem43 = ErrorDetails()
+ _elem43.read(iprot)
+ self.errors.append(_elem43)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 15:
+ if ftype == TType.BOOL:
+ self.enableEmailNotification = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 16:
+ if ftype == TType.LIST:
+ self.emailAddresses = []
+ (_etype47, _size44) = iprot.readListBegin()
+ for _i48 in xrange(_size44):
+ _elem49 = iprot.readString();
+ self.emailAddresses.append(_elem49)
+ 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('TaskDetails')
+ if self.taskID is not None:
+ oprot.writeFieldBegin('taskID', TType.STRING, 1)
+ oprot.writeString(self.taskID)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.applicationId is not None:
+ oprot.writeFieldBegin('applicationId', TType.STRING, 3)
+ oprot.writeString(self.applicationId)
+ oprot.writeFieldEnd()
+ if self.applicationVersion is not None:
+ oprot.writeFieldBegin('applicationVersion', TType.STRING, 4)
+ oprot.writeString(self.applicationVersion)
+ oprot.writeFieldEnd()
+ if self.applicationDeploymentId is not None:
+ oprot.writeFieldBegin('applicationDeploymentId', TType.STRING, 5)
+ oprot.writeString(self.applicationDeploymentId)
+ oprot.writeFieldEnd()
+ if self.applicationInputs is not None:
+ oprot.writeFieldBegin('applicationInputs', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.applicationInputs))
+ for iter50 in self.applicationInputs:
+ iter50.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.applicationOutputs is not None:
+ oprot.writeFieldBegin('applicationOutputs', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.applicationOutputs))
+ for iter51 in self.applicationOutputs:
+ iter51.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.taskScheduling is not None:
+ oprot.writeFieldBegin('taskScheduling', TType.STRUCT, 8)
+ self.taskScheduling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.advancedInputDataHandling is not None:
+ oprot.writeFieldBegin('advancedInputDataHandling', TType.STRUCT, 9)
+ self.advancedInputDataHandling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.advancedOutputDataHandling is not None:
+ oprot.writeFieldBegin('advancedOutputDataHandling', TType.STRUCT, 10)
+ self.advancedOutputDataHandling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.taskStatus is not None:
+ oprot.writeFieldBegin('taskStatus', TType.STRUCT, 11)
+ self.taskStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.jobDetailsList is not None:
+ oprot.writeFieldBegin('jobDetailsList', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRUCT, len(self.jobDetailsList))
+ for iter52 in self.jobDetailsList:
+ iter52.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.dataTransferDetailsList is not None:
+ oprot.writeFieldBegin('dataTransferDetailsList', TType.LIST, 13)
+ oprot.writeListBegin(TType.STRUCT, len(self.dataTransferDetailsList))
+ for iter53 in self.dataTransferDetailsList:
+ iter53.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.errors is not None:
+ oprot.writeFieldBegin('errors', TType.LIST, 14)
+ oprot.writeListBegin(TType.STRUCT, len(self.errors))
+ for iter54 in self.errors:
+ iter54.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.enableEmailNotification is not None:
+ oprot.writeFieldBegin('enableEmailNotification', TType.BOOL, 15)
+ oprot.writeBool(self.enableEmailNotification)
+ oprot.writeFieldEnd()
+ if self.emailAddresses is not None:
+ oprot.writeFieldBegin('emailAddresses', TType.LIST, 16)
+ oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
+ for iter55 in self.emailAddresses:
+ oprot.writeString(iter55)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.taskID is None:
+ raise TProtocol.TProtocolException(message='Required field taskID is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.taskID)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.applicationId)
+ value = (value * 31) ^ hash(self.applicationVersion)
+ value = (value * 31) ^ hash(self.applicationDeploymentId)
+ value = (value * 31) ^ hash(self.applicationInputs)
+ value = (value * 31) ^ hash(self.applicationOutputs)
+ value = (value * 31) ^ hash(self.taskScheduling)
+ value = (value * 31) ^ hash(self.advancedInputDataHandling)
+ value = (value * 31) ^ hash(self.advancedOutputDataHandling)
+ value = (value * 31) ^ hash(self.taskStatus)
+ value = (value * 31) ^ hash(self.jobDetailsList)
+ value = (value * 31) ^ hash(self.dataTransferDetailsList)
+ value = (value * 31) ^ hash(self.errors)
+ value = (value * 31) ^ hash(self.enableEmailNotification)
+ value = (value * 31) ^ hash(self.emailAddresses)
+ 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 WorkflowNodeDetails:
+ """
+ A structure holding the node data.
+ nodeInstanceId - unique node identifier for each run
+
+ Attributes:
+ - nodeInstanceId
+ - creationTime
+ - nodeName
+ - executionUnit
+ - executionUnitData
+ - nodeInputs
+ - nodeOutputs
+ - workflowNodeStatus
+ - taskDetailsList
+ - errors
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'nodeInstanceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'nodeName', None, "SINGLE_APP_NODE", ), # 3
+ (4, TType.I32, 'executionUnit', None, 1, ), # 4
+ (5, TType.STRING, 'executionUnitData', None, None, ), # 5
+ (6, TType.LIST, 'nodeInputs', (TType.STRUCT,(apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType, apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType.thrift_spec)), None, ), # 6
+ (7, TType.LIST, 'nodeOutputs', (TType.STRUCT,(apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType, apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 7
+ (8, TType.STRUCT, 'workflowNodeStatus', (WorkflowNodeStatus, WorkflowNodeStatus.thrift_spec), None, ), # 8
+ (9, TType.LIST, 'taskDetailsList', (TType.STRUCT,(TaskDetails, TaskDetails.thrift_spec)), None, ), # 9
+ (10, TType.LIST, 'errors', (TType.STRUCT,(ErrorDetails, ErrorDetails.thrift_spec)), None, ), # 10
+ )
+
+ def __init__(self, nodeInstanceId=thrift_spec[1][4], creationTime=None, nodeName=thrift_spec[3][4], executionUnit=thrift_spec[4][4], executionUnitData=None, nodeInputs=None, nodeOutputs=None, workflowNodeStatus=None, taskDetailsList=None, errors=None,):
+ self.nodeInstanceId = nodeInstanceId
+ self.creationTime = creationTime
+ self.nodeName = nodeName
+ self.executionUnit = executionUnit
+ self.executionUnitData = executionUnitData
+ self.nodeInputs = nodeInputs
+ self.nodeOutputs = nodeOutputs
+ self.workflowNodeStatus = workflowNodeStatus
+ self.taskDetailsList = taskDetailsList
+ self.errors = errors
+
+ 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.nodeInstanceId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.nodeName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.executionUnit = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.executionUnitData = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.nodeInputs = []
+ (_etype59, _size56) = iprot.readListBegin()
+ for _i60 in xrange(_size56):
+ _elem61 = apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType()
+ _elem61.read(iprot)
+ self.nodeInputs.append(_elem61)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.nodeOutputs = []
+ (_etype65, _size62) = iprot.readListBegin()
+ for _i66 in xrange(_size62):
+ _elem67 = apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType()
+ _elem67.read(iprot)
+ self.nodeOutputs.append(_elem67)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRUCT:
+ self.workflowNodeStatus = WorkflowNodeStatus()
+ self.workflowNodeStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.taskDetailsList = []
+ (_etype71, _size68) = iprot.readListBegin()
+ for _i72 in xrange(_size68):
+ _elem73 = TaskDetails()
+ _elem73.read(iprot)
+ self.taskDetailsList.append(_elem73)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.errors = []
+ (_etype77, _size74) = iprot.readListBegin()
+ for _i78 in xrange(_size74):
+ _elem79 = ErrorDetails()
+ _elem79.read(iprot)
+ self.errors.append(_elem79)
+ 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('WorkflowNodeDetails')
+ if self.nodeInstanceId is not None:
+ oprot.writeFieldBegin('nodeInstanceId', TType.STRING, 1)
+ oprot.writeString(self.nodeInstanceId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.nodeName is not None:
+ oprot.writeFieldBegin('nodeName', TType.STRING, 3)
+ oprot.writeString(self.nodeName)
+ oprot.writeFieldEnd()
+ if self.executionUnit is not None:
+ oprot.writeFieldBegin('executionUnit', TType.I32, 4)
+ oprot.writeI32(self.executionUnit)
+ oprot.writeFieldEnd()
+ if self.executionUnitData is not None:
+ oprot.writeFieldBegin('executionUnitData', TType.STRING, 5)
+ oprot.writeString(self.executionUnitData)
+ oprot.writeFieldEnd()
+ if self.nodeInputs is not None:
+ oprot.writeFieldBegin('nodeInputs', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.nodeInputs))
+ for iter80 in self.nodeInputs:
+ iter80.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.nodeOutputs is not None:
+ oprot.writeFieldBegin('nodeOutputs', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.nodeOutputs))
+ for iter81 in self.nodeOutputs:
+ iter81.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.workflowNodeStatus is not None:
+ oprot.writeFieldBegin('workflowNodeStatus', TType.STRUCT, 8)
+ self.workflowNodeStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.taskDetailsList is not None:
+ oprot.writeFieldBegin('taskDetailsList', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRUCT, len(self.taskDetailsList))
+ for iter82 in self.taskDetailsList:
+ iter82.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.errors is not None:
+ oprot.writeFieldBegin('errors', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.errors))
+ for iter83 in self.errors:
+ iter83.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.nodeInstanceId is None:
+ raise TProtocol.TProtocolException(message='Required field nodeInstanceId is unset!')
+ if self.nodeName is None:
+ raise TProtocol.TProtocolException(message='Required field nodeName is unset!')
+ if self.executionUnit is None:
+ raise TProtocol.TProtocolException(message='Required field executionUnit is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.nodeInstanceId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.nodeName)
+ value = (value * 31) ^ hash(self.executionUnit)
+ value = (value * 31) ^ hash(self.executionUnitData)
+ value = (value * 31) ^ hash(self.nodeInputs)
+ value = (value * 31) ^ hash(self.nodeOutputs)
+ value = (value * 31) ^ hash(self.workflowNodeStatus)
+ value = (value * 31) ^ hash(self.taskDetailsList)
+ value = (val
<TRUNCATED>
[25/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
new file mode 100644
index 0000000..9799e52
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
@@ -0,0 +1,468 @@
+#
+# 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.appcatalog.computeresource.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class ComputeResourcePreference:
+ """
+ Gateway specific preferences for a Computer Resource
+
+ computeResourceId:
+ Corelate the preference to a compute resource.
+
+ overridebyAiravata:
+ If turned true, Airavata will override the preferences of better alternatives exist.
+
+ loginUserName:
+ If turned true, Airavata will override the preferences of better alternatives exist.
+
+ preferredJobSubmissionProtocol:
+ For resources with multiple job submission protocols, the gateway can pick a preferred option.
+
+ preferredDataMovementProtocol:
+ For resources with multiple data movement protocols, the gateway can pick a preferred option.
+
+ preferredBatchQueue:
+ Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
+
+ scratchLocation:
+ Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
+
+ allocationProjectNumber:
+ Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
+ allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
+ account to be used has to be added to the allocation.
+
+ resourceSpecificCredentialStoreToken:
+ Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
+ default credential store.
+
+
+ Attributes:
+ - computeResourceId
+ - overridebyAiravata
+ - loginUserName
+ - preferredJobSubmissionProtocol
+ - preferredDataMovementProtocol
+ - preferredBatchQueue
+ - scratchLocation
+ - allocationProjectNumber
+ - resourceSpecificCredentialStoreToken
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'computeResourceId', None, None, ), # 1
+ (2, TType.BOOL, 'overridebyAiravata', None, True, ), # 2
+ (3, TType.STRING, 'loginUserName', None, None, ), # 3
+ (4, TType.I32, 'preferredJobSubmissionProtocol', None, None, ), # 4
+ (5, TType.I32, 'preferredDataMovementProtocol', None, None, ), # 5
+ (6, TType.STRING, 'preferredBatchQueue', None, None, ), # 6
+ (7, TType.STRING, 'scratchLocation', None, None, ), # 7
+ (8, TType.STRING, 'allocationProjectNumber', None, None, ), # 8
+ (9, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 9
+ )
+
+ def __init__(self, computeResourceId=None, overridebyAiravata=thrift_spec[2][4], loginUserName=None, preferredJobSubmissionProtocol=None, preferredDataMovementProtocol=None, preferredBatchQueue=None, scratchLocation=None, allocationProjectNumber=None, resourceSpecificCredentialStoreToken=None,):
+ self.computeResourceId = computeResourceId
+ self.overridebyAiravata = overridebyAiravata
+ self.loginUserName = loginUserName
+ self.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol
+ self.preferredDataMovementProtocol = preferredDataMovementProtocol
+ self.preferredBatchQueue = preferredBatchQueue
+ self.scratchLocation = scratchLocation
+ self.allocationProjectNumber = allocationProjectNumber
+ self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
+
+ 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.BOOL:
+ self.overridebyAiravata = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.loginUserName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.preferredJobSubmissionProtocol = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.preferredDataMovementProtocol = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.preferredBatchQueue = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.scratchLocation = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.allocationProjectNumber = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.resourceSpecificCredentialStoreToken = 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('ComputeResourcePreference')
+ if self.computeResourceId is not None:
+ oprot.writeFieldBegin('computeResourceId', TType.STRING, 1)
+ oprot.writeString(self.computeResourceId)
+ oprot.writeFieldEnd()
+ if self.overridebyAiravata is not None:
+ oprot.writeFieldBegin('overridebyAiravata', TType.BOOL, 2)
+ oprot.writeBool(self.overridebyAiravata)
+ oprot.writeFieldEnd()
+ if self.loginUserName is not None:
+ oprot.writeFieldBegin('loginUserName', TType.STRING, 3)
+ oprot.writeString(self.loginUserName)
+ oprot.writeFieldEnd()
+ if self.preferredJobSubmissionProtocol is not None:
+ oprot.writeFieldBegin('preferredJobSubmissionProtocol', TType.I32, 4)
+ oprot.writeI32(self.preferredJobSubmissionProtocol)
+ oprot.writeFieldEnd()
+ if self.preferredDataMovementProtocol is not None:
+ oprot.writeFieldBegin('preferredDataMovementProtocol', TType.I32, 5)
+ oprot.writeI32(self.preferredDataMovementProtocol)
+ oprot.writeFieldEnd()
+ if self.preferredBatchQueue is not None:
+ oprot.writeFieldBegin('preferredBatchQueue', TType.STRING, 6)
+ oprot.writeString(self.preferredBatchQueue)
+ oprot.writeFieldEnd()
+ if self.scratchLocation is not None:
+ oprot.writeFieldBegin('scratchLocation', TType.STRING, 7)
+ oprot.writeString(self.scratchLocation)
+ oprot.writeFieldEnd()
+ if self.allocationProjectNumber is not None:
+ oprot.writeFieldBegin('allocationProjectNumber', TType.STRING, 8)
+ oprot.writeString(self.allocationProjectNumber)
+ oprot.writeFieldEnd()
+ if self.resourceSpecificCredentialStoreToken is not None:
+ oprot.writeFieldBegin('resourceSpecificCredentialStoreToken', TType.STRING, 9)
+ oprot.writeString(self.resourceSpecificCredentialStoreToken)
+ 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.overridebyAiravata is None:
+ raise TProtocol.TProtocolException(message='Required field overridebyAiravata is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.computeResourceId)
+ value = (value * 31) ^ hash(self.overridebyAiravata)
+ value = (value * 31) ^ hash(self.loginUserName)
+ value = (value * 31) ^ hash(self.preferredJobSubmissionProtocol)
+ value = (value * 31) ^ hash(self.preferredDataMovementProtocol)
+ value = (value * 31) ^ hash(self.preferredBatchQueue)
+ value = (value * 31) ^ hash(self.scratchLocation)
+ value = (value * 31) ^ hash(self.allocationProjectNumber)
+ value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
+ 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 DataStoragePreference:
+ """
+ Attributes:
+ - dataMovememtResourceId
+ - loginUserName
+ - fileSystemRootLocation
+ - resourceSpecificCredentialStoreToken
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'dataMovememtResourceId', None, None, ), # 1
+ (2, TType.STRING, 'loginUserName', None, None, ), # 2
+ (3, TType.STRING, 'fileSystemRootLocation', None, None, ), # 3
+ (4, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 4
+ )
+
+ def __init__(self, dataMovememtResourceId=None, loginUserName=None, fileSystemRootLocation=None, resourceSpecificCredentialStoreToken=None,):
+ self.dataMovememtResourceId = dataMovememtResourceId
+ self.loginUserName = loginUserName
+ self.fileSystemRootLocation = fileSystemRootLocation
+ self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
+
+ 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.dataMovememtResourceId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.loginUserName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.fileSystemRootLocation = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.resourceSpecificCredentialStoreToken = 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('DataStoragePreference')
+ if self.dataMovememtResourceId is not None:
+ oprot.writeFieldBegin('dataMovememtResourceId', TType.STRING, 1)
+ oprot.writeString(self.dataMovememtResourceId)
+ oprot.writeFieldEnd()
+ if self.loginUserName is not None:
+ oprot.writeFieldBegin('loginUserName', TType.STRING, 2)
+ oprot.writeString(self.loginUserName)
+ oprot.writeFieldEnd()
+ if self.fileSystemRootLocation is not None:
+ oprot.writeFieldBegin('fileSystemRootLocation', TType.STRING, 3)
+ oprot.writeString(self.fileSystemRootLocation)
+ oprot.writeFieldEnd()
+ if self.resourceSpecificCredentialStoreToken is not None:
+ oprot.writeFieldBegin('resourceSpecificCredentialStoreToken', TType.STRING, 4)
+ oprot.writeString(self.resourceSpecificCredentialStoreToken)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.dataMovememtResourceId is None:
+ raise TProtocol.TProtocolException(message='Required field dataMovememtResourceId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.dataMovememtResourceId)
+ value = (value * 31) ^ hash(self.loginUserName)
+ value = (value * 31) ^ hash(self.fileSystemRootLocation)
+ value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
+ 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 GatewayResourceProfile:
+ """
+ Gateway Resource Profile
+
+ gatewayID:
+ Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+
+ credentialStoreToken:
+ Gateway's defualt credential store token.
+
+ computeResourcePreferences:
+ List of resource preferences for each of the registered compute resources.
+
+
+ Attributes:
+ - gatewayID
+ - credentialStoreToken
+ - computeResourcePreferences
+ - dataStoragePreferences
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'gatewayID', None, None, ), # 1
+ (2, TType.STRING, 'credentialStoreToken', None, None, ), # 2
+ (3, TType.LIST, 'computeResourcePreferences', (TType.STRUCT,(ComputeResourcePreference, ComputeResourcePreference.thrift_spec)), None, ), # 3
+ (4, TType.LIST, 'dataStoragePreferences', (TType.STRUCT,(DataStoragePreference, DataStoragePreference.thrift_spec)), None, ), # 4
+ )
+
+ def __init__(self, gatewayID=None, credentialStoreToken=None, computeResourcePreferences=None, dataStoragePreferences=None,):
+ self.gatewayID = gatewayID
+ self.credentialStoreToken = credentialStoreToken
+ self.computeResourcePreferences = computeResourcePreferences
+ self.dataStoragePreferences = dataStoragePreferences
+
+ 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.gatewayID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.credentialStoreToken = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.LIST:
+ self.computeResourcePreferences = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = ComputeResourcePreference()
+ _elem5.read(iprot)
+ self.computeResourcePreferences.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.LIST:
+ self.dataStoragePreferences = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = DataStoragePreference()
+ _elem11.read(iprot)
+ self.dataStoragePreferences.append(_elem11)
+ 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('GatewayResourceProfile')
+ if self.gatewayID is not None:
+ oprot.writeFieldBegin('gatewayID', TType.STRING, 1)
+ oprot.writeString(self.gatewayID)
+ oprot.writeFieldEnd()
+ if self.credentialStoreToken is not None:
+ oprot.writeFieldBegin('credentialStoreToken', TType.STRING, 2)
+ oprot.writeString(self.credentialStoreToken)
+ oprot.writeFieldEnd()
+ if self.computeResourcePreferences is not None:
+ oprot.writeFieldBegin('computeResourcePreferences', TType.LIST, 3)
+ oprot.writeListBegin(TType.STRUCT, len(self.computeResourcePreferences))
+ for iter12 in self.computeResourcePreferences:
+ iter12.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.dataStoragePreferences is not None:
+ oprot.writeFieldBegin('dataStoragePreferences', TType.LIST, 4)
+ oprot.writeListBegin(TType.STRUCT, len(self.dataStoragePreferences))
+ for iter13 in self.dataStoragePreferences:
+ iter13.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.gatewayID is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayID is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.gatewayID)
+ value = (value * 31) ^ hash(self.credentialStoreToken)
+ value = (value * 31) ^ hash(self.computeResourcePreferences)
+ value = (value * 31) ^ hash(self.dataStoragePreferences)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc
new file mode 100644
index 0000000..ca7359b
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__init__.pyc
new file mode 100644
index 0000000..66b63a5
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..b889a06
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__init__.pyc
new file mode 100644
index 0000000..b4575f8
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..baee6e9
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__pycache__/ttypes.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__pycache__/ttypes.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__pycache__/ttypes.cpython-35.pyc
new file mode 100644
index 0000000..826257c
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/__pycache__/ttypes.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/ttypes.py
new file mode 100644
index 0000000..2abf6a4
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/ttypes.py
@@ -0,0 +1,481 @@
+#
+# 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.appcatalog.computeresource.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class DataType:
+ """
+ Data Types supported in Airavata. The primitive data types
+
+ """
+ STRING = 0
+ INTEGER = 1
+ FLOAT = 2
+ URI = 3
+ STDOUT = 4
+ STDERR = 5
+
+ _VALUES_TO_NAMES = {
+ 0: "STRING",
+ 1: "INTEGER",
+ 2: "FLOAT",
+ 3: "URI",
+ 4: "STDOUT",
+ 5: "STDERR",
+ }
+
+ _NAMES_TO_VALUES = {
+ "STRING": 0,
+ "INTEGER": 1,
+ "FLOAT": 2,
+ "URI": 3,
+ "STDOUT": 4,
+ "STDERR": 5,
+ }
+
+
+class InputDataObjectType:
+ """
+ Application Inputs. The paramters describe how inputs are passed to the application.
+
+ name:
+ Name of the parameter.
+
+ value:
+ Value of the parameter. A default value could be set during registration.
+
+ type:
+ Data type of the parameter
+
+ applicationArguement:
+ The argument flag sent to the application. Such as -p pressure.
+
+ standardInput:
+ When this value is set, the parameter is sent as standard input rather than a parameter.
+ Typically this is passed using redirection operator ">".
+
+ userFriendlyDescription:
+ Description to be displayed at the user interface.
+
+ metaData:
+ Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+
+
+ Attributes:
+ - name
+ - value
+ - type
+ - applicationArgument
+ - standardInput
+ - userFriendlyDescription
+ - metaData
+ - inputOrder
+ - isRequired
+ - requiredToAddedToCommandLine
+ - dataStaged
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'name', None, None, ), # 1
+ (2, TType.STRING, 'value', None, None, ), # 2
+ (3, TType.I32, 'type', None, None, ), # 3
+ (4, TType.STRING, 'applicationArgument', None, None, ), # 4
+ (5, TType.BOOL, 'standardInput', None, None, ), # 5
+ (6, TType.STRING, 'userFriendlyDescription', None, None, ), # 6
+ (7, TType.STRING, 'metaData', None, None, ), # 7
+ (8, TType.I32, 'inputOrder', None, None, ), # 8
+ (9, TType.BOOL, 'isRequired', None, None, ), # 9
+ (10, TType.BOOL, 'requiredToAddedToCommandLine', None, None, ), # 10
+ (11, TType.BOOL, 'dataStaged', None, None, ), # 11
+ )
+
+ def __init__(self, name=None, value=None, type=None, applicationArgument=None, standardInput=None, userFriendlyDescription=None, metaData=None, inputOrder=None, isRequired=None, requiredToAddedToCommandLine=None, dataStaged=None,):
+ self.name = name
+ self.value = value
+ self.type = type
+ self.applicationArgument = applicationArgument
+ self.standardInput = standardInput
+ self.userFriendlyDescription = userFriendlyDescription
+ self.metaData = metaData
+ self.inputOrder = inputOrder
+ self.isRequired = isRequired
+ self.requiredToAddedToCommandLine = requiredToAddedToCommandLine
+ self.dataStaged = dataStaged
+
+ 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.name = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.value = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.type = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.applicationArgument = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.BOOL:
+ self.standardInput = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.userFriendlyDescription = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.metaData = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.inputOrder = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.BOOL:
+ self.isRequired = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.BOOL:
+ self.requiredToAddedToCommandLine = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.BOOL:
+ self.dataStaged = iprot.readBool();
+ 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('InputDataObjectType')
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 1)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.value is not None:
+ oprot.writeFieldBegin('value', TType.STRING, 2)
+ oprot.writeString(self.value)
+ oprot.writeFieldEnd()
+ if self.type is not None:
+ oprot.writeFieldBegin('type', TType.I32, 3)
+ oprot.writeI32(self.type)
+ oprot.writeFieldEnd()
+ if self.applicationArgument is not None:
+ oprot.writeFieldBegin('applicationArgument', TType.STRING, 4)
+ oprot.writeString(self.applicationArgument)
+ oprot.writeFieldEnd()
+ if self.standardInput is not None:
+ oprot.writeFieldBegin('standardInput', TType.BOOL, 5)
+ oprot.writeBool(self.standardInput)
+ oprot.writeFieldEnd()
+ if self.userFriendlyDescription is not None:
+ oprot.writeFieldBegin('userFriendlyDescription', TType.STRING, 6)
+ oprot.writeString(self.userFriendlyDescription)
+ oprot.writeFieldEnd()
+ if self.metaData is not None:
+ oprot.writeFieldBegin('metaData', TType.STRING, 7)
+ oprot.writeString(self.metaData)
+ oprot.writeFieldEnd()
+ if self.inputOrder is not None:
+ oprot.writeFieldBegin('inputOrder', TType.I32, 8)
+ oprot.writeI32(self.inputOrder)
+ oprot.writeFieldEnd()
+ if self.isRequired is not None:
+ oprot.writeFieldBegin('isRequired', TType.BOOL, 9)
+ oprot.writeBool(self.isRequired)
+ oprot.writeFieldEnd()
+ if self.requiredToAddedToCommandLine is not None:
+ oprot.writeFieldBegin('requiredToAddedToCommandLine', TType.BOOL, 10)
+ oprot.writeBool(self.requiredToAddedToCommandLine)
+ oprot.writeFieldEnd()
+ if self.dataStaged is not None:
+ oprot.writeFieldBegin('dataStaged', TType.BOOL, 11)
+ oprot.writeBool(self.dataStaged)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.value)
+ value = (value * 31) ^ hash(self.type)
+ value = (value * 31) ^ hash(self.applicationArgument)
+ value = (value * 31) ^ hash(self.standardInput)
+ value = (value * 31) ^ hash(self.userFriendlyDescription)
+ value = (value * 31) ^ hash(self.metaData)
+ value = (value * 31) ^ hash(self.inputOrder)
+ value = (value * 31) ^ hash(self.isRequired)
+ value = (value * 31) ^ hash(self.requiredToAddedToCommandLine)
+ value = (value * 31) ^ hash(self.dataStaged)
+ 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 OutputDataObjectType:
+ """
+ Application Outputs. The paramters describe how outputs generated by the application.
+
+ name:
+ Name of the parameter.
+
+ value:
+ Value of the parameter.
+
+ type:
+ Data type of the parameter
+
+ applicationArguement:
+ The argument flag sent to the application. Such as -p pressure.
+
+ standardInput:
+ When this value is set, the parameter is sent as standard input rather than a parameter.
+ Typically this is passed using redirection operator ">".
+
+ userFriendlyDescription:
+ Description to be displayed at the user interface.
+
+ metaData:
+ Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+
+
+ Attributes:
+ - name
+ - value
+ - type
+ - applicationArgument
+ - isRequired
+ - requiredToAddedToCommandLine
+ - dataMovement
+ - location
+ - searchQuery
+ - outputStreaming
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'name', None, None, ), # 1
+ (2, TType.STRING, 'value', None, None, ), # 2
+ (3, TType.I32, 'type', None, None, ), # 3
+ (4, TType.STRING, 'applicationArgument', None, None, ), # 4
+ (5, TType.BOOL, 'isRequired', None, None, ), # 5
+ (6, TType.BOOL, 'requiredToAddedToCommandLine', None, None, ), # 6
+ (7, TType.BOOL, 'dataMovement', None, None, ), # 7
+ (8, TType.STRING, 'location', None, None, ), # 8
+ (9, TType.STRING, 'searchQuery', None, None, ), # 9
+ (10, TType.BOOL, 'outputStreaming', None, None, ), # 10
+ )
+
+ def __init__(self, name=None, value=None, type=None, applicationArgument=None, isRequired=None, requiredToAddedToCommandLine=None, dataMovement=None, location=None, searchQuery=None, outputStreaming=None,):
+ self.name = name
+ self.value = value
+ self.type = type
+ self.applicationArgument = applicationArgument
+ self.isRequired = isRequired
+ self.requiredToAddedToCommandLine = requiredToAddedToCommandLine
+ self.dataMovement = dataMovement
+ self.location = location
+ self.searchQuery = searchQuery
+ self.outputStreaming = outputStreaming
+
+ 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.name = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.value = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.type = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.applicationArgument = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.BOOL:
+ self.isRequired = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.BOOL:
+ self.requiredToAddedToCommandLine = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.BOOL:
+ self.dataMovement = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.location = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.searchQuery = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.BOOL:
+ self.outputStreaming = iprot.readBool();
+ 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('OutputDataObjectType')
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 1)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.value is not None:
+ oprot.writeFieldBegin('value', TType.STRING, 2)
+ oprot.writeString(self.value)
+ oprot.writeFieldEnd()
+ if self.type is not None:
+ oprot.writeFieldBegin('type', TType.I32, 3)
+ oprot.writeI32(self.type)
+ oprot.writeFieldEnd()
+ if self.applicationArgument is not None:
+ oprot.writeFieldBegin('applicationArgument', TType.STRING, 4)
+ oprot.writeString(self.applicationArgument)
+ oprot.writeFieldEnd()
+ if self.isRequired is not None:
+ oprot.writeFieldBegin('isRequired', TType.BOOL, 5)
+ oprot.writeBool(self.isRequired)
+ oprot.writeFieldEnd()
+ if self.requiredToAddedToCommandLine is not None:
+ oprot.writeFieldBegin('requiredToAddedToCommandLine', TType.BOOL, 6)
+ oprot.writeBool(self.requiredToAddedToCommandLine)
+ oprot.writeFieldEnd()
+ if self.dataMovement is not None:
+ oprot.writeFieldBegin('dataMovement', TType.BOOL, 7)
+ oprot.writeBool(self.dataMovement)
+ oprot.writeFieldEnd()
+ if self.location is not None:
+ oprot.writeFieldBegin('location', TType.STRING, 8)
+ oprot.writeString(self.location)
+ oprot.writeFieldEnd()
+ if self.searchQuery is not None:
+ oprot.writeFieldBegin('searchQuery', TType.STRING, 9)
+ oprot.writeString(self.searchQuery)
+ oprot.writeFieldEnd()
+ if self.outputStreaming is not None:
+ oprot.writeFieldBegin('outputStreaming', TType.BOOL, 10)
+ oprot.writeBool(self.outputStreaming)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.value)
+ value = (value * 31) ^ hash(self.type)
+ value = (value * 31) ^ hash(self.applicationArgument)
+ value = (value * 31) ^ hash(self.isRequired)
+ value = (value * 31) ^ hash(self.requiredToAddedToCommandLine)
+ value = (value * 31) ^ hash(self.dataMovement)
+ value = (value * 31) ^ hash(self.location)
+ value = (value * 31) ^ hash(self.searchQuery)
+ value = (value * 31) ^ hash(self.outputStreaming)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/ttypes.pyc
new file mode 100644
index 0000000..4a2ccb3
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/application/io/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__init__.pyc
new file mode 100644
index 0000000..10db219
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..e18cbf5
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__pycache__/ttypes.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__pycache__/ttypes.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__pycache__/ttypes.cpython-35.pyc
new file mode 100644
index 0000000..1b27f6e
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/__pycache__/ttypes.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/constants.py
new file mode 100644
index 0000000..f9a2df5
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/constants.py
@@ -0,0 +1,12 @@
+#
+# 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
+from ttypes import *
+
+DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/ttypes.py
new file mode 100644
index 0000000..29fe575
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/ttypes.py
@@ -0,0 +1,335 @@
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class ErrorModel:
+ """
+ Attributes:
+ - errorId
+ - creationTime
+ - actualErrorMessage
+ - userFriendlyMessage
+ - transientOrPersistent
+ - rootCauseErrorIdList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'errorId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'actualErrorMessage', None, None, ), # 3
+ (4, TType.STRING, 'userFriendlyMessage', None, None, ), # 4
+ (5, TType.BOOL, 'transientOrPersistent', None, False, ), # 5
+ (6, TType.LIST, 'rootCauseErrorIdList', (TType.STRING,None), None, ), # 6
+ )
+
+ def __init__(self, errorId=thrift_spec[1][4], creationTime=None, actualErrorMessage=None, userFriendlyMessage=None, transientOrPersistent=thrift_spec[5][4], rootCauseErrorIdList=None,):
+ self.errorId = errorId
+ self.creationTime = creationTime
+ self.actualErrorMessage = actualErrorMessage
+ self.userFriendlyMessage = userFriendlyMessage
+ self.transientOrPersistent = transientOrPersistent
+ self.rootCauseErrorIdList = rootCauseErrorIdList
+
+ 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.errorId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.actualErrorMessage = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.userFriendlyMessage = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.BOOL:
+ self.transientOrPersistent = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.rootCauseErrorIdList = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString();
+ self.rootCauseErrorIdList.append(_elem5)
+ 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('ErrorModel')
+ if self.errorId is not None:
+ oprot.writeFieldBegin('errorId', TType.STRING, 1)
+ oprot.writeString(self.errorId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.actualErrorMessage is not None:
+ oprot.writeFieldBegin('actualErrorMessage', TType.STRING, 3)
+ oprot.writeString(self.actualErrorMessage)
+ oprot.writeFieldEnd()
+ if self.userFriendlyMessage is not None:
+ oprot.writeFieldBegin('userFriendlyMessage', TType.STRING, 4)
+ oprot.writeString(self.userFriendlyMessage)
+ oprot.writeFieldEnd()
+ if self.transientOrPersistent is not None:
+ oprot.writeFieldBegin('transientOrPersistent', TType.BOOL, 5)
+ oprot.writeBool(self.transientOrPersistent)
+ oprot.writeFieldEnd()
+ if self.rootCauseErrorIdList is not None:
+ oprot.writeFieldBegin('rootCauseErrorIdList', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRING, len(self.rootCauseErrorIdList))
+ for iter6 in self.rootCauseErrorIdList:
+ oprot.writeString(iter6)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.errorId is None:
+ raise TProtocol.TProtocolException(message='Required field errorId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.errorId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.actualErrorMessage)
+ value = (value * 31) ^ hash(self.userFriendlyMessage)
+ value = (value * 31) ^ hash(self.transientOrPersistent)
+ value = (value * 31) ^ hash(self.rootCauseErrorIdList)
+ 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 ValidatorResult:
+ """
+ This data structure can be used to store the validation results
+ captured during validation step and during the launchExperiment
+ operation it can be easilly checked to see the errors occured
+ during the experiment launch operation
+
+
+ Attributes:
+ - result
+ - errorDetails
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'result', None, None, ), # 1
+ (2, TType.STRING, 'errorDetails', None, None, ), # 2
+ )
+
+ def __init__(self, result=None, errorDetails=None,):
+ self.result = result
+ self.errorDetails = errorDetails
+
+ 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.BOOL:
+ self.result = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.errorDetails = 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('ValidatorResult')
+ if self.result is not None:
+ oprot.writeFieldBegin('result', TType.BOOL, 1)
+ oprot.writeBool(self.result)
+ oprot.writeFieldEnd()
+ if self.errorDetails is not None:
+ oprot.writeFieldBegin('errorDetails', TType.STRING, 2)
+ oprot.writeString(self.errorDetails)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.result is None:
+ raise TProtocol.TProtocolException(message='Required field result is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.result)
+ value = (value * 31) ^ hash(self.errorDetails)
+ 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 ValidationResults:
+ """
+ Attributes:
+ - validationState
+ - validationResultList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'validationState', None, None, ), # 1
+ (2, TType.LIST, 'validationResultList', (TType.STRUCT,(ValidatorResult, ValidatorResult.thrift_spec)), None, ), # 2
+ )
+
+ def __init__(self, validationState=None, validationResultList=None,):
+ self.validationState = validationState
+ self.validationResultList = validationResultList
+
+ 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.BOOL:
+ self.validationState = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.LIST:
+ self.validationResultList = []
+ (_etype10, _size7) = iprot.readListBegin()
+ for _i11 in xrange(_size7):
+ _elem12 = ValidatorResult()
+ _elem12.read(iprot)
+ self.validationResultList.append(_elem12)
+ 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('ValidationResults')
+ if self.validationState is not None:
+ oprot.writeFieldBegin('validationState', TType.BOOL, 1)
+ oprot.writeBool(self.validationState)
+ oprot.writeFieldEnd()
+ if self.validationResultList is not None:
+ oprot.writeFieldBegin('validationResultList', TType.LIST, 2)
+ oprot.writeListBegin(TType.STRUCT, len(self.validationResultList))
+ for iter13 in self.validationResultList:
+ iter13.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.validationState is None:
+ raise TProtocol.TProtocolException(message='Required field validationState is unset!')
+ if self.validationResultList is None:
+ raise TProtocol.TProtocolException(message='Required field validationResultList is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.validationState)
+ value = (value * 31) ^ hash(self.validationResultList)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/ttypes.pyc
new file mode 100644
index 0000000..c2ed5ee
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/commons/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__init__.pyc
new file mode 100644
index 0000000..3806931
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..c043016
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__pycache__/ttypes.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__pycache__/ttypes.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__pycache__/ttypes.cpython-35.pyc
new file mode 100644
index 0000000..a88248d
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/__pycache__/ttypes.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
[14/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata-remote b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata-remote
new file mode 100644
index 0000000..0a94e16
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata-remote
@@ -0,0 +1,1130 @@
+#!/usr/bin/env python
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+# options string: py
+#
+
+import sys
+import pprint
+from urlparse import urlparse
+from thrift.transport import TTransport
+from thrift.transport import TSocket
+from thrift.transport import TSSLSocket
+from thrift.transport import THttpClient
+from thrift.protocol import TBinaryProtocol
+
+from apache.airavata.api import Airavata
+from apache.airavata.api.ttypes import *
+
+if len(sys.argv) <= 1 or sys.argv[1] == '--help':
+ print('')
+ print('Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] [-s[sl]] function [arg1 [arg2...]]')
+ print('')
+ print('Functions:')
+ print(' string getAPIVersion(AuthzToken authzToken)')
+ print(' bool isUserExists(AuthzToken authzToken, string gatewayId, string userName)')
+ print(' string addGateway(AuthzToken authzToken, Gateway gateway)')
+ print(' getAllUsersInGateway(AuthzToken authzToken, string gatewayId)')
+ print(' bool updateGateway(AuthzToken authzToken, string gatewayId, Gateway updatedGateway)')
+ print(' Gateway getGateway(AuthzToken authzToken, string gatewayId)')
+ print(' bool deleteGateway(AuthzToken authzToken, string gatewayId)')
+ print(' getAllGateways(AuthzToken authzToken)')
+ print(' bool isGatewayExist(AuthzToken authzToken, string gatewayId)')
+ print(' string createNotification(AuthzToken authzToken, Notification notification)')
+ print(' bool updateNotification(AuthzToken authzToken, Notification notification)')
+ print(' bool deleteNotification(AuthzToken authzToken, string gatewayId, string notificationId)')
+ print(' Notification getNotification(AuthzToken authzToken, string gatewayId, string notificationId)')
+ print(' getAllNotifications(AuthzToken authzToken, string gatewayId)')
+ print(' string generateAndRegisterSSHKeys(AuthzToken authzToken, string gatewayId, string userName)')
+ print(' string registerPwdCredential(AuthzToken authzToken, string gatewayId, string portalUserName, string loginUserName, string password, string description)')
+ print(' string getSSHPubKey(AuthzToken authzToken, string airavataCredStoreToken, string gatewayId)')
+ print(' getAllGatewaySSHPubKeys(AuthzToken authzToken, string gatewayId)')
+ print(' getAllGatewayPWDCredentials(AuthzToken authzToken, string gatewayId)')
+ print(' bool deleteSSHPubKey(AuthzToken authzToken, string airavataCredStoreToken, string gatewayId)')
+ print(' bool deletePWDCredential(AuthzToken authzToken, string airavataCredStoreToken, string gatewayId)')
+ print(' string createProject(AuthzToken authzToken, string gatewayId, Project project)')
+ print(' void updateProject(AuthzToken authzToken, string projectId, Project updatedProject)')
+ print(' Project getProject(AuthzToken authzToken, string projectId)')
+ print(' bool deleteProject(AuthzToken authzToken, string projectId)')
+ print(' getUserProjects(AuthzToken authzToken, string gatewayId, string userName, i32 limit, i32 offset)')
+ print(' searchProjects(AuthzToken authzToken, string gatewayId, string userName, filters, i32 limit, i32 offset)')
+ print(' searchExperiments(AuthzToken authzToken, string gatewayId, string userName, filters, i32 limit, i32 offset)')
+ print(' ExperimentStatistics getExperimentStatistics(AuthzToken authzToken, string gatewayId, i64 fromTime, i64 toTime)')
+ print(' getExperimentsInProject(AuthzToken authzToken, string projectId, i32 limit, i32 offset)')
+ print(' getUserExperiments(AuthzToken authzToken, string gatewayId, string userName, i32 limit, i32 offset)')
+ print(' string createExperiment(AuthzToken authzToken, string gatewayId, ExperimentModel experiment)')
+ print(' bool deleteExperiment(AuthzToken authzToken, string experimentId)')
+ print(' ExperimentModel getExperiment(AuthzToken authzToken, string airavataExperimentId)')
+ print(' ExperimentModel getDetailedExperimentTree(AuthzToken authzToken, string airavataExperimentId)')
+ print(' void updateExperiment(AuthzToken authzToken, string airavataExperimentId, ExperimentModel experiment)')
+ print(' void updateExperimentConfiguration(AuthzToken authzToken, string airavataExperimentId, UserConfigurationDataModel userConfiguration)')
+ print(' void updateResourceScheduleing(AuthzToken authzToken, string airavataExperimentId, ComputationalResourceSchedulingModel resourceScheduling)')
+ print(' bool validateExperiment(AuthzToken authzToken, string airavataExperimentId)')
+ print(' void launchExperiment(AuthzToken authzToken, string airavataExperimentId, string gatewayId)')
+ print(' ExperimentStatus getExperimentStatus(AuthzToken authzToken, string airavataExperimentId)')
+ print(' getExperimentOutputs(AuthzToken authzToken, string airavataExperimentId)')
+ print(' getIntermediateOutputs(AuthzToken authzToken, string airavataExperimentId)')
+ print(' getJobStatuses(AuthzToken authzToken, string airavataExperimentId)')
+ print(' getJobDetails(AuthzToken authzToken, string airavataExperimentId)')
+ print(' string cloneExperiment(AuthzToken authzToken, string existingExperimentID, string newExperimentName)')
+ print(' void terminateExperiment(AuthzToken authzToken, string airavataExperimentId, string gatewayId)')
+ print(' string registerApplicationModule(AuthzToken authzToken, string gatewayId, ApplicationModule applicationModule)')
+ print(' ApplicationModule getApplicationModule(AuthzToken authzToken, string appModuleId)')
+ print(' bool updateApplicationModule(AuthzToken authzToken, string appModuleId, ApplicationModule applicationModule)')
+ print(' getAllAppModules(AuthzToken authzToken, string gatewayId)')
+ print(' bool deleteApplicationModule(AuthzToken authzToken, string appModuleId)')
+ print(' string registerApplicationDeployment(AuthzToken authzToken, string gatewayId, ApplicationDeploymentDescription applicationDeployment)')
+ print(' ApplicationDeploymentDescription getApplicationDeployment(AuthzToken authzToken, string appDeploymentId)')
+ print(' bool updateApplicationDeployment(AuthzToken authzToken, string appDeploymentId, ApplicationDeploymentDescription applicationDeployment)')
+ print(' bool deleteApplicationDeployment(AuthzToken authzToken, string appDeploymentId)')
+ print(' getAllApplicationDeployments(AuthzToken authzToken, string gatewayId)')
+ print(' getAppModuleDeployedResources(AuthzToken authzToken, string appModuleId)')
+ print(' string registerApplicationInterface(AuthzToken authzToken, string gatewayId, ApplicationInterfaceDescription applicationInterface)')
+ print(' string cloneApplicationInterface(AuthzToken authzToken, string existingAppInterfaceID, string newApplicationName, string gatewayId)')
+ print(' ApplicationInterfaceDescription getApplicationInterface(AuthzToken authzToken, string appInterfaceId)')
+ print(' bool updateApplicationInterface(AuthzToken authzToken, string appInterfaceId, ApplicationInterfaceDescription applicationInterface)')
+ print(' bool deleteApplicationInterface(AuthzToken authzToken, string appInterfaceId)')
+ print(' getAllApplicationInterfaceNames(AuthzToken authzToken, string gatewayId)')
+ print(' getAllApplicationInterfaces(AuthzToken authzToken, string gatewayId)')
+ print(' getApplicationInputs(AuthzToken authzToken, string appInterfaceId)')
+ print(' getApplicationOutputs(AuthzToken authzToken, string appInterfaceId)')
+ print(' getAvailableAppInterfaceComputeResources(AuthzToken authzToken, string appInterfaceId)')
+ print(' string registerComputeResource(AuthzToken authzToken, ComputeResourceDescription computeResourceDescription)')
+ print(' ComputeResourceDescription getComputeResource(AuthzToken authzToken, string computeResourceId)')
+ print(' getAllComputeResourceNames(AuthzToken authzToken)')
+ print(' bool updateComputeResource(AuthzToken authzToken, string computeResourceId, ComputeResourceDescription computeResourceDescription)')
+ print(' bool deleteComputeResource(AuthzToken authzToken, string computeResourceId)')
+ print(' string registerStorageResource(AuthzToken authzToken, StorageResourceDescription storageResourceDescription)')
+ print(' StorageResourceDescription getStorageResource(AuthzToken authzToken, string storageResourceId)')
+ print(' getAllStorageResourceNames(AuthzToken authzToken)')
+ print(' bool updateStorageResource(AuthzToken authzToken, string storageResourceId, StorageResourceDescription storageResourceDescription)')
+ print(' bool deleteStorageResource(AuthzToken authzToken, string storageResourceId)')
+ print(' string addLocalSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, LOCALSubmission localSubmission)')
+ print(' bool updateLocalSubmissionDetails(AuthzToken authzToken, string jobSubmissionInterfaceId, LOCALSubmission localSubmission)')
+ print(' LOCALSubmission getLocalJobSubmission(AuthzToken authzToken, string jobSubmissionId)')
+ print(' string addSSHJobSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, SSHJobSubmission sshJobSubmission)')
+ print(' string addSSHForkJobSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, SSHJobSubmission sshJobSubmission)')
+ print(' SSHJobSubmission getSSHJobSubmission(AuthzToken authzToken, string jobSubmissionId)')
+ print(' string addUNICOREJobSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, UnicoreJobSubmission unicoreJobSubmission)')
+ print(' UnicoreJobSubmission getUnicoreJobSubmission(AuthzToken authzToken, string jobSubmissionId)')
+ print(' string addCloudJobSubmissionDetails(AuthzToken authzToken, string computeResourceId, i32 priorityOrder, CloudJobSubmission cloudSubmission)')
+ print(' CloudJobSubmission getCloudJobSubmission(AuthzToken authzToken, string jobSubmissionId)')
+ print(' bool updateSSHJobSubmissionDetails(AuthzToken authzToken, string jobSubmissionInterfaceId, SSHJobSubmission sshJobSubmission)')
+ print(' bool updateCloudJobSubmissionDetails(AuthzToken authzToken, string jobSubmissionInterfaceId, CloudJobSubmission sshJobSubmission)')
+ print(' bool updateUnicoreJobSubmissionDetails(AuthzToken authzToken, string jobSubmissionInterfaceId, UnicoreJobSubmission unicoreJobSubmission)')
+ print(' string addLocalDataMovementDetails(AuthzToken authzToken, string productUri, DMType dataMoveType, i32 priorityOrder, LOCALDataMovement localDataMovement)')
+ print(' bool updateLocalDataMovementDetails(AuthzToken authzToken, string dataMovementInterfaceId, LOCALDataMovement localDataMovement)')
+ print(' LOCALDataMovement getLocalDataMovement(AuthzToken authzToken, string dataMovementId)')
+ print(' string addSCPDataMovementDetails(AuthzToken authzToken, string productUri, DMType dataMoveType, i32 priorityOrder, SCPDataMovement scpDataMovement)')
+ print(' bool updateSCPDataMovementDetails(AuthzToken authzToken, string dataMovementInterfaceId, SCPDataMovement scpDataMovement)')
+ print(' SCPDataMovement getSCPDataMovement(AuthzToken authzToken, string dataMovementId)')
+ print(' string addUnicoreDataMovementDetails(AuthzToken authzToken, string productUri, DMType dataMoveType, i32 priorityOrder, UnicoreDataMovement unicoreDataMovement)')
+ print(' bool updateUnicoreDataMovementDetails(AuthzToken authzToken, string dataMovementInterfaceId, UnicoreDataMovement unicoreDataMovement)')
+ print(' UnicoreDataMovement getUnicoreDataMovement(AuthzToken authzToken, string dataMovementId)')
+ print(' string addGridFTPDataMovementDetails(AuthzToken authzToken, string productUri, DMType dataMoveType, i32 priorityOrder, GridFTPDataMovement gridFTPDataMovement)')
+ print(' bool updateGridFTPDataMovementDetails(AuthzToken authzToken, string dataMovementInterfaceId, GridFTPDataMovement gridFTPDataMovement)')
+ print(' GridFTPDataMovement getGridFTPDataMovement(AuthzToken authzToken, string dataMovementId)')
+ print(' bool changeJobSubmissionPriority(AuthzToken authzToken, string jobSubmissionInterfaceId, i32 newPriorityOrder)')
+ print(' bool changeDataMovementPriority(AuthzToken authzToken, string dataMovementInterfaceId, i32 newPriorityOrder)')
+ print(' bool changeJobSubmissionPriorities(AuthzToken authzToken, jobSubmissionPriorityMap)')
+ print(' bool changeDataMovementPriorities(AuthzToken authzToken, dataMovementPriorityMap)')
+ print(' bool deleteJobSubmissionInterface(AuthzToken authzToken, string computeResourceId, string jobSubmissionInterfaceId)')
+ print(' bool deleteDataMovementInterface(AuthzToken authzToken, string productUri, string dataMovementInterfaceId, DMType dataMoveType)')
+ print(' string registerResourceJobManager(AuthzToken authzToken, ResourceJobManager resourceJobManager)')
+ print(' bool updateResourceJobManager(AuthzToken authzToken, string resourceJobManagerId, ResourceJobManager updatedResourceJobManager)')
+ print(' ResourceJobManager getResourceJobManager(AuthzToken authzToken, string resourceJobManagerId)')
+ print(' bool deleteResourceJobManager(AuthzToken authzToken, string resourceJobManagerId)')
+ print(' bool deleteBatchQueue(AuthzToken authzToken, string computeResourceId, string queueName)')
+ print(' string registerGatewayResourceProfile(AuthzToken authzToken, GatewayResourceProfile gatewayResourceProfile)')
+ print(' GatewayResourceProfile getGatewayResourceProfile(AuthzToken authzToken, string gatewayID)')
+ print(' bool updateGatewayResourceProfile(AuthzToken authzToken, string gatewayID, GatewayResourceProfile gatewayResourceProfile)')
+ print(' bool deleteGatewayResourceProfile(AuthzToken authzToken, string gatewayID)')
+ print(' bool addGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId, ComputeResourcePreference computeResourcePreference)')
+ print(' bool addGatewayStoragePreference(AuthzToken authzToken, string gatewayID, string storageResourceId, StoragePreference storagePreference)')
+ print(' ComputeResourcePreference getGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId)')
+ print(' StoragePreference getGatewayStoragePreference(AuthzToken authzToken, string gatewayID, string storageResourceId)')
+ print(' getAllGatewayComputeResourcePreferences(AuthzToken authzToken, string gatewayID)')
+ print(' getAllGatewayStoragePreferences(AuthzToken authzToken, string gatewayID)')
+ print(' getAllGatewayResourceProfiles(AuthzToken authzToken)')
+ print(' bool updateGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId, ComputeResourcePreference computeResourcePreference)')
+ print(' bool updateGatewayStoragePreference(AuthzToken authzToken, string gatewayID, string storageId, StoragePreference storagePreference)')
+ print(' bool deleteGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId)')
+ print(' bool deleteGatewayStoragePreference(AuthzToken authzToken, string gatewayID, string storageId)')
+ print(' getAllWorkflows(AuthzToken authzToken, string gatewayId)')
+ print(' WorkflowModel getWorkflow(AuthzToken authzToken, string workflowTemplateId)')
+ print(' void deleteWorkflow(AuthzToken authzToken, string workflowTemplateId)')
+ print(' string registerWorkflow(AuthzToken authzToken, string gatewayId, WorkflowModel workflow)')
+ print(' void updateWorkflow(AuthzToken authzToken, string workflowTemplateId, WorkflowModel workflow)')
+ print(' string getWorkflowTemplateId(AuthzToken authzToken, string workflowName)')
+ print(' bool isWorkflowExistWithName(AuthzToken authzToken, string workflowName)')
+ print(' string registerDataProduct(AuthzToken authzToken, DataProductModel dataProductModel)')
+ print(' DataProductModel getDataProduct(AuthzToken authzToken, string dataProductUri)')
+ print(' string registerReplicaLocation(AuthzToken authzToken, DataReplicaLocationModel replicaLocationModel)')
+ print(' DataProductModel getParentDataProduct(AuthzToken authzToken, string productUri)')
+ print(' getChildDataProducts(AuthzToken authzToken, string productUri)')
+ print(' bool shareResourceWithUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType, userPermissionList)')
+ print(' bool revokeSharingOfResourceFromUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType, userPermissionList)')
+ print(' getAllAccessibleUsers(AuthzToken authzToken, string resourceId, ResourceType resourceType, ResourcePermissionType permissionType)')
+ print(' bool createGroup(AuthzToken authzToken, GroupModel groupModel)')
+ print(' bool updateGroup(AuthzToken authzToken, GroupModel groupModel)')
+ print(' bool deleteGroup(AuthzToken authzToken, string groupId, string ownerId, string gatewayId)')
+ print(' GroupModel getGroup(AuthzToken authzToken, string groupId)')
+ print(' getAllGroupsUserBelongs(AuthzToken authzToken, string userName, string gatewayId)')
+ print('')
+ sys.exit(0)
+
+pp = pprint.PrettyPrinter(indent = 2)
+host = 'localhost'
+port = 9090
+uri = ''
+framed = False
+ssl = False
+http = False
+argi = 1
+
+if sys.argv[argi] == '-h':
+ parts = sys.argv[argi+1].split(':')
+ host = parts[0]
+ if len(parts) > 1:
+ port = int(parts[1])
+ argi += 2
+
+if sys.argv[argi] == '-u':
+ url = urlparse(sys.argv[argi+1])
+ parts = url[1].split(':')
+ host = parts[0]
+ if len(parts) > 1:
+ port = int(parts[1])
+ else:
+ port = 80
+ uri = url[2]
+ if url[4]:
+ uri += '?%s' % url[4]
+ http = True
+ argi += 2
+
+if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
+ framed = True
+ argi += 1
+
+if sys.argv[argi] == '-s' or sys.argv[argi] == '-ssl':
+ ssl = True
+ argi += 1
+
+cmd = sys.argv[argi]
+args = sys.argv[argi+1:]
+
+if http:
+ transport = THttpClient.THttpClient(host, port, uri)
+else:
+ socket = TSSLSocket.TSSLSocket(host, port, validate=False) if ssl else TSocket.TSocket(host, port)
+ if framed:
+ transport = TTransport.TFramedTransport(socket)
+ else:
+ transport = TTransport.TBufferedTransport(socket)
+protocol = TBinaryProtocol.TBinaryProtocol(transport)
+client = Airavata.Client(protocol)
+transport.open()
+
+if cmd == 'getAPIVersion':
+ if len(args) != 1:
+ print('getAPIVersion requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAPIVersion(eval(args[0]),))
+
+elif cmd == 'isUserExists':
+ if len(args) != 3:
+ print('isUserExists requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.isUserExists(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'addGateway':
+ if len(args) != 2:
+ print('addGateway requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.addGateway(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getAllUsersInGateway':
+ if len(args) != 2:
+ print('getAllUsersInGateway requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllUsersInGateway(eval(args[0]),args[1],))
+
+elif cmd == 'updateGateway':
+ if len(args) != 3:
+ print('updateGateway requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateGateway(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getGateway':
+ if len(args) != 2:
+ print('getGateway requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getGateway(eval(args[0]),args[1],))
+
+elif cmd == 'deleteGateway':
+ if len(args) != 2:
+ print('deleteGateway requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGateway(eval(args[0]),args[1],))
+
+elif cmd == 'getAllGateways':
+ if len(args) != 1:
+ print('getAllGateways requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGateways(eval(args[0]),))
+
+elif cmd == 'isGatewayExist':
+ if len(args) != 2:
+ print('isGatewayExist requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.isGatewayExist(eval(args[0]),args[1],))
+
+elif cmd == 'createNotification':
+ if len(args) != 2:
+ print('createNotification requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.createNotification(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'updateNotification':
+ if len(args) != 2:
+ print('updateNotification requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.updateNotification(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'deleteNotification':
+ if len(args) != 3:
+ print('deleteNotification requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteNotification(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getNotification':
+ if len(args) != 3:
+ print('getNotification requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.getNotification(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllNotifications':
+ if len(args) != 2:
+ print('getAllNotifications requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllNotifications(eval(args[0]),args[1],))
+
+elif cmd == 'generateAndRegisterSSHKeys':
+ if len(args) != 3:
+ print('generateAndRegisterSSHKeys requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.generateAndRegisterSSHKeys(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'registerPwdCredential':
+ if len(args) != 6:
+ print('registerPwdCredential requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.registerPwdCredential(eval(args[0]),args[1],args[2],args[3],args[4],args[5],))
+
+elif cmd == 'getSSHPubKey':
+ if len(args) != 3:
+ print('getSSHPubKey requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.getSSHPubKey(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllGatewaySSHPubKeys':
+ if len(args) != 2:
+ print('getAllGatewaySSHPubKeys requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGatewaySSHPubKeys(eval(args[0]),args[1],))
+
+elif cmd == 'getAllGatewayPWDCredentials':
+ if len(args) != 2:
+ print('getAllGatewayPWDCredentials requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGatewayPWDCredentials(eval(args[0]),args[1],))
+
+elif cmd == 'deleteSSHPubKey':
+ if len(args) != 3:
+ print('deleteSSHPubKey requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteSSHPubKey(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'deletePWDCredential':
+ if len(args) != 3:
+ print('deletePWDCredential requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deletePWDCredential(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'createProject':
+ if len(args) != 3:
+ print('createProject requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.createProject(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateProject':
+ if len(args) != 3:
+ print('updateProject requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateProject(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getProject':
+ if len(args) != 2:
+ print('getProject requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getProject(eval(args[0]),args[1],))
+
+elif cmd == 'deleteProject':
+ if len(args) != 2:
+ print('deleteProject requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteProject(eval(args[0]),args[1],))
+
+elif cmd == 'getUserProjects':
+ if len(args) != 5:
+ print('getUserProjects requires 5 args')
+ sys.exit(1)
+ pp.pprint(client.getUserProjects(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),))
+
+elif cmd == 'searchProjects':
+ if len(args) != 6:
+ print('searchProjects requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchProjects(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),eval(args[5]),))
+
+elif cmd == 'searchExperiments':
+ if len(args) != 6:
+ print('searchExperiments requires 6 args')
+ sys.exit(1)
+ pp.pprint(client.searchExperiments(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),eval(args[5]),))
+
+elif cmd == 'getExperimentStatistics':
+ if len(args) != 4:
+ print('getExperimentStatistics requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.getExperimentStatistics(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getExperimentsInProject':
+ if len(args) != 4:
+ print('getExperimentsInProject requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.getExperimentsInProject(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getUserExperiments':
+ if len(args) != 5:
+ print('getUserExperiments requires 5 args')
+ sys.exit(1)
+ pp.pprint(client.getUserExperiments(eval(args[0]),args[1],args[2],eval(args[3]),eval(args[4]),))
+
+elif cmd == 'createExperiment':
+ if len(args) != 3:
+ print('createExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.createExperiment(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteExperiment':
+ if len(args) != 2:
+ print('deleteExperiment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteExperiment(eval(args[0]),args[1],))
+
+elif cmd == 'getExperiment':
+ if len(args) != 2:
+ print('getExperiment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getExperiment(eval(args[0]),args[1],))
+
+elif cmd == 'getDetailedExperimentTree':
+ if len(args) != 2:
+ print('getDetailedExperimentTree requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getDetailedExperimentTree(eval(args[0]),args[1],))
+
+elif cmd == 'updateExperiment':
+ if len(args) != 3:
+ print('updateExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateExperiment(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateExperimentConfiguration':
+ if len(args) != 3:
+ print('updateExperimentConfiguration requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateExperimentConfiguration(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateResourceScheduleing':
+ if len(args) != 3:
+ print('updateResourceScheduleing requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateResourceScheduleing(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'validateExperiment':
+ if len(args) != 2:
+ print('validateExperiment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.validateExperiment(eval(args[0]),args[1],))
+
+elif cmd == 'launchExperiment':
+ if len(args) != 3:
+ print('launchExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.launchExperiment(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getExperimentStatus':
+ if len(args) != 2:
+ print('getExperimentStatus requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getExperimentStatus(eval(args[0]),args[1],))
+
+elif cmd == 'getExperimentOutputs':
+ if len(args) != 2:
+ print('getExperimentOutputs requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getExperimentOutputs(eval(args[0]),args[1],))
+
+elif cmd == 'getIntermediateOutputs':
+ if len(args) != 2:
+ print('getIntermediateOutputs requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getIntermediateOutputs(eval(args[0]),args[1],))
+
+elif cmd == 'getJobStatuses':
+ if len(args) != 2:
+ print('getJobStatuses requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getJobStatuses(eval(args[0]),args[1],))
+
+elif cmd == 'getJobDetails':
+ if len(args) != 2:
+ print('getJobDetails requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getJobDetails(eval(args[0]),args[1],))
+
+elif cmd == 'cloneExperiment':
+ if len(args) != 3:
+ print('cloneExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.cloneExperiment(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'terminateExperiment':
+ if len(args) != 3:
+ print('terminateExperiment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.terminateExperiment(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'registerApplicationModule':
+ if len(args) != 3:
+ print('registerApplicationModule requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.registerApplicationModule(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getApplicationModule':
+ if len(args) != 2:
+ print('getApplicationModule requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationModule(eval(args[0]),args[1],))
+
+elif cmd == 'updateApplicationModule':
+ if len(args) != 3:
+ print('updateApplicationModule requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateApplicationModule(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getAllAppModules':
+ if len(args) != 2:
+ print('getAllAppModules requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllAppModules(eval(args[0]),args[1],))
+
+elif cmd == 'deleteApplicationModule':
+ if len(args) != 2:
+ print('deleteApplicationModule requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteApplicationModule(eval(args[0]),args[1],))
+
+elif cmd == 'registerApplicationDeployment':
+ if len(args) != 3:
+ print('registerApplicationDeployment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.registerApplicationDeployment(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getApplicationDeployment':
+ if len(args) != 2:
+ print('getApplicationDeployment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationDeployment(eval(args[0]),args[1],))
+
+elif cmd == 'updateApplicationDeployment':
+ if len(args) != 3:
+ print('updateApplicationDeployment requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateApplicationDeployment(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteApplicationDeployment':
+ if len(args) != 2:
+ print('deleteApplicationDeployment requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteApplicationDeployment(eval(args[0]),args[1],))
+
+elif cmd == 'getAllApplicationDeployments':
+ if len(args) != 2:
+ print('getAllApplicationDeployments requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllApplicationDeployments(eval(args[0]),args[1],))
+
+elif cmd == 'getAppModuleDeployedResources':
+ if len(args) != 2:
+ print('getAppModuleDeployedResources requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAppModuleDeployedResources(eval(args[0]),args[1],))
+
+elif cmd == 'registerApplicationInterface':
+ if len(args) != 3:
+ print('registerApplicationInterface requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.registerApplicationInterface(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'cloneApplicationInterface':
+ if len(args) != 4:
+ print('cloneApplicationInterface requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.cloneApplicationInterface(eval(args[0]),args[1],args[2],args[3],))
+
+elif cmd == 'getApplicationInterface':
+ if len(args) != 2:
+ print('getApplicationInterface requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationInterface(eval(args[0]),args[1],))
+
+elif cmd == 'updateApplicationInterface':
+ if len(args) != 3:
+ print('updateApplicationInterface requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateApplicationInterface(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteApplicationInterface':
+ if len(args) != 2:
+ print('deleteApplicationInterface requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteApplicationInterface(eval(args[0]),args[1],))
+
+elif cmd == 'getAllApplicationInterfaceNames':
+ if len(args) != 2:
+ print('getAllApplicationInterfaceNames requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllApplicationInterfaceNames(eval(args[0]),args[1],))
+
+elif cmd == 'getAllApplicationInterfaces':
+ if len(args) != 2:
+ print('getAllApplicationInterfaces requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllApplicationInterfaces(eval(args[0]),args[1],))
+
+elif cmd == 'getApplicationInputs':
+ if len(args) != 2:
+ print('getApplicationInputs requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationInputs(eval(args[0]),args[1],))
+
+elif cmd == 'getApplicationOutputs':
+ if len(args) != 2:
+ print('getApplicationOutputs requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getApplicationOutputs(eval(args[0]),args[1],))
+
+elif cmd == 'getAvailableAppInterfaceComputeResources':
+ if len(args) != 2:
+ print('getAvailableAppInterfaceComputeResources requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAvailableAppInterfaceComputeResources(eval(args[0]),args[1],))
+
+elif cmd == 'registerComputeResource':
+ if len(args) != 2:
+ print('registerComputeResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerComputeResource(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getComputeResource':
+ if len(args) != 2:
+ print('getComputeResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getComputeResource(eval(args[0]),args[1],))
+
+elif cmd == 'getAllComputeResourceNames':
+ if len(args) != 1:
+ print('getAllComputeResourceNames requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAllComputeResourceNames(eval(args[0]),))
+
+elif cmd == 'updateComputeResource':
+ if len(args) != 3:
+ print('updateComputeResource requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateComputeResource(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteComputeResource':
+ if len(args) != 2:
+ print('deleteComputeResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteComputeResource(eval(args[0]),args[1],))
+
+elif cmd == 'registerStorageResource':
+ if len(args) != 2:
+ print('registerStorageResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerStorageResource(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getStorageResource':
+ if len(args) != 2:
+ print('getStorageResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getStorageResource(eval(args[0]),args[1],))
+
+elif cmd == 'getAllStorageResourceNames':
+ if len(args) != 1:
+ print('getAllStorageResourceNames requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAllStorageResourceNames(eval(args[0]),))
+
+elif cmd == 'updateStorageResource':
+ if len(args) != 3:
+ print('updateStorageResource requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateStorageResource(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteStorageResource':
+ if len(args) != 2:
+ print('deleteStorageResource requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteStorageResource(eval(args[0]),args[1],))
+
+elif cmd == 'addLocalSubmissionDetails':
+ if len(args) != 4:
+ print('addLocalSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addLocalSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'updateLocalSubmissionDetails':
+ if len(args) != 3:
+ print('updateLocalSubmissionDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateLocalSubmissionDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getLocalJobSubmission':
+ if len(args) != 2:
+ print('getLocalJobSubmission requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getLocalJobSubmission(eval(args[0]),args[1],))
+
+elif cmd == 'addSSHJobSubmissionDetails':
+ if len(args) != 4:
+ print('addSSHJobSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addSSHJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'addSSHForkJobSubmissionDetails':
+ if len(args) != 4:
+ print('addSSHForkJobSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addSSHForkJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getSSHJobSubmission':
+ if len(args) != 2:
+ print('getSSHJobSubmission requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getSSHJobSubmission(eval(args[0]),args[1],))
+
+elif cmd == 'addUNICOREJobSubmissionDetails':
+ if len(args) != 4:
+ print('addUNICOREJobSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addUNICOREJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getUnicoreJobSubmission':
+ if len(args) != 2:
+ print('getUnicoreJobSubmission requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getUnicoreJobSubmission(eval(args[0]),args[1],))
+
+elif cmd == 'addCloudJobSubmissionDetails':
+ if len(args) != 4:
+ print('addCloudJobSubmissionDetails requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addCloudJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getCloudJobSubmission':
+ if len(args) != 2:
+ print('getCloudJobSubmission requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getCloudJobSubmission(eval(args[0]),args[1],))
+
+elif cmd == 'updateSSHJobSubmissionDetails':
+ if len(args) != 3:
+ print('updateSSHJobSubmissionDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateSSHJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateCloudJobSubmissionDetails':
+ if len(args) != 3:
+ print('updateCloudJobSubmissionDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateCloudJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateUnicoreJobSubmissionDetails':
+ if len(args) != 3:
+ print('updateUnicoreJobSubmissionDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateUnicoreJobSubmissionDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'addLocalDataMovementDetails':
+ if len(args) != 5:
+ print('addLocalDataMovementDetails requires 5 args')
+ sys.exit(1)
+ pp.pprint(client.addLocalDataMovementDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),eval(args[4]),))
+
+elif cmd == 'updateLocalDataMovementDetails':
+ if len(args) != 3:
+ print('updateLocalDataMovementDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateLocalDataMovementDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getLocalDataMovement':
+ if len(args) != 2:
+ print('getLocalDataMovement requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getLocalDataMovement(eval(args[0]),args[1],))
+
+elif cmd == 'addSCPDataMovementDetails':
+ if len(args) != 5:
+ print('addSCPDataMovementDetails requires 5 args')
+ sys.exit(1)
+ pp.pprint(client.addSCPDataMovementDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),eval(args[4]),))
+
+elif cmd == 'updateSCPDataMovementDetails':
+ if len(args) != 3:
+ print('updateSCPDataMovementDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateSCPDataMovementDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getSCPDataMovement':
+ if len(args) != 2:
+ print('getSCPDataMovement requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getSCPDataMovement(eval(args[0]),args[1],))
+
+elif cmd == 'addUnicoreDataMovementDetails':
+ if len(args) != 5:
+ print('addUnicoreDataMovementDetails requires 5 args')
+ sys.exit(1)
+ pp.pprint(client.addUnicoreDataMovementDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),eval(args[4]),))
+
+elif cmd == 'updateUnicoreDataMovementDetails':
+ if len(args) != 3:
+ print('updateUnicoreDataMovementDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateUnicoreDataMovementDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getUnicoreDataMovement':
+ if len(args) != 2:
+ print('getUnicoreDataMovement requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getUnicoreDataMovement(eval(args[0]),args[1],))
+
+elif cmd == 'addGridFTPDataMovementDetails':
+ if len(args) != 5:
+ print('addGridFTPDataMovementDetails requires 5 args')
+ sys.exit(1)
+ pp.pprint(client.addGridFTPDataMovementDetails(eval(args[0]),args[1],eval(args[2]),eval(args[3]),eval(args[4]),))
+
+elif cmd == 'updateGridFTPDataMovementDetails':
+ if len(args) != 3:
+ print('updateGridFTPDataMovementDetails requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateGridFTPDataMovementDetails(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getGridFTPDataMovement':
+ if len(args) != 2:
+ print('getGridFTPDataMovement requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getGridFTPDataMovement(eval(args[0]),args[1],))
+
+elif cmd == 'changeJobSubmissionPriority':
+ if len(args) != 3:
+ print('changeJobSubmissionPriority requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.changeJobSubmissionPriority(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'changeDataMovementPriority':
+ if len(args) != 3:
+ print('changeDataMovementPriority requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.changeDataMovementPriority(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'changeJobSubmissionPriorities':
+ if len(args) != 2:
+ print('changeJobSubmissionPriorities requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.changeJobSubmissionPriorities(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'changeDataMovementPriorities':
+ if len(args) != 2:
+ print('changeDataMovementPriorities requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.changeDataMovementPriorities(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'deleteJobSubmissionInterface':
+ if len(args) != 3:
+ print('deleteJobSubmissionInterface requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteJobSubmissionInterface(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'deleteDataMovementInterface':
+ if len(args) != 4:
+ print('deleteDataMovementInterface requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.deleteDataMovementInterface(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'registerResourceJobManager':
+ if len(args) != 2:
+ print('registerResourceJobManager requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerResourceJobManager(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'updateResourceJobManager':
+ if len(args) != 3:
+ print('updateResourceJobManager requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateResourceJobManager(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getResourceJobManager':
+ if len(args) != 2:
+ print('getResourceJobManager requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getResourceJobManager(eval(args[0]),args[1],))
+
+elif cmd == 'deleteResourceJobManager':
+ if len(args) != 2:
+ print('deleteResourceJobManager requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteResourceJobManager(eval(args[0]),args[1],))
+
+elif cmd == 'deleteBatchQueue':
+ if len(args) != 3:
+ print('deleteBatchQueue requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteBatchQueue(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'registerGatewayResourceProfile':
+ if len(args) != 2:
+ print('registerGatewayResourceProfile requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerGatewayResourceProfile(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getGatewayResourceProfile':
+ if len(args) != 2:
+ print('getGatewayResourceProfile requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getGatewayResourceProfile(eval(args[0]),args[1],))
+
+elif cmd == 'updateGatewayResourceProfile':
+ if len(args) != 3:
+ print('updateGatewayResourceProfile requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateGatewayResourceProfile(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteGatewayResourceProfile':
+ if len(args) != 2:
+ print('deleteGatewayResourceProfile requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGatewayResourceProfile(eval(args[0]),args[1],))
+
+elif cmd == 'addGatewayComputeResourcePreference':
+ if len(args) != 4:
+ print('addGatewayComputeResourcePreference requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'addGatewayStoragePreference':
+ if len(args) != 4:
+ print('addGatewayStoragePreference requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.addGatewayStoragePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'getGatewayComputeResourcePreference':
+ if len(args) != 3:
+ print('getGatewayComputeResourcePreference requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.getGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getGatewayStoragePreference':
+ if len(args) != 3:
+ print('getGatewayStoragePreference requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.getGatewayStoragePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllGatewayComputeResourcePreferences':
+ if len(args) != 2:
+ print('getAllGatewayComputeResourcePreferences requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGatewayComputeResourcePreferences(eval(args[0]),args[1],))
+
+elif cmd == 'getAllGatewayStoragePreferences':
+ if len(args) != 2:
+ print('getAllGatewayStoragePreferences requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGatewayStoragePreferences(eval(args[0]),args[1],))
+
+elif cmd == 'getAllGatewayResourceProfiles':
+ if len(args) != 1:
+ print('getAllGatewayResourceProfiles requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGatewayResourceProfiles(eval(args[0]),))
+
+elif cmd == 'updateGatewayComputeResourcePreference':
+ if len(args) != 4:
+ print('updateGatewayComputeResourcePreference requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.updateGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'updateGatewayStoragePreference':
+ if len(args) != 4:
+ print('updateGatewayStoragePreference requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.updateGatewayStoragePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'deleteGatewayComputeResourcePreference':
+ if len(args) != 3:
+ print('deleteGatewayComputeResourcePreference requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGatewayComputeResourcePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'deleteGatewayStoragePreference':
+ if len(args) != 3:
+ print('deleteGatewayStoragePreference requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGatewayStoragePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllWorkflows':
+ if len(args) != 2:
+ print('getAllWorkflows requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getAllWorkflows(eval(args[0]),args[1],))
+
+elif cmd == 'getWorkflow':
+ if len(args) != 2:
+ print('getWorkflow requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getWorkflow(eval(args[0]),args[1],))
+
+elif cmd == 'deleteWorkflow':
+ if len(args) != 2:
+ print('deleteWorkflow requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.deleteWorkflow(eval(args[0]),args[1],))
+
+elif cmd == 'registerWorkflow':
+ if len(args) != 3:
+ print('registerWorkflow requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.registerWorkflow(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'updateWorkflow':
+ if len(args) != 3:
+ print('updateWorkflow requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.updateWorkflow(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'getWorkflowTemplateId':
+ if len(args) != 2:
+ print('getWorkflowTemplateId requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getWorkflowTemplateId(eval(args[0]),args[1],))
+
+elif cmd == 'isWorkflowExistWithName':
+ if len(args) != 2:
+ print('isWorkflowExistWithName requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.isWorkflowExistWithName(eval(args[0]),args[1],))
+
+elif cmd == 'registerDataProduct':
+ if len(args) != 2:
+ print('registerDataProduct requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerDataProduct(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getDataProduct':
+ if len(args) != 2:
+ print('getDataProduct requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getDataProduct(eval(args[0]),args[1],))
+
+elif cmd == 'registerReplicaLocation':
+ if len(args) != 2:
+ print('registerReplicaLocation requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.registerReplicaLocation(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getParentDataProduct':
+ if len(args) != 2:
+ print('getParentDataProduct requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getParentDataProduct(eval(args[0]),args[1],))
+
+elif cmd == 'getChildDataProducts':
+ if len(args) != 2:
+ print('getChildDataProducts requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getChildDataProducts(eval(args[0]),args[1],))
+
+elif cmd == 'shareResourceWithUsers':
+ if len(args) != 4:
+ print('shareResourceWithUsers requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.shareResourceWithUsers(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'revokeSharingOfResourceFromUsers':
+ if len(args) != 4:
+ print('revokeSharingOfResourceFromUsers requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.revokeSharingOfResourceFromUsers(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getAllAccessibleUsers':
+ if len(args) != 4:
+ print('getAllAccessibleUsers requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.getAllAccessibleUsers(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'createGroup':
+ if len(args) != 2:
+ print('createGroup requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.createGroup(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'updateGroup':
+ if len(args) != 2:
+ print('updateGroup requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.updateGroup(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'deleteGroup':
+ if len(args) != 4:
+ print('deleteGroup requires 4 args')
+ sys.exit(1)
+ pp.pprint(client.deleteGroup(eval(args[0]),args[1],args[2],args[3],))
+
+elif cmd == 'getGroup':
+ if len(args) != 2:
+ print('getGroup requires 2 args')
+ sys.exit(1)
+ pp.pprint(client.getGroup(eval(args[0]),args[1],))
+
+elif cmd == 'getAllGroupsUserBelongs':
+ if len(args) != 3:
+ print('getAllGroupsUserBelongs requires 3 args')
+ sys.exit(1)
+ pp.pprint(client.getAllGroupsUserBelongs(eval(args[0]),args[1],args[2],))
+
+else:
+ print('Unrecognized method %s' % cmd)
+ sys.exit(1)
+
+transport.close()
[08/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.py
new file mode 100644
index 0000000..75f6271
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.py
@@ -0,0 +1,1111 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+import apache.airavata.model.application.io.ttypes
+import apache.airavata.model.scheduling.ttypes
+import apache.airavata.model.status.ttypes
+import apache.airavata.model.process.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ExperimentType:
+ SINGLE_APPLICATION = 0
+ WORKFLOW = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "SINGLE_APPLICATION",
+ 1: "WORKFLOW",
+ }
+
+ _NAMES_TO_VALUES = {
+ "SINGLE_APPLICATION": 0,
+ "WORKFLOW": 1,
+ }
+
+class ExperimentSearchFields:
+ EXPERIMENT_NAME = 0
+ EXPERIMENT_DESC = 1
+ APPLICATION_ID = 2
+ FROM_DATE = 3
+ TO_DATE = 4
+ STATUS = 5
+ PROJECT_ID = 6
+
+ _VALUES_TO_NAMES = {
+ 0: "EXPERIMENT_NAME",
+ 1: "EXPERIMENT_DESC",
+ 2: "APPLICATION_ID",
+ 3: "FROM_DATE",
+ 4: "TO_DATE",
+ 5: "STATUS",
+ 6: "PROJECT_ID",
+ }
+
+ _NAMES_TO_VALUES = {
+ "EXPERIMENT_NAME": 0,
+ "EXPERIMENT_DESC": 1,
+ "APPLICATION_ID": 2,
+ "FROM_DATE": 3,
+ "TO_DATE": 4,
+ "STATUS": 5,
+ "PROJECT_ID": 6,
+ }
+
+class ProjectSearchFields:
+ PROJECT_NAME = 0
+ PROJECT_DESCRIPTION = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "PROJECT_NAME",
+ 1: "PROJECT_DESCRIPTION",
+ }
+
+ _NAMES_TO_VALUES = {
+ "PROJECT_NAME": 0,
+ "PROJECT_DESCRIPTION": 1,
+ }
+
+
+class UserConfigurationDataModel:
+ """
+ A structure holding the experiment configuration.
+
+
+
+ Attributes:
+ - airavataAutoSchedule
+ - overrideManualScheduledParams
+ - shareExperimentPublicly
+ - computationalResourceScheduling
+ - throttleResources
+ - userDN
+ - generateCert
+ - storageId
+ - experimentDataDir
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'airavataAutoSchedule', None, False, ), # 1
+ (2, TType.BOOL, 'overrideManualScheduledParams', None, False, ), # 2
+ (3, TType.BOOL, 'shareExperimentPublicly', None, False, ), # 3
+ (4, TType.STRUCT, 'computationalResourceScheduling', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 4
+ (5, TType.BOOL, 'throttleResources', None, False, ), # 5
+ (6, TType.STRING, 'userDN', None, None, ), # 6
+ (7, TType.BOOL, 'generateCert', None, False, ), # 7
+ (8, TType.STRING, 'storageId', None, None, ), # 8
+ (9, TType.STRING, 'experimentDataDir', None, None, ), # 9
+ )
+
+ def __init__(self, airavataAutoSchedule=thrift_spec[1][4], overrideManualScheduledParams=thrift_spec[2][4], shareExperimentPublicly=thrift_spec[3][4], computationalResourceScheduling=None, throttleResources=thrift_spec[5][4], userDN=None, generateCert=thrift_spec[7][4], storageId=None, experimentDataDir=None,):
+ self.airavataAutoSchedule = airavataAutoSchedule
+ self.overrideManualScheduledParams = overrideManualScheduledParams
+ self.shareExperimentPublicly = shareExperimentPublicly
+ self.computationalResourceScheduling = computationalResourceScheduling
+ self.throttleResources = throttleResources
+ self.userDN = userDN
+ self.generateCert = generateCert
+ self.storageId = storageId
+ self.experimentDataDir = experimentDataDir
+
+ 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.BOOL:
+ self.airavataAutoSchedule = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.BOOL:
+ self.overrideManualScheduledParams = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.BOOL:
+ self.shareExperimentPublicly = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.computationalResourceScheduling = apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
+ self.computationalResourceScheduling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.BOOL:
+ self.throttleResources = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.userDN = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.BOOL:
+ self.generateCert = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.storageId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.experimentDataDir = 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('UserConfigurationDataModel')
+ if self.airavataAutoSchedule is not None:
+ oprot.writeFieldBegin('airavataAutoSchedule', TType.BOOL, 1)
+ oprot.writeBool(self.airavataAutoSchedule)
+ oprot.writeFieldEnd()
+ if self.overrideManualScheduledParams is not None:
+ oprot.writeFieldBegin('overrideManualScheduledParams', TType.BOOL, 2)
+ oprot.writeBool(self.overrideManualScheduledParams)
+ oprot.writeFieldEnd()
+ if self.shareExperimentPublicly is not None:
+ oprot.writeFieldBegin('shareExperimentPublicly', TType.BOOL, 3)
+ oprot.writeBool(self.shareExperimentPublicly)
+ oprot.writeFieldEnd()
+ if self.computationalResourceScheduling is not None:
+ oprot.writeFieldBegin('computationalResourceScheduling', TType.STRUCT, 4)
+ self.computationalResourceScheduling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.throttleResources is not None:
+ oprot.writeFieldBegin('throttleResources', TType.BOOL, 5)
+ oprot.writeBool(self.throttleResources)
+ oprot.writeFieldEnd()
+ if self.userDN is not None:
+ oprot.writeFieldBegin('userDN', TType.STRING, 6)
+ oprot.writeString(self.userDN)
+ oprot.writeFieldEnd()
+ if self.generateCert is not None:
+ oprot.writeFieldBegin('generateCert', TType.BOOL, 7)
+ oprot.writeBool(self.generateCert)
+ oprot.writeFieldEnd()
+ if self.storageId is not None:
+ oprot.writeFieldBegin('storageId', TType.STRING, 8)
+ oprot.writeString(self.storageId)
+ oprot.writeFieldEnd()
+ if self.experimentDataDir is not None:
+ oprot.writeFieldBegin('experimentDataDir', TType.STRING, 9)
+ oprot.writeString(self.experimentDataDir)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataAutoSchedule is None:
+ raise TProtocol.TProtocolException(message='Required field airavataAutoSchedule is unset!')
+ if self.overrideManualScheduledParams is None:
+ raise TProtocol.TProtocolException(message='Required field overrideManualScheduledParams is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataAutoSchedule)
+ value = (value * 31) ^ hash(self.overrideManualScheduledParams)
+ value = (value * 31) ^ hash(self.shareExperimentPublicly)
+ value = (value * 31) ^ hash(self.computationalResourceScheduling)
+ value = (value * 31) ^ hash(self.throttleResources)
+ value = (value * 31) ^ hash(self.userDN)
+ value = (value * 31) ^ hash(self.generateCert)
+ value = (value * 31) ^ hash(self.storageId)
+ value = (value * 31) ^ hash(self.experimentDataDir)
+ 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 ExperimentModel:
+ """
+ A structure holding the experiment metadata and its child models.
+
+ userName:
+ The user name of the targeted gateway end user on whose behalf the experiment is being created.
+ the associated gateway identity can only be inferred from the security hand-shake so as to avoid
+ authorized Airavata Clients mimicking an unauthorized request. If a gateway is not registered with
+ Airavata, an authorization exception is thrown.
+
+ experimentName:
+ The name of the experiment as defined by the user. The name need not be unique as uniqueness is enforced
+ by the generated experiment id.
+
+ experimentDescription:
+ The verbose description of the experiment. This is an optional parameter.
+
+ Attributes:
+ - experimentId
+ - projectId
+ - gatewayId
+ - experimentType
+ - userName
+ - experimentName
+ - creationTime
+ - description
+ - executionId
+ - gatewayExecutionId
+ - gatewayInstanceId
+ - enableEmailNotification
+ - emailAddresses
+ - userConfigurationData
+ - experimentInputs
+ - experimentOutputs
+ - experimentStatus
+ - errors
+ - processes
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'experimentId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'projectId', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ (4, TType.I32, 'experimentType', None, 0, ), # 4
+ (5, TType.STRING, 'userName', None, None, ), # 5
+ (6, TType.STRING, 'experimentName', None, None, ), # 6
+ (7, TType.I64, 'creationTime', None, None, ), # 7
+ (8, TType.STRING, 'description', None, None, ), # 8
+ (9, TType.STRING, 'executionId', None, None, ), # 9
+ (10, TType.STRING, 'gatewayExecutionId', None, None, ), # 10
+ (11, TType.STRING, 'gatewayInstanceId', None, None, ), # 11
+ (12, TType.BOOL, 'enableEmailNotification', None, None, ), # 12
+ (13, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 13
+ (14, TType.STRUCT, 'userConfigurationData', (UserConfigurationDataModel, UserConfigurationDataModel.thrift_spec), None, ), # 14
+ (15, TType.LIST, 'experimentInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 15
+ (16, TType.LIST, 'experimentOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 16
+ (17, TType.STRUCT, 'experimentStatus', (apache.airavata.model.status.ttypes.ExperimentStatus, apache.airavata.model.status.ttypes.ExperimentStatus.thrift_spec), None, ), # 17
+ (18, TType.LIST, 'errors', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 18
+ (19, TType.LIST, 'processes', (TType.STRUCT,(apache.airavata.model.process.ttypes.ProcessModel, apache.airavata.model.process.ttypes.ProcessModel.thrift_spec)), None, ), # 19
+ )
+
+ def __init__(self, experimentId=thrift_spec[1][4], projectId=None, gatewayId=None, experimentType=thrift_spec[4][4], userName=None, experimentName=None, creationTime=None, description=None, executionId=None, gatewayExecutionId=None, gatewayInstanceId=None, enableEmailNotification=None, emailAddresses=None, userConfigurationData=None, experimentInputs=None, experimentOutputs=None, experimentStatus=None, errors=None, processes=None,):
+ self.experimentId = experimentId
+ self.projectId = projectId
+ self.gatewayId = gatewayId
+ self.experimentType = experimentType
+ self.userName = userName
+ self.experimentName = experimentName
+ self.creationTime = creationTime
+ self.description = description
+ self.executionId = executionId
+ self.gatewayExecutionId = gatewayExecutionId
+ self.gatewayInstanceId = gatewayInstanceId
+ self.enableEmailNotification = enableEmailNotification
+ self.emailAddresses = emailAddresses
+ self.userConfigurationData = userConfigurationData
+ self.experimentInputs = experimentInputs
+ self.experimentOutputs = experimentOutputs
+ self.experimentStatus = experimentStatus
+ self.errors = errors
+ self.processes = processes
+
+ 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.experimentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.projectId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.experimentType = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.userName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.experimentName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.description = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.executionId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.gatewayExecutionId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.gatewayInstanceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.BOOL:
+ self.enableEmailNotification = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.LIST:
+ self.emailAddresses = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString()
+ self.emailAddresses.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.STRUCT:
+ self.userConfigurationData = UserConfigurationDataModel()
+ self.userConfigurationData.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 15:
+ if ftype == TType.LIST:
+ self.experimentInputs = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ _elem11.read(iprot)
+ self.experimentInputs.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 16:
+ if ftype == TType.LIST:
+ self.experimentOutputs = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem17.read(iprot)
+ self.experimentOutputs.append(_elem17)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 17:
+ if ftype == TType.STRUCT:
+ self.experimentStatus = apache.airavata.model.status.ttypes.ExperimentStatus()
+ self.experimentStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 18:
+ if ftype == TType.LIST:
+ self.errors = []
+ (_etype21, _size18) = iprot.readListBegin()
+ for _i22 in xrange(_size18):
+ _elem23 = apache.airavata.model.commons.ttypes.ErrorModel()
+ _elem23.read(iprot)
+ self.errors.append(_elem23)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 19:
+ if ftype == TType.LIST:
+ self.processes = []
+ (_etype27, _size24) = iprot.readListBegin()
+ for _i28 in xrange(_size24):
+ _elem29 = apache.airavata.model.process.ttypes.ProcessModel()
+ _elem29.read(iprot)
+ self.processes.append(_elem29)
+ 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('ExperimentModel')
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 1)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.projectId is not None:
+ oprot.writeFieldBegin('projectId', TType.STRING, 2)
+ oprot.writeString(self.projectId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.experimentType is not None:
+ oprot.writeFieldBegin('experimentType', TType.I32, 4)
+ oprot.writeI32(self.experimentType)
+ oprot.writeFieldEnd()
+ if self.userName is not None:
+ oprot.writeFieldBegin('userName', TType.STRING, 5)
+ oprot.writeString(self.userName)
+ oprot.writeFieldEnd()
+ if self.experimentName is not None:
+ oprot.writeFieldBegin('experimentName', TType.STRING, 6)
+ oprot.writeString(self.experimentName)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 7)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 8)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ if self.executionId is not None:
+ oprot.writeFieldBegin('executionId', TType.STRING, 9)
+ oprot.writeString(self.executionId)
+ oprot.writeFieldEnd()
+ if self.gatewayExecutionId is not None:
+ oprot.writeFieldBegin('gatewayExecutionId', TType.STRING, 10)
+ oprot.writeString(self.gatewayExecutionId)
+ oprot.writeFieldEnd()
+ if self.gatewayInstanceId is not None:
+ oprot.writeFieldBegin('gatewayInstanceId', TType.STRING, 11)
+ oprot.writeString(self.gatewayInstanceId)
+ oprot.writeFieldEnd()
+ if self.enableEmailNotification is not None:
+ oprot.writeFieldBegin('enableEmailNotification', TType.BOOL, 12)
+ oprot.writeBool(self.enableEmailNotification)
+ oprot.writeFieldEnd()
+ if self.emailAddresses is not None:
+ oprot.writeFieldBegin('emailAddresses', TType.LIST, 13)
+ oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
+ for iter30 in self.emailAddresses:
+ oprot.writeString(iter30)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.userConfigurationData is not None:
+ oprot.writeFieldBegin('userConfigurationData', TType.STRUCT, 14)
+ self.userConfigurationData.write(oprot)
+ oprot.writeFieldEnd()
+ if self.experimentInputs is not None:
+ oprot.writeFieldBegin('experimentInputs', TType.LIST, 15)
+ oprot.writeListBegin(TType.STRUCT, len(self.experimentInputs))
+ for iter31 in self.experimentInputs:
+ iter31.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.experimentOutputs is not None:
+ oprot.writeFieldBegin('experimentOutputs', TType.LIST, 16)
+ oprot.writeListBegin(TType.STRUCT, len(self.experimentOutputs))
+ for iter32 in self.experimentOutputs:
+ iter32.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.experimentStatus is not None:
+ oprot.writeFieldBegin('experimentStatus', TType.STRUCT, 17)
+ self.experimentStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.errors is not None:
+ oprot.writeFieldBegin('errors', TType.LIST, 18)
+ oprot.writeListBegin(TType.STRUCT, len(self.errors))
+ for iter33 in self.errors:
+ iter33.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.processes is not None:
+ oprot.writeFieldBegin('processes', TType.LIST, 19)
+ oprot.writeListBegin(TType.STRUCT, len(self.processes))
+ for iter34 in self.processes:
+ iter34.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.projectId is None:
+ raise TProtocol.TProtocolException(message='Required field projectId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.experimentType is None:
+ raise TProtocol.TProtocolException(message='Required field experimentType is unset!')
+ if self.userName is None:
+ raise TProtocol.TProtocolException(message='Required field userName is unset!')
+ if self.experimentName is None:
+ raise TProtocol.TProtocolException(message='Required field experimentName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.projectId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.experimentType)
+ value = (value * 31) ^ hash(self.userName)
+ value = (value * 31) ^ hash(self.experimentName)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.description)
+ value = (value * 31) ^ hash(self.executionId)
+ value = (value * 31) ^ hash(self.gatewayExecutionId)
+ value = (value * 31) ^ hash(self.gatewayInstanceId)
+ value = (value * 31) ^ hash(self.enableEmailNotification)
+ value = (value * 31) ^ hash(self.emailAddresses)
+ value = (value * 31) ^ hash(self.userConfigurationData)
+ value = (value * 31) ^ hash(self.experimentInputs)
+ value = (value * 31) ^ hash(self.experimentOutputs)
+ value = (value * 31) ^ hash(self.experimentStatus)
+ value = (value * 31) ^ hash(self.errors)
+ value = (value * 31) ^ hash(self.processes)
+ 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 ExperimentSummaryModel:
+ """
+ Attributes:
+ - experimentId
+ - projectId
+ - gatewayId
+ - creationTime
+ - userName
+ - name
+ - description
+ - executionId
+ - resourceHostId
+ - experimentStatus
+ - statusUpdateTime
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'experimentId', None, None, ), # 1
+ (2, TType.STRING, 'projectId', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ (4, TType.I64, 'creationTime', None, None, ), # 4
+ (5, TType.STRING, 'userName', None, None, ), # 5
+ (6, TType.STRING, 'name', None, None, ), # 6
+ (7, TType.STRING, 'description', None, None, ), # 7
+ (8, TType.STRING, 'executionId', None, None, ), # 8
+ (9, TType.STRING, 'resourceHostId', None, None, ), # 9
+ (10, TType.STRING, 'experimentStatus', None, None, ), # 10
+ None, # 11
+ (12, TType.I64, 'statusUpdateTime', None, None, ), # 12
+ )
+
+ def __init__(self, experimentId=None, projectId=None, gatewayId=None, creationTime=None, userName=None, name=None, description=None, executionId=None, resourceHostId=None, experimentStatus=None, statusUpdateTime=None,):
+ self.experimentId = experimentId
+ self.projectId = projectId
+ self.gatewayId = gatewayId
+ self.creationTime = creationTime
+ self.userName = userName
+ self.name = name
+ self.description = description
+ self.executionId = executionId
+ self.resourceHostId = resourceHostId
+ self.experimentStatus = experimentStatus
+ self.statusUpdateTime = statusUpdateTime
+
+ 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.experimentId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.projectId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.userName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.description = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.executionId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.resourceHostId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.experimentStatus = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.I64:
+ self.statusUpdateTime = 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('ExperimentSummaryModel')
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 1)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.projectId is not None:
+ oprot.writeFieldBegin('projectId', TType.STRING, 2)
+ oprot.writeString(self.projectId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 4)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.userName is not None:
+ oprot.writeFieldBegin('userName', TType.STRING, 5)
+ oprot.writeString(self.userName)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 6)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 7)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ if self.executionId is not None:
+ oprot.writeFieldBegin('executionId', TType.STRING, 8)
+ oprot.writeString(self.executionId)
+ oprot.writeFieldEnd()
+ if self.resourceHostId is not None:
+ oprot.writeFieldBegin('resourceHostId', TType.STRING, 9)
+ oprot.writeString(self.resourceHostId)
+ oprot.writeFieldEnd()
+ if self.experimentStatus is not None:
+ oprot.writeFieldBegin('experimentStatus', TType.STRING, 10)
+ oprot.writeString(self.experimentStatus)
+ oprot.writeFieldEnd()
+ if self.statusUpdateTime is not None:
+ oprot.writeFieldBegin('statusUpdateTime', TType.I64, 12)
+ oprot.writeI64(self.statusUpdateTime)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.projectId is None:
+ raise TProtocol.TProtocolException(message='Required field projectId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.userName is None:
+ raise TProtocol.TProtocolException(message='Required field userName is unset!')
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.projectId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.userName)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.description)
+ value = (value * 31) ^ hash(self.executionId)
+ value = (value * 31) ^ hash(self.resourceHostId)
+ value = (value * 31) ^ hash(self.experimentStatus)
+ value = (value * 31) ^ hash(self.statusUpdateTime)
+ 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 ExperimentStatistics:
+ """
+ Attributes:
+ - allExperimentCount
+ - completedExperimentCount
+ - cancelledExperimentCount
+ - failedExperimentCount
+ - createdExperimentCount
+ - runningExperimentCount
+ - allExperiments
+ - completedExperiments
+ - failedExperiments
+ - cancelledExperiments
+ - createdExperiments
+ - runningExperiments
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'allExperimentCount', None, None, ), # 1
+ (2, TType.I32, 'completedExperimentCount', None, None, ), # 2
+ (3, TType.I32, 'cancelledExperimentCount', None, None, ), # 3
+ (4, TType.I32, 'failedExperimentCount', None, None, ), # 4
+ (5, TType.I32, 'createdExperimentCount', None, None, ), # 5
+ (6, TType.I32, 'runningExperimentCount', None, None, ), # 6
+ (7, TType.LIST, 'allExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 7
+ (8, TType.LIST, 'completedExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 8
+ (9, TType.LIST, 'failedExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 9
+ (10, TType.LIST, 'cancelledExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 10
+ (11, TType.LIST, 'createdExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 11
+ (12, TType.LIST, 'runningExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 12
+ )
+
+ def __init__(self, allExperimentCount=None, completedExperimentCount=None, cancelledExperimentCount=None, failedExperimentCount=None, createdExperimentCount=None, runningExperimentCount=None, allExperiments=None, completedExperiments=None, failedExperiments=None, cancelledExperiments=None, createdExperiments=None, runningExperiments=None,):
+ self.allExperimentCount = allExperimentCount
+ self.completedExperimentCount = completedExperimentCount
+ self.cancelledExperimentCount = cancelledExperimentCount
+ self.failedExperimentCount = failedExperimentCount
+ self.createdExperimentCount = createdExperimentCount
+ self.runningExperimentCount = runningExperimentCount
+ self.allExperiments = allExperiments
+ self.completedExperiments = completedExperiments
+ self.failedExperiments = failedExperiments
+ self.cancelledExperiments = cancelledExperiments
+ self.createdExperiments = createdExperiments
+ self.runningExperiments = runningExperiments
+
+ 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.I32:
+ self.allExperimentCount = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.completedExperimentCount = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.cancelledExperimentCount = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.failedExperimentCount = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.createdExperimentCount = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I32:
+ self.runningExperimentCount = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.allExperiments = []
+ (_etype38, _size35) = iprot.readListBegin()
+ for _i39 in xrange(_size35):
+ _elem40 = ExperimentSummaryModel()
+ _elem40.read(iprot)
+ self.allExperiments.append(_elem40)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.LIST:
+ self.completedExperiments = []
+ (_etype44, _size41) = iprot.readListBegin()
+ for _i45 in xrange(_size41):
+ _elem46 = ExperimentSummaryModel()
+ _elem46.read(iprot)
+ self.completedExperiments.append(_elem46)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.failedExperiments = []
+ (_etype50, _size47) = iprot.readListBegin()
+ for _i51 in xrange(_size47):
+ _elem52 = ExperimentSummaryModel()
+ _elem52.read(iprot)
+ self.failedExperiments.append(_elem52)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.cancelledExperiments = []
+ (_etype56, _size53) = iprot.readListBegin()
+ for _i57 in xrange(_size53):
+ _elem58 = ExperimentSummaryModel()
+ _elem58.read(iprot)
+ self.cancelledExperiments.append(_elem58)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.LIST:
+ self.createdExperiments = []
+ (_etype62, _size59) = iprot.readListBegin()
+ for _i63 in xrange(_size59):
+ _elem64 = ExperimentSummaryModel()
+ _elem64.read(iprot)
+ self.createdExperiments.append(_elem64)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.runningExperiments = []
+ (_etype68, _size65) = iprot.readListBegin()
+ for _i69 in xrange(_size65):
+ _elem70 = ExperimentSummaryModel()
+ _elem70.read(iprot)
+ self.runningExperiments.append(_elem70)
+ 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('ExperimentStatistics')
+ if self.allExperimentCount is not None:
+ oprot.writeFieldBegin('allExperimentCount', TType.I32, 1)
+ oprot.writeI32(self.allExperimentCount)
+ oprot.writeFieldEnd()
+ if self.completedExperimentCount is not None:
+ oprot.writeFieldBegin('completedExperimentCount', TType.I32, 2)
+ oprot.writeI32(self.completedExperimentCount)
+ oprot.writeFieldEnd()
+ if self.cancelledExperimentCount is not None:
+ oprot.writeFieldBegin('cancelledExperimentCount', TType.I32, 3)
+ oprot.writeI32(self.cancelledExperimentCount)
+ oprot.writeFieldEnd()
+ if self.failedExperimentCount is not None:
+ oprot.writeFieldBegin('failedExperimentCount', TType.I32, 4)
+ oprot.writeI32(self.failedExperimentCount)
+ oprot.writeFieldEnd()
+ if self.createdExperimentCount is not None:
+ oprot.writeFieldBegin('createdExperimentCount', TType.I32, 5)
+ oprot.writeI32(self.createdExperimentCount)
+ oprot.writeFieldEnd()
+ if self.runningExperimentCount is not None:
+ oprot.writeFieldBegin('runningExperimentCount', TType.I32, 6)
+ oprot.writeI32(self.runningExperimentCount)
+ oprot.writeFieldEnd()
+ if self.allExperiments is not None:
+ oprot.writeFieldBegin('allExperiments', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.allExperiments))
+ for iter71 in self.allExperiments:
+ iter71.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.completedExperiments is not None:
+ oprot.writeFieldBegin('completedExperiments', TType.LIST, 8)
+ oprot.writeListBegin(TType.STRUCT, len(self.completedExperiments))
+ for iter72 in self.completedExperiments:
+ iter72.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.failedExperiments is not None:
+ oprot.writeFieldBegin('failedExperiments', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRUCT, len(self.failedExperiments))
+ for iter73 in self.failedExperiments:
+ iter73.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.cancelledExperiments is not None:
+ oprot.writeFieldBegin('cancelledExperiments', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.cancelledExperiments))
+ for iter74 in self.cancelledExperiments:
+ iter74.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.createdExperiments is not None:
+ oprot.writeFieldBegin('createdExperiments', TType.LIST, 11)
+ oprot.writeListBegin(TType.STRUCT, len(self.createdExperiments))
+ for iter75 in self.createdExperiments:
+ iter75.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.runningExperiments is not None:
+ oprot.writeFieldBegin('runningExperiments', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRUCT, len(self.runningExperiments))
+ for iter76 in self.runningExperiments:
+ iter76.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.allExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field allExperimentCount is unset!')
+ if self.completedExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field completedExperimentCount is unset!')
+ if self.failedExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field failedExperimentCount is unset!')
+ if self.createdExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field createdExperimentCount is unset!')
+ if self.runningExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field runningExperimentCount is unset!')
+ if self.allExperiments is None:
+ raise TProtocol.TProtocolException(message='Required field allExperiments is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.allExperimentCount)
+ value = (value * 31) ^ hash(self.completedExperimentCount)
+ value = (value * 31) ^ hash(self.cancelledExperimentCount)
+ value = (value * 31) ^ hash(self.failedExperimentCount)
+ value = (value * 31) ^ hash(self.createdExperimentCount)
+ value = (value * 31) ^ hash(self.runningExperimentCount)
+ value = (value * 31) ^ hash(self.allExperiments)
+ value = (value * 31) ^ hash(self.completedExperiments)
+ value = (value * 31) ^ hash(self.failedExperiments)
+ value = (value * 31) ^ hash(self.cancelledExperiments)
+ value = (value * 31) ^ hash(self.createdExperiments)
+ value = (value * 31) ^ hash(self.runningExperiments)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc
new file mode 100644
index 0000000..c87be3d
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/experiment/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc
new file mode 100644
index 0000000..6dc6d9d
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.py
new file mode 100644
index 0000000..661c390
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.py
@@ -0,0 +1,179 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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 ResourceType:
+ PROJECT = 0
+ EXPERIMENT = 1
+ DATA = 2
+ OTHER = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "PROJECT",
+ 1: "EXPERIMENT",
+ 2: "DATA",
+ 3: "OTHER",
+ }
+
+ _NAMES_TO_VALUES = {
+ "PROJECT": 0,
+ "EXPERIMENT": 1,
+ "DATA": 2,
+ "OTHER": 3,
+ }
+
+class ResourcePermissionType:
+ WRITE = 0
+ READ = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "WRITE",
+ 1: "READ",
+ }
+
+ _NAMES_TO_VALUES = {
+ "WRITE": 0,
+ "READ": 1,
+ }
+
+
+class GroupModel:
+ """
+ Attributes:
+ - id
+ - name
+ - ownerId
+ - description
+ - members
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'id', None, None, ), # 1
+ (2, TType.STRING, 'name', None, None, ), # 2
+ (3, TType.STRING, 'ownerId', None, None, ), # 3
+ (4, TType.STRING, 'description', None, None, ), # 4
+ (5, TType.LIST, 'members', (TType.STRING,None), None, ), # 5
+ )
+
+ def __init__(self, id=None, name=None, ownerId=None, description=None, members=None,):
+ self.id = id
+ self.name = name
+ self.ownerId = ownerId
+ self.description = description
+ self.members = members
+
+ 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.id = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.ownerId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.description = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.LIST:
+ self.members = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString()
+ self.members.append(_elem5)
+ 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('GroupModel')
+ if self.id is not None:
+ oprot.writeFieldBegin('id', TType.STRING, 1)
+ oprot.writeString(self.id)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 2)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.ownerId is not None:
+ oprot.writeFieldBegin('ownerId', TType.STRING, 3)
+ oprot.writeString(self.ownerId)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 4)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ if self.members is not None:
+ oprot.writeFieldBegin('members', TType.LIST, 5)
+ oprot.writeListBegin(TType.STRING, len(self.members))
+ for iter6 in self.members:
+ oprot.writeString(iter6)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.id)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.ownerId)
+ value = (value * 31) ^ hash(self.description)
+ value = (value * 31) ^ hash(self.members)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc
new file mode 100644
index 0000000..b8c2604
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/group/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc
new file mode 100644
index 0000000..f7b1956
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.py
new file mode 100644
index 0000000..8c8f881
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.py
@@ -0,0 +1,237 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.status.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class JobModel:
+ """
+ Attributes:
+ - jobId
+ - taskId
+ - processId
+ - jobDescription
+ - creationTime
+ - jobStatus
+ - computeResourceConsumed
+ - jobName
+ - workingDir
+ - stdOut
+ - stdErr
+ - exitCode
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'jobId', None, None, ), # 1
+ (2, TType.STRING, 'taskId', None, None, ), # 2
+ (3, TType.STRING, 'processId', None, None, ), # 3
+ (4, TType.STRING, 'jobDescription', None, None, ), # 4
+ (5, TType.I64, 'creationTime', None, None, ), # 5
+ (6, TType.STRUCT, 'jobStatus', (apache.airavata.model.status.ttypes.JobStatus, apache.airavata.model.status.ttypes.JobStatus.thrift_spec), None, ), # 6
+ (7, TType.STRING, 'computeResourceConsumed', None, None, ), # 7
+ (8, TType.STRING, 'jobName', None, None, ), # 8
+ (9, TType.STRING, 'workingDir', None, None, ), # 9
+ (10, TType.STRING, 'stdOut', None, None, ), # 10
+ (11, TType.STRING, 'stdErr', None, None, ), # 11
+ (12, TType.I32, 'exitCode', None, None, ), # 12
+ )
+
+ def __init__(self, jobId=None, taskId=None, processId=None, jobDescription=None, creationTime=None, jobStatus=None, computeResourceConsumed=None, jobName=None, workingDir=None, stdOut=None, stdErr=None, exitCode=None,):
+ self.jobId = jobId
+ self.taskId = taskId
+ self.processId = processId
+ self.jobDescription = jobDescription
+ self.creationTime = creationTime
+ self.jobStatus = jobStatus
+ self.computeResourceConsumed = computeResourceConsumed
+ self.jobName = jobName
+ self.workingDir = workingDir
+ self.stdOut = stdOut
+ self.stdErr = stdErr
+ self.exitCode = exitCode
+
+ 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.jobId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.taskId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.processId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.jobDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRUCT:
+ self.jobStatus = apache.airavata.model.status.ttypes.JobStatus()
+ self.jobStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.computeResourceConsumed = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.jobName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.workingDir = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.stdOut = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.stdErr = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.I32:
+ self.exitCode = 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('JobModel')
+ if self.jobId is not None:
+ oprot.writeFieldBegin('jobId', TType.STRING, 1)
+ oprot.writeString(self.jobId)
+ oprot.writeFieldEnd()
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 2)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 3)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.jobDescription is not None:
+ oprot.writeFieldBegin('jobDescription', TType.STRING, 4)
+ oprot.writeString(self.jobDescription)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 5)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.jobStatus is not None:
+ oprot.writeFieldBegin('jobStatus', TType.STRUCT, 6)
+ self.jobStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.computeResourceConsumed is not None:
+ oprot.writeFieldBegin('computeResourceConsumed', TType.STRING, 7)
+ oprot.writeString(self.computeResourceConsumed)
+ oprot.writeFieldEnd()
+ if self.jobName is not None:
+ oprot.writeFieldBegin('jobName', TType.STRING, 8)
+ oprot.writeString(self.jobName)
+ oprot.writeFieldEnd()
+ if self.workingDir is not None:
+ oprot.writeFieldBegin('workingDir', TType.STRING, 9)
+ oprot.writeString(self.workingDir)
+ oprot.writeFieldEnd()
+ if self.stdOut is not None:
+ oprot.writeFieldBegin('stdOut', TType.STRING, 10)
+ oprot.writeString(self.stdOut)
+ oprot.writeFieldEnd()
+ if self.stdErr is not None:
+ oprot.writeFieldBegin('stdErr', TType.STRING, 11)
+ oprot.writeString(self.stdErr)
+ oprot.writeFieldEnd()
+ if self.exitCode is not None:
+ oprot.writeFieldBegin('exitCode', TType.I32, 12)
+ oprot.writeI32(self.exitCode)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobId is None:
+ raise TProtocol.TProtocolException(message='Required field jobId is unset!')
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.jobDescription is None:
+ raise TProtocol.TProtocolException(message='Required field jobDescription is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobId)
+ value = (value * 31) ^ hash(self.taskId)
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.jobDescription)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.jobStatus)
+ value = (value * 31) ^ hash(self.computeResourceConsumed)
+ value = (value * 31) ^ hash(self.jobName)
+ value = (value * 31) ^ hash(self.workingDir)
+ value = (value * 31) ^ hash(self.stdOut)
+ value = (value * 31) ^ hash(self.stdErr)
+ value = (value * 31) ^ hash(self.exitCode)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc
new file mode 100644
index 0000000..8332279
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/job/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc
new file mode 100644
index 0000000..dfe4eb0
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc
new file mode 100644
index 0000000..07f7166
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/messaging/event/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
[11/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.py
new file mode 100644
index 0000000..e129db4
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.py
@@ -0,0 +1,1640 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+import apache.airavata.model.appcatalog.parallelism.ttypes
+import apache.airavata.model.data.movement.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 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 DMType:
+ 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 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
+ - parallelismPrefix
+ """
+
+ 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
+ (6, TType.MAP, 'parallelismPrefix', (TType.I32,None,TType.STRING,None), None, ), # 6
+ )
+
+ def __init__(self, resourceJobManagerId=thrift_spec[1][4], resourceJobManagerType=None, pushMonitoringEndpoint=None, jobManagerBinPath=None, jobManagerCommands=None, parallelismPrefix=None,):
+ self.resourceJobManagerId = resourceJobManagerId
+ self.resourceJobManagerType = resourceJobManagerType
+ self.pushMonitoringEndpoint = pushMonitoringEndpoint
+ self.jobManagerBinPath = jobManagerBinPath
+ self.jobManagerCommands = jobManagerCommands
+ self.parallelismPrefix = parallelismPrefix
+
+ 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)
+ elif fid == 6:
+ if ftype == TType.MAP:
+ self.parallelismPrefix = {}
+ (_ktype8, _vtype9, _size7 ) = iprot.readMapBegin()
+ for _i11 in xrange(_size7):
+ _key12 = iprot.readI32()
+ _val13 = iprot.readString()
+ self.parallelismPrefix[_key12] = _val13
+ 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 kiter14,viter15 in self.jobManagerCommands.items():
+ oprot.writeI32(kiter14)
+ oprot.writeString(viter15)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ if self.parallelismPrefix is not None:
+ oprot.writeFieldBegin('parallelismPrefix', TType.MAP, 6)
+ oprot.writeMapBegin(TType.I32, TType.STRING, len(self.parallelismPrefix))
+ for kiter16,viter17 in self.parallelismPrefix.items():
+ oprot.writeI32(kiter16)
+ oprot.writeString(viter17)
+ 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)
+ value = (value * 31) ^ hash(self.parallelismPrefix)
+ 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 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
+ - resourceJobManager
+ - securityProtocol
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'jobSubmissionInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRUCT, 'resourceJobManager', (ResourceJobManager, ResourceJobManager.thrift_spec), None, ), # 2
+ (3, TType.I32, 'securityProtocol', None, None, ), # 3
+ )
+
+ def __init__(self, jobSubmissionInterfaceId=thrift_spec[1][4], resourceJobManager=None, securityProtocol=None,):
+ self.jobSubmissionInterfaceId = jobSubmissionInterfaceId
+ self.resourceJobManager = resourceJobManager
+ self.securityProtocol = securityProtocol
+
+ 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.STRUCT:
+ self.resourceJobManager = ResourceJobManager()
+ self.resourceJobManager.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.securityProtocol = 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('LOCALSubmission')
+ if self.jobSubmissionInterfaceId is not None:
+ oprot.writeFieldBegin('jobSubmissionInterfaceId', TType.STRING, 1)
+ oprot.writeString(self.jobSubmissionInterfaceId)
+ oprot.writeFieldEnd()
+ if self.resourceJobManager is not None:
+ oprot.writeFieldBegin('resourceJobManager', TType.STRUCT, 2)
+ self.resourceJobManager.write(oprot)
+ oprot.writeFieldEnd()
+ if self.securityProtocol is not None:
+ oprot.writeFieldBegin('securityProtocol', TType.I32, 3)
+ oprot.writeI32(self.securityProtocol)
+ 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.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.resourceJobManager)
+ value = (value * 31) ^ hash(self.securityProtocol)
+ 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 = []
+ (_etype21, _size18) = iprot.readListBegin()
+ for _i22 in xrange(_size18):
+ _elem23 = iprot.readString()
+ self.batchQueueEmailSenders.append(_elem23)
+ 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 iter24 in self.batchQueueEmailSenders:
+ oprot.writeString(iter24)
+ 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 = []
+ (_etype28, _size25) = iprot.readListBegin()
+ for _i29 in xrange(_size25):
+ _elem30 = iprot.readString()
+ self.globusGateKeeperEndPoint.append(_elem30)
+ 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 iter31 in self.globusGateKeeperEndPoint:
+ oprot.writeString(iter31)
+ 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 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
+ - gatewayUsageReporting
+ - gatewayUsageModuleLoadCommand
+ - gatewayUsageExecutable
+ """
+
+ 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,(apache.airavata.model.data.movement.ttypes.DataMovementInterface, apache.airavata.model.data.movement.ttypes.DataMovementInterface.thrift_spec)), None, ), # 10
+ (11, TType.I32, 'maxMemoryPerNode', None, None, ), # 11
+ (12, TType.BOOL, 'gatewayUsageReporting', None, None, ), # 12
+ (13, TType.STRING, 'gatewayUsageModuleLoadCommand', None, None, ), # 13
+ (14, TType.STRING, 'gatewayUsageExecutable', None, None, ), # 14
+ )
+
+ def __init__(self, computeResourceId=thrift_spec[1][4], hostName=None, hostAliases=None, ipAddresses=None, resourceDescription=None, enabled=None, batchQueues=None, fileSystems=None, jobSubmissionInterfaces=None, dataMovementInterfaces=None, maxMemoryPerNode=None, gatewayUsageReporting=None, gatewayUsageModuleLoadCommand=None, gatewayUsageExecutable=None,):
+ 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
+ self.gatewayUsageReporting = gatewayUsageReporting
+ self.gatewayUsageModuleLoadCommand = gatewayUsageModuleLoadCommand
+ self.gatewayUsageExecutable = gatewayUsageExecutable
+
+ 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 = []
+ (_etype35, _size32) = iprot.readListBegin()
+ for _i36 in xrange(_size32):
+ _elem37 = iprot.readString()
+ self.hostAliases.append(_elem37)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.LIST:
+ self.ipAddresses = []
+ (_etype41, _size38) = iprot.readListBegin()
+ for _i42 in xrange(_size38):
+ _elem43 = iprot.readString()
+ self.ipAddresses.append(_elem43)
+ 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 = []
+ (_etype47, _size44) = iprot.readListBegin()
+ for _i48 in xrange(_size44):
+ _elem49 = BatchQueue()
+ _elem49.read(iprot)
+ self.batchQueues.append(_elem49)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.MAP:
+ self.fileSystems = {}
+ (_ktype51, _vtype52, _size50 ) = iprot.readMapBegin()
+ for _i54 in xrange(_size50):
+ _key55 = iprot.readI32()
+ _val56 = iprot.readString()
+ self.fileSystems[_key55] = _val56
+ iprot.readMapEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.jobSubmissionInterfaces = []
+ (_etype60, _size57) = iprot.readListBegin()
+ for _i61 in xrange(_size57):
+ _elem62 = JobSubmissionInterface()
+ _elem62.read(iprot)
+ self.jobSubmissionInterfaces.append(_elem62)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.dataMovementInterfaces = []
+ (_etype66, _size63) = iprot.readListBegin()
+ for _i67 in xrange(_size63):
+ _elem68 = apache.airavata.model.data.movement.ttypes.DataMovementInterface()
+ _elem68.read(iprot)
+ self.dataMovementInterfaces.append(_elem68)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.I32:
+ self.maxMemoryPerNode = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.BOOL:
+ self.gatewayUsageReporting = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.STRING:
+ self.gatewayUsageModuleLoadCommand = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.STRING:
+ self.gatewayUsageExecutable = 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('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 iter69 in self.hostAliases:
+ oprot.writeString(iter69)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.ipAddresses is not None:
+ oprot.writeFieldBegin('ipAddresses', TType.LIST, 4)
+ oprot.writeListBegin(TType.STRING, len(self.ipAddresses))
+ for iter70 in self.ipAddresses:
+ oprot.writeString(iter70)
+ 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 iter71 in self.batchQueues:
+ iter71.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 kiter72,viter73 in self.fileSystems.items():
+ oprot.writeI32(kiter72)
+ oprot.writeString(viter73)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ if self.jobSubmissionInterfaces is not None:
+ oprot.writeFieldBegin('jobSubmissionInterfaces', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRUCT, len(self.jobSubmissionInterfaces))
+ for iter74 in self.jobSubmissionInterfaces:
+ iter74.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 iter75 in self.dataMovementInterfaces:
+ iter75.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.maxMemoryPerNode is not None:
+ oprot.writeFieldBegin('maxMemoryPerNode', TType.I32, 11)
+ oprot.writeI32(self.maxMemoryPerNode)
+ oprot.writeFieldEnd()
+ if self.gatewayUsageReporting is not None:
+ oprot.writeFieldBegin('gatewayUsageReporting', TType.BOOL, 12)
+ oprot.writeBool(self.gatewayUsageReporting)
+ oprot.writeFieldEnd()
+ if self.gatewayUsageModuleLoadCommand is not None:
+ oprot.writeFieldBegin('gatewayUsageModuleLoadCommand', TType.STRING, 13)
+ oprot.writeString(self.gatewayUsageModuleLoadCommand)
+ oprot.writeFieldEnd()
+ if self.gatewayUsageExecutable is not None:
+ oprot.writeFieldBegin('gatewayUsageExecutable', TType.STRING, 14)
+ oprot.writeString(self.gatewayUsageExecutable)
+ 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)
+ value = (value * 31) ^ hash(self.gatewayUsageReporting)
+ value = (value * 31) ^ hash(self.gatewayUsageModuleLoadCommand)
+ value = (value * 31) ^ hash(self.gatewayUsageExecutable)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc
new file mode 100644
index 0000000..9e3374c
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/computeresource/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc
new file mode 100644
index 0000000..c94e072
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
new file mode 100644
index 0000000..1f80cd8
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
@@ -0,0 +1,512 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.appcatalog.computeresource.ttypes
+import apache.airavata.model.data.movement.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class ComputeResourcePreference:
+ """
+ Gateway specific preferences for a Computer Resource
+
+ computeResourceId:
+ Corelate the preference to a compute resource.
+
+ overridebyAiravata:
+ If turned true, Airavata will override the preferences of better alternatives exist.
+
+ loginUserName:
+ If turned true, Airavata will override the preferences of better alternatives exist.
+
+ preferredJobSubmissionProtocol:
+ For resources with multiple job submission protocols, the gateway can pick a preferred option.
+
+ preferredDataMovementProtocol:
+ For resources with multiple data movement protocols, the gateway can pick a preferred option.
+
+ preferredBatchQueue:
+ Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
+
+ scratchLocation:
+ Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
+
+ allocationProjectNumber:
+ Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
+ allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
+ account to be used has to be added to the allocation.
+
+ resourceSpecificCredentialStoreToken:
+ Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
+ default credential store.
+
+
+ Attributes:
+ - computeResourceId
+ - overridebyAiravata
+ - loginUserName
+ - preferredJobSubmissionProtocol
+ - preferredDataMovementProtocol
+ - preferredBatchQueue
+ - scratchLocation
+ - allocationProjectNumber
+ - resourceSpecificCredentialStoreToken
+ - usageReportingGatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'computeResourceId', None, None, ), # 1
+ (2, TType.BOOL, 'overridebyAiravata', None, True, ), # 2
+ (3, TType.STRING, 'loginUserName', None, None, ), # 3
+ (4, TType.I32, 'preferredJobSubmissionProtocol', None, None, ), # 4
+ (5, TType.I32, 'preferredDataMovementProtocol', None, None, ), # 5
+ (6, TType.STRING, 'preferredBatchQueue', None, None, ), # 6
+ (7, TType.STRING, 'scratchLocation', None, None, ), # 7
+ (8, TType.STRING, 'allocationProjectNumber', None, None, ), # 8
+ (9, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 9
+ (10, TType.STRING, 'usageReportingGatewayId', None, None, ), # 10
+ )
+
+ def __init__(self, computeResourceId=None, overridebyAiravata=thrift_spec[2][4], loginUserName=None, preferredJobSubmissionProtocol=None, preferredDataMovementProtocol=None, preferredBatchQueue=None, scratchLocation=None, allocationProjectNumber=None, resourceSpecificCredentialStoreToken=None, usageReportingGatewayId=None,):
+ self.computeResourceId = computeResourceId
+ self.overridebyAiravata = overridebyAiravata
+ self.loginUserName = loginUserName
+ self.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol
+ self.preferredDataMovementProtocol = preferredDataMovementProtocol
+ self.preferredBatchQueue = preferredBatchQueue
+ self.scratchLocation = scratchLocation
+ self.allocationProjectNumber = allocationProjectNumber
+ self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
+ self.usageReportingGatewayId = usageReportingGatewayId
+
+ 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.BOOL:
+ self.overridebyAiravata = iprot.readBool()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.loginUserName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.preferredJobSubmissionProtocol = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.preferredDataMovementProtocol = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.preferredBatchQueue = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.scratchLocation = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.allocationProjectNumber = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.resourceSpecificCredentialStoreToken = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.usageReportingGatewayId = 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('ComputeResourcePreference')
+ if self.computeResourceId is not None:
+ oprot.writeFieldBegin('computeResourceId', TType.STRING, 1)
+ oprot.writeString(self.computeResourceId)
+ oprot.writeFieldEnd()
+ if self.overridebyAiravata is not None:
+ oprot.writeFieldBegin('overridebyAiravata', TType.BOOL, 2)
+ oprot.writeBool(self.overridebyAiravata)
+ oprot.writeFieldEnd()
+ if self.loginUserName is not None:
+ oprot.writeFieldBegin('loginUserName', TType.STRING, 3)
+ oprot.writeString(self.loginUserName)
+ oprot.writeFieldEnd()
+ if self.preferredJobSubmissionProtocol is not None:
+ oprot.writeFieldBegin('preferredJobSubmissionProtocol', TType.I32, 4)
+ oprot.writeI32(self.preferredJobSubmissionProtocol)
+ oprot.writeFieldEnd()
+ if self.preferredDataMovementProtocol is not None:
+ oprot.writeFieldBegin('preferredDataMovementProtocol', TType.I32, 5)
+ oprot.writeI32(self.preferredDataMovementProtocol)
+ oprot.writeFieldEnd()
+ if self.preferredBatchQueue is not None:
+ oprot.writeFieldBegin('preferredBatchQueue', TType.STRING, 6)
+ oprot.writeString(self.preferredBatchQueue)
+ oprot.writeFieldEnd()
+ if self.scratchLocation is not None:
+ oprot.writeFieldBegin('scratchLocation', TType.STRING, 7)
+ oprot.writeString(self.scratchLocation)
+ oprot.writeFieldEnd()
+ if self.allocationProjectNumber is not None:
+ oprot.writeFieldBegin('allocationProjectNumber', TType.STRING, 8)
+ oprot.writeString(self.allocationProjectNumber)
+ oprot.writeFieldEnd()
+ if self.resourceSpecificCredentialStoreToken is not None:
+ oprot.writeFieldBegin('resourceSpecificCredentialStoreToken', TType.STRING, 9)
+ oprot.writeString(self.resourceSpecificCredentialStoreToken)
+ oprot.writeFieldEnd()
+ if self.usageReportingGatewayId is not None:
+ oprot.writeFieldBegin('usageReportingGatewayId', TType.STRING, 10)
+ oprot.writeString(self.usageReportingGatewayId)
+ 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.overridebyAiravata is None:
+ raise TProtocol.TProtocolException(message='Required field overridebyAiravata is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.computeResourceId)
+ value = (value * 31) ^ hash(self.overridebyAiravata)
+ value = (value * 31) ^ hash(self.loginUserName)
+ value = (value * 31) ^ hash(self.preferredJobSubmissionProtocol)
+ value = (value * 31) ^ hash(self.preferredDataMovementProtocol)
+ value = (value * 31) ^ hash(self.preferredBatchQueue)
+ value = (value * 31) ^ hash(self.scratchLocation)
+ value = (value * 31) ^ hash(self.allocationProjectNumber)
+ value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
+ value = (value * 31) ^ hash(self.usageReportingGatewayId)
+ 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 StoragePreference:
+ """
+ Attributes:
+ - storageResourceId
+ - loginUserName
+ - fileSystemRootLocation
+ - resourceSpecificCredentialStoreToken
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'storageResourceId', None, None, ), # 1
+ (2, TType.STRING, 'loginUserName', None, None, ), # 2
+ (3, TType.STRING, 'fileSystemRootLocation', None, None, ), # 3
+ (4, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 4
+ )
+
+ def __init__(self, storageResourceId=None, loginUserName=None, fileSystemRootLocation=None, resourceSpecificCredentialStoreToken=None,):
+ self.storageResourceId = storageResourceId
+ self.loginUserName = loginUserName
+ self.fileSystemRootLocation = fileSystemRootLocation
+ self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
+
+ 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.storageResourceId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.loginUserName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.fileSystemRootLocation = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.resourceSpecificCredentialStoreToken = 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('StoragePreference')
+ if self.storageResourceId is not None:
+ oprot.writeFieldBegin('storageResourceId', TType.STRING, 1)
+ oprot.writeString(self.storageResourceId)
+ oprot.writeFieldEnd()
+ if self.loginUserName is not None:
+ oprot.writeFieldBegin('loginUserName', TType.STRING, 2)
+ oprot.writeString(self.loginUserName)
+ oprot.writeFieldEnd()
+ if self.fileSystemRootLocation is not None:
+ oprot.writeFieldBegin('fileSystemRootLocation', TType.STRING, 3)
+ oprot.writeString(self.fileSystemRootLocation)
+ oprot.writeFieldEnd()
+ if self.resourceSpecificCredentialStoreToken is not None:
+ oprot.writeFieldBegin('resourceSpecificCredentialStoreToken', TType.STRING, 4)
+ oprot.writeString(self.resourceSpecificCredentialStoreToken)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.storageResourceId is None:
+ raise TProtocol.TProtocolException(message='Required field storageResourceId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.storageResourceId)
+ value = (value * 31) ^ hash(self.loginUserName)
+ value = (value * 31) ^ hash(self.fileSystemRootLocation)
+ value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
+ 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 GatewayResourceProfile:
+ """
+ Gateway Resource Profile
+
+ gatewayID:
+ Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+
+ credentialStoreToken:
+ Gateway's defualt credential store token.
+
+ computeResourcePreferences:
+ List of resource preferences for each of the registered compute resources.
+
+ identityServerTenant:
+
+ identityServerPwdCredToken:
+
+
+ Attributes:
+ - gatewayID
+ - credentialStoreToken
+ - computeResourcePreferences
+ - storagePreferences
+ - identityServerTenant
+ - identityServerPwdCredToken
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'gatewayID', None, None, ), # 1
+ (2, TType.STRING, 'credentialStoreToken', None, None, ), # 2
+ (3, TType.LIST, 'computeResourcePreferences', (TType.STRUCT,(ComputeResourcePreference, ComputeResourcePreference.thrift_spec)), None, ), # 3
+ (4, TType.LIST, 'storagePreferences', (TType.STRUCT,(StoragePreference, StoragePreference.thrift_spec)), None, ), # 4
+ (5, TType.STRING, 'identityServerTenant', None, None, ), # 5
+ (6, TType.STRING, 'identityServerPwdCredToken', None, None, ), # 6
+ )
+
+ def __init__(self, gatewayID=None, credentialStoreToken=None, computeResourcePreferences=None, storagePreferences=None, identityServerTenant=None, identityServerPwdCredToken=None,):
+ self.gatewayID = gatewayID
+ self.credentialStoreToken = credentialStoreToken
+ self.computeResourcePreferences = computeResourcePreferences
+ self.storagePreferences = storagePreferences
+ self.identityServerTenant = identityServerTenant
+ self.identityServerPwdCredToken = identityServerPwdCredToken
+
+ 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.gatewayID = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.credentialStoreToken = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.LIST:
+ self.computeResourcePreferences = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = ComputeResourcePreference()
+ _elem5.read(iprot)
+ self.computeResourcePreferences.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.LIST:
+ self.storagePreferences = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = StoragePreference()
+ _elem11.read(iprot)
+ self.storagePreferences.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.identityServerTenant = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.identityServerPwdCredToken = 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('GatewayResourceProfile')
+ if self.gatewayID is not None:
+ oprot.writeFieldBegin('gatewayID', TType.STRING, 1)
+ oprot.writeString(self.gatewayID)
+ oprot.writeFieldEnd()
+ if self.credentialStoreToken is not None:
+ oprot.writeFieldBegin('credentialStoreToken', TType.STRING, 2)
+ oprot.writeString(self.credentialStoreToken)
+ oprot.writeFieldEnd()
+ if self.computeResourcePreferences is not None:
+ oprot.writeFieldBegin('computeResourcePreferences', TType.LIST, 3)
+ oprot.writeListBegin(TType.STRUCT, len(self.computeResourcePreferences))
+ for iter12 in self.computeResourcePreferences:
+ iter12.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.storagePreferences is not None:
+ oprot.writeFieldBegin('storagePreferences', TType.LIST, 4)
+ oprot.writeListBegin(TType.STRUCT, len(self.storagePreferences))
+ for iter13 in self.storagePreferences:
+ iter13.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.identityServerTenant is not None:
+ oprot.writeFieldBegin('identityServerTenant', TType.STRING, 5)
+ oprot.writeString(self.identityServerTenant)
+ oprot.writeFieldEnd()
+ if self.identityServerPwdCredToken is not None:
+ oprot.writeFieldBegin('identityServerPwdCredToken', TType.STRING, 6)
+ oprot.writeString(self.identityServerPwdCredToken)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.gatewayID is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayID is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.gatewayID)
+ value = (value * 31) ^ hash(self.credentialStoreToken)
+ value = (value * 31) ^ hash(self.computeResourcePreferences)
+ value = (value * 31) ^ hash(self.storagePreferences)
+ value = (value * 31) ^ hash(self.identityServerTenant)
+ value = (value * 31) ^ hash(self.identityServerPwdCredToken)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc
new file mode 100644
index 0000000..a6a29df
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/gatewayprofile/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc
new file mode 100644
index 0000000..2577f2b
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.py
new file mode 100644
index 0000000..485d97e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.py
@@ -0,0 +1,60 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ApplicationParallelismType:
+ """
+ Enumeration of application parallelism supported by Airavata
+
+ SERIAL:
+ Single processor applications without any parallelization.
+
+ MPI:
+ Messaging Passing Interface.
+
+ OPENMP:
+ Shared Memory Implementtaion.
+
+ OPENMP_MPI:
+ Hybrid Applications.
+
+ """
+ SERIAL = 0
+ MPI = 1
+ OPENMP = 2
+ OPENMP_MPI = 3
+ CCM = 4
+ CRAY_MPI = 5
+
+ _VALUES_TO_NAMES = {
+ 0: "SERIAL",
+ 1: "MPI",
+ 2: "OPENMP",
+ 3: "OPENMP_MPI",
+ 4: "CCM",
+ 5: "CRAY_MPI",
+ }
+
+ _NAMES_TO_VALUES = {
+ "SERIAL": 0,
+ "MPI": 1,
+ "OPENMP": 2,
+ "OPENMP_MPI": 3,
+ "CCM": 4,
+ "CRAY_MPI": 5,
+ }
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc
new file mode 100644
index 0000000..3485168
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/parallelism/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/appcatalog/storageresource/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
[27/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.pyc
new file mode 100644
index 0000000..97d11ce
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/__init__.py
new file mode 100644
index 0000000..e85fb34
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants', 'Airavata']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/__init__.pyc
new file mode 100644
index 0000000..6f64d55
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/constants.py
new file mode 100644
index 0000000..ae922f1
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/constants.py
@@ -0,0 +1,12 @@
+#
+# 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
+from ttypes import *
+
+AIRAVATA_API_VERSION = "0.16.0"
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/__init__.pyc
new file mode 100644
index 0000000..4da794d
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/ttypes.py
new file mode 100644
index 0000000..0c33acf
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/ttypes.py
@@ -0,0 +1,940 @@
+#
+# 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.experiment.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class AiravataErrorType:
+ """
+ A list of Airavata API Error Message Types
+
+ UNKNOWN: No information available about the error
+
+ PERMISSION_DENIED: Not permitted to perform action
+
+ INTERNAL_ERROR: Unexpected problem with the service
+
+ AUTHENTICATION_FAILURE: The client failed to authenticate.
+
+ INVALID_AUTHORIZATION: Security Token and/or Username and/or password is incorrect
+
+ AUTHORIZATION_EXPIRED: Authentication token expired
+
+ UNKNOWN_GATEWAY_ID: The gateway is not registered with Airavata.
+
+ UNSUPPORTED_OPERATION: Operation denied because it is currently unsupported.
+ """
+ UNKNOWN = 0
+ PERMISSION_DENIED = 1
+ INTERNAL_ERROR = 2
+ AUTHENTICATION_FAILURE = 3
+ INVALID_AUTHORIZATION = 4
+ AUTHORIZATION_EXPIRED = 5
+ UNKNOWN_GATEWAY_ID = 6
+ UNSUPPORTED_OPERATION = 7
+
+ _VALUES_TO_NAMES = {
+ 0: "UNKNOWN",
+ 1: "PERMISSION_DENIED",
+ 2: "INTERNAL_ERROR",
+ 3: "AUTHENTICATION_FAILURE",
+ 4: "INVALID_AUTHORIZATION",
+ 5: "AUTHORIZATION_EXPIRED",
+ 6: "UNKNOWN_GATEWAY_ID",
+ 7: "UNSUPPORTED_OPERATION",
+ }
+
+ _NAMES_TO_VALUES = {
+ "UNKNOWN": 0,
+ "PERMISSION_DENIED": 1,
+ "INTERNAL_ERROR": 2,
+ "AUTHENTICATION_FAILURE": 3,
+ "INVALID_AUTHORIZATION": 4,
+ "AUTHORIZATION_EXPIRED": 5,
+ "UNKNOWN_GATEWAY_ID": 6,
+ "UNSUPPORTED_OPERATION": 7,
+ }
+
+
+class ExperimentNotFoundException(TException):
+ """
+ This exception is thrown when a client asks to perform an operation on an experiment that does not exist.
+
+ identifier: A description of the experiment that was not found on the server.
+
+ key: The value passed from the client in the identifier, which was not found.
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('ExperimentNotFoundException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 ProjectNotFoundException(TException):
+ """
+ 1: optional string identifier,
+ 2: optional string key
+
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('ProjectNotFoundException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 InvalidRequestException(TException):
+ """
+ This exception is thrown for invalid requests that occur from any reasons like required input parameters are missing,
+ or a parameter is malformed.
+
+ message: contains the associated error message.
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('InvalidRequestException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 TimedOutException(TException):
+ """
+ This exception is thrown when RPC timeout gets exceeded.
+ """
+
+ thrift_spec = (
+ )
+
+ 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
+ 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('TimedOutException')
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ 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 AuthenticationException(TException):
+ """
+ This exception is thrown for invalid authentication requests.
+
+ message: contains the cause of the authorization failure.
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('AuthenticationException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 AuthorizationException(TException):
+ """
+ This exception is thrown for invalid authorization requests such user does not have acces to an aplication or resource.
+
+ message: contains the authorization failure message
+
+ Attributes:
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'message', None, None, ), # 1
+ )
+
+ def __init__(self, message=None,):
+ self.message = message
+
+ 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.message = 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('AuthorizationException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.message is None:
+ raise TProtocol.TProtocolException(message='Required field message is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.message)
+ 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 AiravataClientException(TException):
+ """
+ This exception is thrown by Airavata Services when a call fails as a result of
+ a problem that a client may be able to resolve. For example, if the user
+ attempts to execute an application on a resource gateway does not have access to.
+
+ This exception would not be used for internal system errors that do not
+ reflect user actions, but rather reflect a problem within the service that
+ the client cannot resolve.
+
+ airavataErrorType: The message type indicating the error that occurred.
+ must be one of the values of AiravataErrorType.
+
+ parameter: If the error applied to a particular input parameter, this will
+ indicate which parameter.
+
+ Attributes:
+ - airavataErrorType
+ - parameter
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'airavataErrorType', None, None, ), # 1
+ (2, TType.STRING, 'parameter', None, None, ), # 2
+ )
+
+ def __init__(self, airavataErrorType=None, parameter=None,):
+ self.airavataErrorType = airavataErrorType
+ self.parameter = parameter
+
+ 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.I32:
+ self.airavataErrorType = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.parameter = 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('AiravataClientException')
+ if self.airavataErrorType is not None:
+ oprot.writeFieldBegin('airavataErrorType', TType.I32, 1)
+ oprot.writeI32(self.airavataErrorType)
+ oprot.writeFieldEnd()
+ if self.parameter is not None:
+ oprot.writeFieldBegin('parameter', TType.STRING, 2)
+ oprot.writeString(self.parameter)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataErrorType is None:
+ raise TProtocol.TProtocolException(message='Required field airavataErrorType is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataErrorType)
+ value = (value * 31) ^ hash(self.parameter)
+ 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 ValidatorResult:
+ """
+ Attributes:
+ - result
+ - errorDetails
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'result', None, None, ), # 1
+ (2, TType.STRING, 'errorDetails', None, None, ), # 2
+ )
+
+ def __init__(self, result=None, errorDetails=None,):
+ self.result = result
+ self.errorDetails = errorDetails
+
+ 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.BOOL:
+ self.result = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.errorDetails = 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('ValidatorResult')
+ if self.result is not None:
+ oprot.writeFieldBegin('result', TType.BOOL, 1)
+ oprot.writeBool(self.result)
+ oprot.writeFieldEnd()
+ if self.errorDetails is not None:
+ oprot.writeFieldBegin('errorDetails', TType.STRING, 2)
+ oprot.writeString(self.errorDetails)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.result is None:
+ raise TProtocol.TProtocolException(message='Required field result is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.result)
+ value = (value * 31) ^ hash(self.errorDetails)
+ 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 ValidationResults:
+ """
+ Attributes:
+ - validationState
+ - validationResultList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'validationState', None, None, ), # 1
+ (2, TType.LIST, 'validationResultList', (TType.STRUCT,(ValidatorResult, ValidatorResult.thrift_spec)), None, ), # 2
+ )
+
+ def __init__(self, validationState=None, validationResultList=None,):
+ self.validationState = validationState
+ self.validationResultList = validationResultList
+
+ 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.BOOL:
+ self.validationState = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.LIST:
+ self.validationResultList = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = ValidatorResult()
+ _elem5.read(iprot)
+ self.validationResultList.append(_elem5)
+ 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('ValidationResults')
+ if self.validationState is not None:
+ oprot.writeFieldBegin('validationState', TType.BOOL, 1)
+ oprot.writeBool(self.validationState)
+ oprot.writeFieldEnd()
+ if self.validationResultList is not None:
+ oprot.writeFieldBegin('validationResultList', TType.LIST, 2)
+ oprot.writeListBegin(TType.STRUCT, len(self.validationResultList))
+ for iter6 in self.validationResultList:
+ iter6.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.validationState is None:
+ raise TProtocol.TProtocolException(message='Required field validationState is unset!')
+ if self.validationResultList is None:
+ raise TProtocol.TProtocolException(message='Required field validationResultList is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.validationState)
+ value = (value * 31) ^ hash(self.validationResultList)
+ 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 LaunchValidationException(TException):
+ """
+ Attributes:
+ - validationResult
+ - errorMessage
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRUCT, 'validationResult', (ValidationResults, ValidationResults.thrift_spec), None, ), # 1
+ (2, TType.STRING, 'errorMessage', None, None, ), # 2
+ )
+
+ def __init__(self, validationResult=None, errorMessage=None,):
+ self.validationResult = validationResult
+ self.errorMessage = errorMessage
+
+ 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.STRUCT:
+ self.validationResult = ValidationResults()
+ self.validationResult.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.errorMessage = 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('LaunchValidationException')
+ if self.validationResult is not None:
+ oprot.writeFieldBegin('validationResult', TType.STRUCT, 1)
+ self.validationResult.write(oprot)
+ oprot.writeFieldEnd()
+ if self.errorMessage is not None:
+ oprot.writeFieldBegin('errorMessage', TType.STRING, 2)
+ oprot.writeString(self.errorMessage)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.validationResult is None:
+ raise TProtocol.TProtocolException(message='Required field validationResult is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.validationResult)
+ value = (value * 31) ^ hash(self.errorMessage)
+ 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 AiravataSystemException(TException):
+ """
+ This exception is thrown by Airavata Services when a call fails as a result of
+ a problem in the service that could not be changed through client's action.
+
+ airavataErrorType: The message type indicating the error that occurred.
+ must be one of the values of AiravataErrorType.
+
+ message: This may contain additional information about the error
+
+
+ Attributes:
+ - airavataErrorType
+ - message
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'airavataErrorType', None, None, ), # 1
+ (2, TType.STRING, 'message', None, None, ), # 2
+ )
+
+ def __init__(self, airavataErrorType=None, message=None,):
+ self.airavataErrorType = airavataErrorType
+ self.message = message
+
+ 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.I32:
+ self.airavataErrorType = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.message = 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('AiravataSystemException')
+ if self.airavataErrorType is not None:
+ oprot.writeFieldBegin('airavataErrorType', TType.I32, 1)
+ oprot.writeI32(self.airavataErrorType)
+ oprot.writeFieldEnd()
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 2)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataErrorType is None:
+ raise TProtocol.TProtocolException(message='Required field airavataErrorType is unset!')
+ return
+
+
+ def __str__(self):
+ return repr(self)
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataErrorType)
+ value = (value * 31) ^ hash(self.message)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/ttypes.pyc
new file mode 100644
index 0000000..936f5a0
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/error/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/ttypes.py
new file mode 100644
index 0000000..ac1c6ab
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/ttypes.py
@@ -0,0 +1,33 @@
+#
+# 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.api.error.ttypes
+import apache.airavata.model.ttypes
+import apache.airavata.model.status.ttypes
+import apache.airavata.model.job.ttypes
+import apache.airavata.model.experiment.ttypes
+import apache.airavata.model.workspace.ttypes
+import apache.airavata.model.appcatalog.computeresource.ttypes
+import apache.airavata.model.scheduling.ttypes
+import apache.airavata.model.application.io.ttypes
+import apache.airavata.model.appcatalog.appdeployment.ttypes
+import apache.airavata.model.appcatalog.appinterface.ttypes
+import apache.airavata.model.appcatalog.gatewayprofile.ttypes
+import apache.airavata.model.workflow.ttypes
+import apache.airavata.model.security.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/ttypes.pyc
new file mode 100644
index 0000000..421f49e
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__init__.pyc
new file mode 100644
index 0000000..1f8edd0
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..279bad0
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__init__.pyc
new file mode 100644
index 0000000..a69798a
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..7399ac2
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/__init__.pyc
new file mode 100644
index 0000000..25ec6ee
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/ttypes.py
new file mode 100644
index 0000000..6f86b6d
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/ttypes.py
@@ -0,0 +1,675 @@
+#
+# 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 ApplicationParallelismType:
+ """
+ Enumeration of application parallelism supported by Airavata
+
+ SERIAL:
+ Single processor applications without any parallelization.
+
+ MPI:
+ Messaging Passing Interface.
+
+ OPENMP:
+ Shared Memory Implementtaion.
+
+ OPENMP_MPI:
+ Hybrid Applications.
+
+ """
+ SERIAL = 0
+ MPI = 1
+ OPENMP = 2
+ OPENMP_MPI = 3
+ CCM = 4
+ CRAY_MPI = 5
+
+ _VALUES_TO_NAMES = {
+ 0: "SERIAL",
+ 1: "MPI",
+ 2: "OPENMP",
+ 3: "OPENMP_MPI",
+ 4: "CCM",
+ 5: "CRAY_MPI",
+ }
+
+ _NAMES_TO_VALUES = {
+ "SERIAL": 0,
+ "MPI": 1,
+ "OPENMP": 2,
+ "OPENMP_MPI": 3,
+ "CCM": 4,
+ "CRAY_MPI": 5,
+ }
+
+
+class SetEnvPaths:
+ """
+ Key Value pairs to be used to set environments
+
+ name:
+ Name of the environment variable such as PATH, LD_LIBRARY_PATH, NETCDF_HOME.
+
+ value:
+ Value of the environment variable to set
+
+ envPathOrder:
+ The order of the setting of the env variables when there are multiple env variables
+
+ Attributes:
+ - name
+ - value
+ - envPathOrder
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'name', None, None, ), # 1
+ (2, TType.STRING, 'value', None, None, ), # 2
+ (3, TType.I32, 'envPathOrder', None, None, ), # 3
+ )
+
+ def __init__(self, name=None, value=None, envPathOrder=None,):
+ self.name = name
+ self.value = value
+ self.envPathOrder = envPathOrder
+
+ 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.name = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.value = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.envPathOrder = 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('SetEnvPaths')
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 1)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.value is not None:
+ oprot.writeFieldBegin('value', TType.STRING, 2)
+ oprot.writeString(self.value)
+ oprot.writeFieldEnd()
+ if self.envPathOrder is not None:
+ oprot.writeFieldBegin('envPathOrder', TType.I32, 3)
+ oprot.writeI32(self.envPathOrder)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ if self.value is None:
+ raise TProtocol.TProtocolException(message='Required field value is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.value)
+ value = (value * 31) ^ hash(self.envPathOrder)
+ 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 CommandObject:
+ """
+ Job commands to be used in Pre Job, Post Job and Module Load Commands
+
+ command:
+ The actual command in string format
+
+ commandOrder:
+ Order of the command in the multiple command situation
+
+ Attributes:
+ - command
+ - commandOrder
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'command', None, None, ), # 1
+ (2, TType.I32, 'commandOrder', None, None, ), # 2
+ )
+
+ def __init__(self, command=None, commandOrder=None,):
+ self.command = command
+ self.commandOrder = commandOrder
+
+ 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.command = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.commandOrder = 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('CommandObject')
+ if self.command is not None:
+ oprot.writeFieldBegin('command', TType.STRING, 1)
+ oprot.writeString(self.command)
+ oprot.writeFieldEnd()
+ if self.commandOrder is not None:
+ oprot.writeFieldBegin('commandOrder', TType.I32, 2)
+ oprot.writeI32(self.commandOrder)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.command is None:
+ raise TProtocol.TProtocolException(message='Required field command is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.command)
+ value = (value * 31) ^ hash(self.commandOrder)
+ 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 ApplicationModule:
+ """
+ Application Module Information. A module has to be registered before registering a deployment.
+
+ appModuleId: Airavata Internal Unique Job ID. This is set by the registry.
+
+ appModuleName:
+ Name of the application module.
+
+ appModuleVersion:
+ Version of the application.
+
+ appModuleDescription:
+ Descriprion of the Module
+
+
+ Attributes:
+ - appModuleId
+ - appModuleName
+ - appModuleVersion
+ - appModuleDescription
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'appModuleId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'appModuleName', None, None, ), # 2
+ (3, TType.STRING, 'appModuleVersion', None, None, ), # 3
+ (4, TType.STRING, 'appModuleDescription', None, None, ), # 4
+ )
+
+ def __init__(self, appModuleId=thrift_spec[1][4], appModuleName=None, appModuleVersion=None, appModuleDescription=None,):
+ self.appModuleId = appModuleId
+ self.appModuleName = appModuleName
+ self.appModuleVersion = appModuleVersion
+ self.appModuleDescription = appModuleDescription
+
+ 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.appModuleId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.appModuleName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.appModuleVersion = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.appModuleDescription = 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('ApplicationModule')
+ if self.appModuleId is not None:
+ oprot.writeFieldBegin('appModuleId', TType.STRING, 1)
+ oprot.writeString(self.appModuleId)
+ oprot.writeFieldEnd()
+ if self.appModuleName is not None:
+ oprot.writeFieldBegin('appModuleName', TType.STRING, 2)
+ oprot.writeString(self.appModuleName)
+ oprot.writeFieldEnd()
+ if self.appModuleVersion is not None:
+ oprot.writeFieldBegin('appModuleVersion', TType.STRING, 3)
+ oprot.writeString(self.appModuleVersion)
+ oprot.writeFieldEnd()
+ if self.appModuleDescription is not None:
+ oprot.writeFieldBegin('appModuleDescription', TType.STRING, 4)
+ oprot.writeString(self.appModuleDescription)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.appModuleId is None:
+ raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
+ if self.appModuleName is None:
+ raise TProtocol.TProtocolException(message='Required field appModuleName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.appModuleId)
+ value = (value * 31) ^ hash(self.appModuleName)
+ value = (value * 31) ^ hash(self.appModuleVersion)
+ value = (value * 31) ^ hash(self.appModuleDescription)
+ 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 ApplicationDeploymentDescription:
+ """
+ Application Deployment Description
+
+ appDeploymentId: Airavata Internal Unique Job ID. This is set by the registry.
+
+ appModuleName:
+ Application Module Name. This has to be precise describing the binary.
+
+ computeHostId:
+ This ID maps application deployment to a particular resource previously described within Airavata.
+ Example: Stampede is first registered and refered when registering WRF.
+
+ moduleLoadCmd:
+ Command string to load modules. This will be placed in the job submisison
+ Ex: module load amber
+
+ libPrependPaths:
+ prepend to a path variable the value
+
+ libAppendPaths:
+ append to a path variable the value
+
+ setEnvironment:
+ assigns to the environment variable "NAME" the value
+
+
+ Attributes:
+ - appDeploymentId
+ - appModuleId
+ - computeHostId
+ - executablePath
+ - parallelism
+ - appDeploymentDescription
+ - moduleLoadCmds
+ - libPrependPaths
+ - libAppendPaths
+ - setEnvironment
+ - preJobCommands
+ - postJobCommands
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'appDeploymentId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'appModuleId', None, None, ), # 2
+ (3, TType.STRING, 'computeHostId', None, None, ), # 3
+ (4, TType.STRING, 'executablePath', None, None, ), # 4
+ (5, TType.I32, 'parallelism', None, 0, ), # 5
+ (6, TType.STRING, 'appDeploymentDescription', None, None, ), # 6
+ (7, TType.LIST, 'moduleLoadCmds', (TType.STRUCT,(CommandObject, CommandObject.thrift_spec)), None, ), # 7
+ (8, TType.LIST, 'libPrependPaths', (TType.STRUCT,(SetEnvPaths, SetEnvPaths.thrift_spec)), None, ), # 8
+ (9, TType.LIST, 'libAppendPaths', (TType.STRUCT,(SetEnvPaths, SetEnvPaths.thrift_spec)), None, ), # 9
+ (10, TType.LIST, 'setEnvironment', (TType.STRUCT,(SetEnvPaths, SetEnvPaths.thrift_spec)), None, ), # 10
+ (11, TType.LIST, 'preJobCommands', (TType.STRUCT,(CommandObject, CommandObject.thrift_spec)), None, ), # 11
+ (12, TType.LIST, 'postJobCommands', (TType.STRUCT,(CommandObject, CommandObject.thrift_spec)), None, ), # 12
+ )
+
+ def __init__(self, appDeploymentId=thrift_spec[1][4], appModuleId=None, computeHostId=None, executablePath=None, parallelism=thrift_spec[5][4], appDeploymentDescription=None, moduleLoadCmds=None, libPrependPaths=None, libAppendPaths=None, setEnvironment=None, preJobCommands=None, postJobCommands=None,):
+ self.appDeploymentId = appDeploymentId
+ self.appModuleId = appModuleId
+ self.computeHostId = computeHostId
+ self.executablePath = executablePath
+ self.parallelism = parallelism
+ self.appDeploymentDescription = appDeploymentDescription
+ self.moduleLoadCmds = moduleLoadCmds
+ self.libPrependPaths = libPrependPaths
+ self.libAppendPaths = libAppendPaths
+ self.setEnvironment = setEnvironment
+ self.preJobCommands = preJobCommands
+ self.postJobCommands = postJobCommands
+
+ 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.appDeploymentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.appModuleId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.computeHostId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.executablePath = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.parallelism = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.appDeploymentDescription = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.moduleLoadCmds = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = CommandObject()
+ _elem5.read(iprot)
+ self.moduleLoadCmds.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.LIST:
+ self.libPrependPaths = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = SetEnvPaths()
+ _elem11.read(iprot)
+ self.libPrependPaths.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.libAppendPaths = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = SetEnvPaths()
+ _elem17.read(iprot)
+ self.libAppendPaths.append(_elem17)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.setEnvironment = []
+ (_etype21, _size18) = iprot.readListBegin()
+ for _i22 in xrange(_size18):
+ _elem23 = SetEnvPaths()
+ _elem23.read(iprot)
+ self.setEnvironment.append(_elem23)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.LIST:
+ self.preJobCommands = []
+ (_etype27, _size24) = iprot.readListBegin()
+ for _i28 in xrange(_size24):
+ _elem29 = CommandObject()
+ _elem29.read(iprot)
+ self.preJobCommands.append(_elem29)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.postJobCommands = []
+ (_etype33, _size30) = iprot.readListBegin()
+ for _i34 in xrange(_size30):
+ _elem35 = CommandObject()
+ _elem35.read(iprot)
+ self.postJobCommands.append(_elem35)
+ 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('ApplicationDeploymentDescription')
+ if self.appDeploymentId is not None:
+ oprot.writeFieldBegin('appDeploymentId', TType.STRING, 1)
+ oprot.writeString(self.appDeploymentId)
+ oprot.writeFieldEnd()
+ if self.appModuleId is not None:
+ oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+ oprot.writeString(self.appModuleId)
+ oprot.writeFieldEnd()
+ if self.computeHostId is not None:
+ oprot.writeFieldBegin('computeHostId', TType.STRING, 3)
+ oprot.writeString(self.computeHostId)
+ oprot.writeFieldEnd()
+ if self.executablePath is not None:
+ oprot.writeFieldBegin('executablePath', TType.STRING, 4)
+ oprot.writeString(self.executablePath)
+ oprot.writeFieldEnd()
+ if self.parallelism is not None:
+ oprot.writeFieldBegin('parallelism', TType.I32, 5)
+ oprot.writeI32(self.parallelism)
+ oprot.writeFieldEnd()
+ if self.appDeploymentDescription is not None:
+ oprot.writeFieldBegin('appDeploymentDescription', TType.STRING, 6)
+ oprot.writeString(self.appDeploymentDescription)
+ oprot.writeFieldEnd()
+ if self.moduleLoadCmds is not None:
+ oprot.writeFieldBegin('moduleLoadCmds', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.moduleLoadCmds))
+ for iter36 in self.moduleLoadCmds:
+ iter36.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.libPrependPaths is not None:
+ oprot.writeFieldBegin('libPrependPaths', TType.LIST, 8)
+ oprot.writeListBegin(TType.STRUCT, len(self.libPrependPaths))
+ for iter37 in self.libPrependPaths:
+ iter37.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.libAppendPaths is not None:
+ oprot.writeFieldBegin('libAppendPaths', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRUCT, len(self.libAppendPaths))
+ for iter38 in self.libAppendPaths:
+ iter38.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.setEnvironment is not None:
+ oprot.writeFieldBegin('setEnvironment', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.setEnvironment))
+ for iter39 in self.setEnvironment:
+ iter39.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.preJobCommands is not None:
+ oprot.writeFieldBegin('preJobCommands', TType.LIST, 11)
+ oprot.writeListBegin(TType.STRUCT, len(self.preJobCommands))
+ for iter40 in self.preJobCommands:
+ iter40.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.postJobCommands is not None:
+ oprot.writeFieldBegin('postJobCommands', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRUCT, len(self.postJobCommands))
+ for iter41 in self.postJobCommands:
+ iter41.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.appDeploymentId is None:
+ raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
+ if self.appModuleId is None:
+ raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
+ if self.computeHostId is None:
+ raise TProtocol.TProtocolException(message='Required field computeHostId is unset!')
+ if self.executablePath is None:
+ raise TProtocol.TProtocolException(message='Required field executablePath is unset!')
+ if self.parallelism is None:
+ raise TProtocol.TProtocolException(message='Required field parallelism is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.appDeploymentId)
+ value = (value * 31) ^ hash(self.appModuleId)
+ value = (value * 31) ^ hash(self.computeHostId)
+ value = (value * 31) ^ hash(self.executablePath)
+ value = (value * 31) ^ hash(self.parallelism)
+ value = (value * 31) ^ hash(self.appDeploymentDescription)
+ value = (value * 31) ^ hash(self.moduleLoadCmds)
+ value = (value * 31) ^ hash(self.libPrependPaths)
+ value = (value * 31) ^ hash(self.libAppendPaths)
+ value = (value * 31) ^ hash(self.setEnvironment)
+ value = (value * 31) ^ hash(self.preJobCommands)
+ value = (value * 31) ^ hash(self.postJobCommands)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc
new file mode 100644
index 0000000..cea8413
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appdeployment/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/__init__.pyc
new file mode 100644
index 0000000..06fb7cd
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/ttypes.py
new file mode 100644
index 0000000..57fe99b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/ttypes.py
@@ -0,0 +1,193 @@
+#
+# 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.application.io.ttypes
+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 ApplicationInterfaceDescription:
+ """
+ Application Interface Description
+
+ applicationModules:
+ Associate all application modules with versions which interface is applicable to.
+
+ applicationInputs:
+ Inputs to be passed to the application
+
+ applicationOutputs:
+ Outputs generated from the application
+
+
+ Attributes:
+ - applicationInterfaceId
+ - applicationName
+ - applicationDescription
+ - applicationModules
+ - applicationInputs
+ - applicationOutputs
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'applicationInterfaceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'applicationName', None, None, ), # 2
+ (3, TType.STRING, 'applicationDescription', None, None, ), # 3
+ (4, TType.LIST, 'applicationModules', (TType.STRING,None), None, ), # 4
+ (5, TType.LIST, 'applicationInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 5
+ (6, TType.LIST, 'applicationOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 6
+ )
+
+ def __init__(self, applicationInterfaceId=thrift_spec[1][4], applicationName=None, applicationDescription=None, applicationModules=None, applicationInputs=None, applicationOutputs=None,):
+ self.applicationInterfaceId = applicationInterfaceId
+ self.applicationName = applicationName
+ self.applicationDescription = applicationDescription
+ self.applicationModules = applicationModules
+ self.applicationInputs = applicationInputs
+ self.applicationOutputs = applicationOutputs
+
+ 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.applicationInterfaceId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.applicationName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.applicationDescription = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.LIST:
+ self.applicationModules = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString();
+ self.applicationModules.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.LIST:
+ self.applicationInputs = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ _elem11.read(iprot)
+ self.applicationInputs.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.applicationOutputs = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem17.read(iprot)
+ self.applicationOutputs.append(_elem17)
+ 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('ApplicationInterfaceDescription')
+ if self.applicationInterfaceId is not None:
+ oprot.writeFieldBegin('applicationInterfaceId', TType.STRING, 1)
+ oprot.writeString(self.applicationInterfaceId)
+ oprot.writeFieldEnd()
+ if self.applicationName is not None:
+ oprot.writeFieldBegin('applicationName', TType.STRING, 2)
+ oprot.writeString(self.applicationName)
+ oprot.writeFieldEnd()
+ if self.applicationDescription is not None:
+ oprot.writeFieldBegin('applicationDescription', TType.STRING, 3)
+ oprot.writeString(self.applicationDescription)
+ oprot.writeFieldEnd()
+ if self.applicationModules is not None:
+ oprot.writeFieldBegin('applicationModules', TType.LIST, 4)
+ oprot.writeListBegin(TType.STRING, len(self.applicationModules))
+ for iter18 in self.applicationModules:
+ oprot.writeString(iter18)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.applicationInputs is not None:
+ oprot.writeFieldBegin('applicationInputs', TType.LIST, 5)
+ oprot.writeListBegin(TType.STRUCT, len(self.applicationInputs))
+ for iter19 in self.applicationInputs:
+ iter19.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.applicationOutputs is not None:
+ oprot.writeFieldBegin('applicationOutputs', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.applicationOutputs))
+ for iter20 in self.applicationOutputs:
+ iter20.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.applicationInterfaceId is None:
+ raise TProtocol.TProtocolException(message='Required field applicationInterfaceId is unset!')
+ if self.applicationName is None:
+ raise TProtocol.TProtocolException(message='Required field applicationName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.applicationInterfaceId)
+ value = (value * 31) ^ hash(self.applicationName)
+ value = (value * 31) ^ hash(self.applicationDescription)
+ value = (value * 31) ^ hash(self.applicationModules)
+ value = (value * 31) ^ hash(self.applicationInputs)
+ value = (value * 31) ^ hash(self.applicationOutputs)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/ttypes.pyc
new file mode 100644
index 0000000..6dab330
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/appinterface/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__init__.pyc
new file mode 100644
index 0000000..97912ba
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..09aff7d
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__pycache__/ttypes.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__pycache__/ttypes.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__pycache__/ttypes.cpython-35.pyc
new file mode 100644
index 0000000..38547c6
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/__pycache__/ttypes.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/appcatalog/computeresource/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
[15/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.py
new file mode 100644
index 0000000..971b526
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.py
@@ -0,0 +1,176 @@
+#
+# 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.
+#
+
+import errno
+import os
+import socket
+import sys
+
+from thrift.transport.TTransport import *
+
+
+class TSocketBase(TTransportBase):
+ def _resolveAddr(self):
+ if self._unix_socket is not None:
+ return [(socket.AF_UNIX, socket.SOCK_STREAM, None, None,
+ self._unix_socket)]
+ else:
+ return socket.getaddrinfo(self.host,
+ self.port,
+ socket.AF_UNSPEC,
+ socket.SOCK_STREAM,
+ 0,
+ socket.AI_PASSIVE | socket.AI_ADDRCONFIG)
+
+ def close(self):
+ if self.handle:
+ self.handle.close()
+ self.handle = None
+
+
+class TSocket(TSocketBase):
+ """Socket implementation of TTransport base."""
+
+ def __init__(self, host='localhost', port=9090, unix_socket=None):
+ """Initialize a TSocket
+
+ @param host(str) The host to connect to.
+ @param port(int) The (TCP) port to connect to.
+ @param unix_socket(str) The filename of a unix socket to connect to.
+ (host and port will be ignored.)
+ """
+ self.host = host
+ self.port = port
+ self.handle = None
+ self._unix_socket = unix_socket
+ self._timeout = None
+
+ def setHandle(self, h):
+ self.handle = h
+
+ def isOpen(self):
+ return self.handle is not None
+
+ def setTimeout(self, ms):
+ if ms is None:
+ self._timeout = None
+ else:
+ self._timeout = ms / 1000.0
+
+ if self.handle is not None:
+ self.handle.settimeout(self._timeout)
+
+ def open(self):
+ try:
+ res0 = self._resolveAddr()
+ for res in res0:
+ self.handle = socket.socket(res[0], res[1])
+ self.handle.settimeout(self._timeout)
+ try:
+ self.handle.connect(res[4])
+ except socket.error, e:
+ if res is not res0[-1]:
+ continue
+ else:
+ raise e
+ break
+ except socket.error, e:
+ if self._unix_socket:
+ message = 'Could not connect to socket %s' % self._unix_socket
+ else:
+ message = 'Could not connect to %s:%d' % (self.host, self.port)
+ raise TTransportException(type=TTransportException.NOT_OPEN,
+ message=message)
+
+ def read(self, sz):
+ try:
+ buff = self.handle.recv(sz)
+ except socket.error, e:
+ if (e.args[0] == errno.ECONNRESET and
+ (sys.platform == 'darwin' or sys.platform.startswith('freebsd'))):
+ # freebsd and Mach don't follow POSIX semantic of recv
+ # and fail with ECONNRESET if peer performed shutdown.
+ # See corresponding comment and code in TSocket::read()
+ # in lib/cpp/src/transport/TSocket.cpp.
+ self.close()
+ # Trigger the check to raise the END_OF_FILE exception below.
+ buff = ''
+ else:
+ raise
+ if len(buff) == 0:
+ raise TTransportException(type=TTransportException.END_OF_FILE,
+ message='TSocket read 0 bytes')
+ return buff
+
+ def write(self, buff):
+ if not self.handle:
+ raise TTransportException(type=TTransportException.NOT_OPEN,
+ message='Transport not open')
+ sent = 0
+ have = len(buff)
+ while sent < have:
+ plus = self.handle.send(buff)
+ if plus == 0:
+ raise TTransportException(type=TTransportException.END_OF_FILE,
+ message='TSocket sent 0 bytes')
+ sent += plus
+ buff = buff[plus:]
+
+ def flush(self):
+ pass
+
+
+class TServerSocket(TSocketBase, TServerTransportBase):
+ """Socket implementation of TServerTransport base."""
+
+ def __init__(self, host=None, port=9090, unix_socket=None):
+ self.host = host
+ self.port = port
+ self._unix_socket = unix_socket
+ self.handle = None
+
+ def listen(self):
+ res0 = self._resolveAddr()
+ for res in res0:
+ if res[0] is socket.AF_INET6 or res is res0[-1]:
+ break
+
+ # We need remove the old unix socket if the file exists and
+ # nobody is listening on it.
+ if self._unix_socket:
+ tmp = socket.socket(res[0], res[1])
+ try:
+ tmp.connect(res[4])
+ except socket.error, err:
+ eno, message = err.args
+ if eno == errno.ECONNREFUSED:
+ os.unlink(res[4])
+
+ self.handle = socket.socket(res[0], res[1])
+ self.handle.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+ if hasattr(self.handle, 'settimeout'):
+ self.handle.settimeout(None)
+ self.handle.bind(res[4])
+ self.handle.listen(128)
+
+ def accept(self):
+ client, addr = self.handle.accept()
+ result = TSocket()
+ result.setHandle(client)
+ return result
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc
new file mode 100644
index 0000000..a94c5e2
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TSocket.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.py
new file mode 100644
index 0000000..4481371
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.py
@@ -0,0 +1,330 @@
+#
+# 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.
+#
+
+from cStringIO import StringIO
+from struct import pack, unpack
+from thrift.Thrift import TException
+
+
+class TTransportException(TException):
+ """Custom Transport Exception class"""
+
+ UNKNOWN = 0
+ NOT_OPEN = 1
+ ALREADY_OPEN = 2
+ TIMED_OUT = 3
+ END_OF_FILE = 4
+
+ def __init__(self, type=UNKNOWN, message=None):
+ TException.__init__(self, message)
+ self.type = type
+
+
+class TTransportBase:
+ """Base class for Thrift transport layer."""
+
+ def isOpen(self):
+ pass
+
+ def open(self):
+ pass
+
+ def close(self):
+ pass
+
+ def read(self, sz):
+ pass
+
+ def readAll(self, sz):
+ buff = ''
+ have = 0
+ while (have < sz):
+ chunk = self.read(sz - have)
+ have += len(chunk)
+ buff += chunk
+
+ if len(chunk) == 0:
+ raise EOFError()
+
+ return buff
+
+ def write(self, buf):
+ pass
+
+ def flush(self):
+ pass
+
+
+# This class should be thought of as an interface.
+class CReadableTransport:
+ """base class for transports that are readable from C"""
+
+ # TODO(dreiss): Think about changing this interface to allow us to use
+ # a (Python, not c) StringIO instead, because it allows
+ # you to write after reading.
+
+ # NOTE: This is a classic class, so properties will NOT work
+ # correctly for setting.
+ @property
+ def cstringio_buf(self):
+ """A cStringIO buffer that contains the current chunk we are reading."""
+ pass
+
+ def cstringio_refill(self, partialread, reqlen):
+ """Refills cstringio_buf.
+
+ Returns the currently used buffer (which can but need not be the same as
+ the old cstringio_buf). partialread is what the C code has read from the
+ buffer, and should be inserted into the buffer before any more reads. The
+ return value must be a new, not borrowed reference. Something along the
+ lines of self._buf should be fine.
+
+ If reqlen bytes can't be read, throw EOFError.
+ """
+ pass
+
+
+class TServerTransportBase:
+ """Base class for Thrift server transports."""
+
+ def listen(self):
+ pass
+
+ def accept(self):
+ pass
+
+ def close(self):
+ pass
+
+
+class TTransportFactoryBase:
+ """Base class for a Transport Factory"""
+
+ def getTransport(self, trans):
+ return trans
+
+
+class TBufferedTransportFactory:
+ """Factory transport that builds buffered transports"""
+
+ def getTransport(self, trans):
+ buffered = TBufferedTransport(trans)
+ return buffered
+
+
+class TBufferedTransport(TTransportBase, CReadableTransport):
+ """Class that wraps another transport and buffers its I/O.
+
+ The implementation uses a (configurable) fixed-size read buffer
+ but buffers all writes until a flush is performed.
+ """
+ DEFAULT_BUFFER = 4096
+
+ def __init__(self, trans, rbuf_size=DEFAULT_BUFFER):
+ self.__trans = trans
+ self.__wbuf = StringIO()
+ self.__rbuf = StringIO("")
+ self.__rbuf_size = rbuf_size
+
+ def isOpen(self):
+ return self.__trans.isOpen()
+
+ def open(self):
+ return self.__trans.open()
+
+ def close(self):
+ return self.__trans.close()
+
+ def read(self, sz):
+ ret = self.__rbuf.read(sz)
+ if len(ret) != 0:
+ return ret
+
+ self.__rbuf = StringIO(self.__trans.read(max(sz, self.__rbuf_size)))
+ return self.__rbuf.read(sz)
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def flush(self):
+ out = self.__wbuf.getvalue()
+ # reset wbuf before write/flush to preserve state on underlying failure
+ self.__wbuf = StringIO()
+ self.__trans.write(out)
+ self.__trans.flush()
+
+ # Implement the CReadableTransport interface.
+ @property
+ def cstringio_buf(self):
+ return self.__rbuf
+
+ def cstringio_refill(self, partialread, reqlen):
+ retstring = partialread
+ if reqlen < self.__rbuf_size:
+ # try to make a read of as much as we can.
+ retstring += self.__trans.read(self.__rbuf_size)
+
+ # but make sure we do read reqlen bytes.
+ if len(retstring) < reqlen:
+ retstring += self.__trans.readAll(reqlen - len(retstring))
+
+ self.__rbuf = StringIO(retstring)
+ return self.__rbuf
+
+
+class TMemoryBuffer(TTransportBase, CReadableTransport):
+ """Wraps a cStringIO object as a TTransport.
+
+ NOTE: Unlike the C++ version of this class, you cannot write to it
+ then immediately read from it. If you want to read from a
+ TMemoryBuffer, you must either pass a string to the constructor.
+ TODO(dreiss): Make this work like the C++ version.
+ """
+
+ def __init__(self, value=None):
+ """value -- a value to read from for stringio
+
+ If value is set, this will be a transport for reading,
+ otherwise, it is for writing"""
+ if value is not None:
+ self._buffer = StringIO(value)
+ else:
+ self._buffer = StringIO()
+
+ def isOpen(self):
+ return not self._buffer.closed
+
+ def open(self):
+ pass
+
+ def close(self):
+ self._buffer.close()
+
+ def read(self, sz):
+ return self._buffer.read(sz)
+
+ def write(self, buf):
+ self._buffer.write(buf)
+
+ def flush(self):
+ pass
+
+ def getvalue(self):
+ return self._buffer.getvalue()
+
+ # Implement the CReadableTransport interface.
+ @property
+ def cstringio_buf(self):
+ return self._buffer
+
+ def cstringio_refill(self, partialread, reqlen):
+ # only one shot at reading...
+ raise EOFError()
+
+
+class TFramedTransportFactory:
+ """Factory transport that builds framed transports"""
+
+ def getTransport(self, trans):
+ framed = TFramedTransport(trans)
+ return framed
+
+
+class TFramedTransport(TTransportBase, CReadableTransport):
+ """Class that wraps another transport and frames its I/O when writing."""
+
+ def __init__(self, trans,):
+ self.__trans = trans
+ self.__rbuf = StringIO()
+ self.__wbuf = StringIO()
+
+ def isOpen(self):
+ return self.__trans.isOpen()
+
+ def open(self):
+ return self.__trans.open()
+
+ def close(self):
+ return self.__trans.close()
+
+ def read(self, sz):
+ ret = self.__rbuf.read(sz)
+ if len(ret) != 0:
+ return ret
+
+ self.readFrame()
+ return self.__rbuf.read(sz)
+
+ def readFrame(self):
+ buff = self.__trans.readAll(4)
+ sz, = unpack('!i', buff)
+ self.__rbuf = StringIO(self.__trans.readAll(sz))
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def flush(self):
+ wout = self.__wbuf.getvalue()
+ wsz = len(wout)
+ # reset wbuf before write/flush to preserve state on underlying failure
+ self.__wbuf = StringIO()
+ # N.B.: Doing this string concatenation is WAY cheaper than making
+ # two separate calls to the underlying socket object. Socket writes in
+ # Python turn out to be REALLY expensive, but it seems to do a pretty
+ # good job of managing string buffer operations without excessive copies
+ buf = pack("!i", wsz) + wout
+ self.__trans.write(buf)
+ self.__trans.flush()
+
+ # Implement the CReadableTransport interface.
+ @property
+ def cstringio_buf(self):
+ return self.__rbuf
+
+ def cstringio_refill(self, prefix, reqlen):
+ # self.__rbuf will already be empty here because fastbinary doesn't
+ # ask for a refill until the previous buffer is empty. Therefore,
+ # we can start reading new frames immediately.
+ while len(prefix) < reqlen:
+ self.readFrame()
+ prefix += self.__rbuf.getvalue()
+ self.__rbuf = StringIO(prefix)
+ return self.__rbuf
+
+
+class TFileObjectTransport(TTransportBase):
+ """Wraps a file-like object to make it work as a Thrift transport."""
+
+ def __init__(self, fileobj):
+ self.fileobj = fileobj
+
+ def isOpen(self):
+ return True
+
+ def close(self):
+ self.fileobj.close()
+
+ def read(self, sz):
+ return self.fileobj.read(sz)
+
+ def write(self, buf):
+ self.fileobj.write(buf)
+
+ def flush(self):
+ self.fileobj.flush()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc
new file mode 100644
index 0000000..33fcc1c
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTransport.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTwisted.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTwisted.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTwisted.py
new file mode 100644
index 0000000..3ce3eb2
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TTwisted.py
@@ -0,0 +1,221 @@
+#
+# 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.
+#
+
+from cStringIO import StringIO
+
+from zope.interface import implements, Interface, Attribute
+from twisted.internet.protocol import Protocol, ServerFactory, ClientFactory, \
+ connectionDone
+from twisted.internet import defer
+from twisted.protocols import basic
+from twisted.python import log
+from twisted.web import server, resource, http
+
+from thrift.transport import TTransport
+
+
+class TMessageSenderTransport(TTransport.TTransportBase):
+
+ def __init__(self):
+ self.__wbuf = StringIO()
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def flush(self):
+ msg = self.__wbuf.getvalue()
+ self.__wbuf = StringIO()
+ self.sendMessage(msg)
+
+ def sendMessage(self, message):
+ raise NotImplementedError
+
+
+class TCallbackTransport(TMessageSenderTransport):
+
+ def __init__(self, func):
+ TMessageSenderTransport.__init__(self)
+ self.func = func
+
+ def sendMessage(self, message):
+ self.func(message)
+
+
+class ThriftClientProtocol(basic.Int32StringReceiver):
+
+ MAX_LENGTH = 2 ** 31 - 1
+
+ def __init__(self, client_class, iprot_factory, oprot_factory=None):
+ self._client_class = client_class
+ self._iprot_factory = iprot_factory
+ if oprot_factory is None:
+ self._oprot_factory = iprot_factory
+ else:
+ self._oprot_factory = oprot_factory
+
+ self.recv_map = {}
+ self.started = defer.Deferred()
+
+ def dispatch(self, msg):
+ self.sendString(msg)
+
+ def connectionMade(self):
+ tmo = TCallbackTransport(self.dispatch)
+ self.client = self._client_class(tmo, self._oprot_factory)
+ self.started.callback(self.client)
+
+ def connectionLost(self, reason=connectionDone):
+ for k, v in self.client._reqs.iteritems():
+ tex = TTransport.TTransportException(
+ type=TTransport.TTransportException.END_OF_FILE,
+ message='Connection closed')
+ v.errback(tex)
+
+ def stringReceived(self, frame):
+ tr = TTransport.TMemoryBuffer(frame)
+ iprot = self._iprot_factory.getProtocol(tr)
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+
+ try:
+ method = self.recv_map[fname]
+ except KeyError:
+ method = getattr(self.client, 'recv_' + fname)
+ self.recv_map[fname] = method
+
+ method(iprot, mtype, rseqid)
+
+
+class ThriftServerProtocol(basic.Int32StringReceiver):
+
+ MAX_LENGTH = 2 ** 31 - 1
+
+ def dispatch(self, msg):
+ self.sendString(msg)
+
+ def processError(self, error):
+ self.transport.loseConnection()
+
+ def processOk(self, _, tmo):
+ msg = tmo.getvalue()
+
+ if len(msg) > 0:
+ self.dispatch(msg)
+
+ def stringReceived(self, frame):
+ tmi = TTransport.TMemoryBuffer(frame)
+ tmo = TTransport.TMemoryBuffer()
+
+ iprot = self.factory.iprot_factory.getProtocol(tmi)
+ oprot = self.factory.oprot_factory.getProtocol(tmo)
+
+ d = self.factory.processor.process(iprot, oprot)
+ d.addCallbacks(self.processOk, self.processError,
+ callbackArgs=(tmo,))
+
+
+class IThriftServerFactory(Interface):
+
+ processor = Attribute("Thrift processor")
+
+ iprot_factory = Attribute("Input protocol factory")
+
+ oprot_factory = Attribute("Output protocol factory")
+
+
+class IThriftClientFactory(Interface):
+
+ client_class = Attribute("Thrift client class")
+
+ iprot_factory = Attribute("Input protocol factory")
+
+ oprot_factory = Attribute("Output protocol factory")
+
+
+class ThriftServerFactory(ServerFactory):
+
+ implements(IThriftServerFactory)
+
+ protocol = ThriftServerProtocol
+
+ def __init__(self, processor, iprot_factory, oprot_factory=None):
+ self.processor = processor
+ self.iprot_factory = iprot_factory
+ if oprot_factory is None:
+ self.oprot_factory = iprot_factory
+ else:
+ self.oprot_factory = oprot_factory
+
+
+class ThriftClientFactory(ClientFactory):
+
+ implements(IThriftClientFactory)
+
+ protocol = ThriftClientProtocol
+
+ def __init__(self, client_class, iprot_factory, oprot_factory=None):
+ self.client_class = client_class
+ self.iprot_factory = iprot_factory
+ if oprot_factory is None:
+ self.oprot_factory = iprot_factory
+ else:
+ self.oprot_factory = oprot_factory
+
+ def buildProtocol(self, addr):
+ p = self.protocol(self.client_class, self.iprot_factory,
+ self.oprot_factory)
+ p.factory = self
+ return p
+
+
+class ThriftResource(resource.Resource):
+
+ allowedMethods = ('POST',)
+
+ def __init__(self, processor, inputProtocolFactory,
+ outputProtocolFactory=None):
+ resource.Resource.__init__(self)
+ self.inputProtocolFactory = inputProtocolFactory
+ if outputProtocolFactory is None:
+ self.outputProtocolFactory = inputProtocolFactory
+ else:
+ self.outputProtocolFactory = outputProtocolFactory
+ self.processor = processor
+
+ def getChild(self, path, request):
+ return self
+
+ def _cbProcess(self, _, request, tmo):
+ msg = tmo.getvalue()
+ request.setResponseCode(http.OK)
+ request.setHeader("content-type", "application/x-thrift")
+ request.write(msg)
+ request.finish()
+
+ def render_POST(self, request):
+ request.content.seek(0, 0)
+ data = request.content.read()
+ tmi = TTransport.TMemoryBuffer(data)
+ tmo = TTransport.TMemoryBuffer()
+
+ iprot = self.inputProtocolFactory.getProtocol(tmi)
+ oprot = self.outputProtocolFactory.getProtocol(tmo)
+
+ d = self.processor.process(iprot, oprot)
+ d.addCallback(self._cbProcess, request, tmo)
+ return server.NOT_DONE_YET
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TZlibTransport.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TZlibTransport.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TZlibTransport.py
new file mode 100644
index 0000000..97e58b3
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/TZlibTransport.py
@@ -0,0 +1,249 @@
+#
+# 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.
+#
+
+"""TZlibTransport provides a compressed transport and transport factory
+class, using the python standard library zlib module to implement
+data compression.
+"""
+
+from __future__ import division
+import zlib
+from cStringIO import StringIO
+
+from lib.thrift.transport.TTransport import TTransportBase, CReadableTransport
+
+
+class TZlibTransportFactory(object):
+ """Factory transport that builds zlib compressed transports.
+
+ This factory caches the last single client/transport that it was passed
+ and returns the same TZlibTransport object that was created.
+
+ This caching means the TServer class will get the _same_ transport
+ object for both input and output transports from this factory.
+ (For non-threaded scenarios only, since the cache only holds one object)
+
+ The purpose of this caching is to allocate only one TZlibTransport where
+ only one is really needed (since it must have separate read/write buffers),
+ and makes the statistics from getCompSavings() and getCompRatio()
+ easier to understand.
+ """
+ # class scoped cache of last transport given and zlibtransport returned
+ _last_trans = None
+ _last_z = None
+
+ def getTransport(self, trans, compresslevel=9):
+ """Wrap a transport, trans, with the TZlibTransport
+ compressed transport class, returning a new
+ transport to the caller.
+
+ @param compresslevel: The zlib compression level, ranging
+ from 0 (no compression) to 9 (best compression). Defaults to 9.
+ @type compresslevel: int
+
+ This method returns a TZlibTransport which wraps the
+ passed C{trans} TTransport derived instance.
+ """
+ if trans == self._last_trans:
+ return self._last_z
+ ztrans = TZlibTransport(trans, compresslevel)
+ self._last_trans = trans
+ self._last_z = ztrans
+ return ztrans
+
+
+class TZlibTransport(TTransportBase, CReadableTransport):
+ """Class that wraps a transport with zlib, compressing writes
+ and decompresses reads, using the python standard
+ library zlib module.
+ """
+ # Read buffer size for the python fastbinary C extension,
+ # the TBinaryProtocolAccelerated class.
+ DEFAULT_BUFFSIZE = 4096
+
+ def __init__(self, trans, compresslevel=9):
+ """Create a new TZlibTransport, wrapping C{trans}, another
+ TTransport derived object.
+
+ @param trans: A thrift transport object, i.e. a TSocket() object.
+ @type trans: TTransport
+ @param compresslevel: The zlib compression level, ranging
+ from 0 (no compression) to 9 (best compression). Default is 9.
+ @type compresslevel: int
+ """
+ self.__trans = trans
+ self.compresslevel = compresslevel
+ self.__rbuf = StringIO()
+ self.__wbuf = StringIO()
+ self._init_zlib()
+ self._init_stats()
+
+ def _reinit_buffers(self):
+ """Internal method to initialize/reset the internal StringIO objects
+ for read and write buffers.
+ """
+ self.__rbuf = StringIO()
+ self.__wbuf = StringIO()
+
+ def _init_stats(self):
+ """Internal method to reset the internal statistics counters
+ for compression ratios and bandwidth savings.
+ """
+ self.bytes_in = 0
+ self.bytes_out = 0
+ self.bytes_in_comp = 0
+ self.bytes_out_comp = 0
+
+ def _init_zlib(self):
+ """Internal method for setting up the zlib compression and
+ decompression objects.
+ """
+ self._zcomp_read = zlib.decompressobj()
+ self._zcomp_write = zlib.compressobj(self.compresslevel)
+
+ def getCompRatio(self):
+ """Get the current measured compression ratios (in,out) from
+ this transport.
+
+ Returns a tuple of:
+ (inbound_compression_ratio, outbound_compression_ratio)
+
+ The compression ratios are computed as:
+ compressed / uncompressed
+
+ E.g., data that compresses by 10x will have a ratio of: 0.10
+ and data that compresses to half of ts original size will
+ have a ratio of 0.5
+
+ None is returned if no bytes have yet been processed in
+ a particular direction.
+ """
+ r_percent, w_percent = (None, None)
+ if self.bytes_in > 0:
+ r_percent = self.bytes_in_comp / self.bytes_in
+ if self.bytes_out > 0:
+ w_percent = self.bytes_out_comp / self.bytes_out
+ return (r_percent, w_percent)
+
+ def getCompSavings(self):
+ """Get the current count of saved bytes due to data
+ compression.
+
+ Returns a tuple of:
+ (inbound_saved_bytes, outbound_saved_bytes)
+
+ Note: if compression is actually expanding your
+ data (only likely with very tiny thrift objects), then
+ the values returned will be negative.
+ """
+ r_saved = self.bytes_in - self.bytes_in_comp
+ w_saved = self.bytes_out - self.bytes_out_comp
+ return (r_saved, w_saved)
+
+ def isOpen(self):
+ """Return the underlying transport's open status"""
+ return self.__trans.isOpen()
+
+ def open(self):
+ """Open the underlying transport"""
+ self._init_stats()
+ return self.__trans.open()
+
+ def listen(self):
+ """Invoke the underlying transport's listen() method"""
+ self.__trans.listen()
+
+ def accept(self):
+ """Accept connections on the underlying transport"""
+ return self.__trans.accept()
+
+ def close(self):
+ """Close the underlying transport,"""
+ self._reinit_buffers()
+ self._init_zlib()
+ return self.__trans.close()
+
+ def read(self, sz):
+ """Read up to sz bytes from the decompressed bytes buffer, and
+ read from the underlying transport if the decompression
+ buffer is empty.
+ """
+ ret = self.__rbuf.read(sz)
+ if len(ret) > 0:
+ return ret
+ # keep reading from transport until something comes back
+ while True:
+ if self.readComp(sz):
+ break
+ ret = self.__rbuf.read(sz)
+ return ret
+
+ def readComp(self, sz):
+ """Read compressed data from the underlying transport, then
+ decompress it and append it to the internal StringIO read buffer
+ """
+ zbuf = self.__trans.read(sz)
+ zbuf = self._zcomp_read.unconsumed_tail + zbuf
+ buf = self._zcomp_read.decompress(zbuf)
+ self.bytes_in += len(zbuf)
+ self.bytes_in_comp += len(buf)
+ old = self.__rbuf.read()
+ self.__rbuf = StringIO(old + buf)
+ if len(old) + len(buf) == 0:
+ return False
+ return True
+
+ def write(self, buf):
+ """Write some bytes, putting them into the internal write
+ buffer for eventual compression.
+ """
+ self.__wbuf.write(buf)
+
+ def flush(self):
+ """Flush any queued up data in the write buffer and ensure the
+ compression buffer is flushed out to the underlying transport
+ """
+ wout = self.__wbuf.getvalue()
+ if len(wout) > 0:
+ zbuf = self._zcomp_write.compress(wout)
+ self.bytes_out += len(wout)
+ self.bytes_out_comp += len(zbuf)
+ else:
+ zbuf = ''
+ ztail = self._zcomp_write.flush(zlib.Z_SYNC_FLUSH)
+ self.bytes_out_comp += len(ztail)
+ if (len(zbuf) + len(ztail)) > 0:
+ self.__wbuf = StringIO()
+ self.__trans.write(zbuf + ztail)
+ self.__trans.flush()
+
+ @property
+ def cstringio_buf(self):
+ """Implement the CReadableTransport interface"""
+ return self.__rbuf
+
+ def cstringio_refill(self, partialread, reqlen):
+ """Implement the CReadableTransport interface for refill"""
+ retstring = partialread
+ if reqlen < self.DEFAULT_BUFFSIZE:
+ retstring += self.read(self.DEFAULT_BUFFSIZE)
+ while len(retstring) < reqlen:
+ retstring += self.read(reqlen - len(retstring))
+ self.__rbuf = StringIO(retstring)
+ return self.__rbuf
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.py
new file mode 100644
index 0000000..c9596d9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.py
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+__all__ = ['TTransport', 'TSocket', 'THttpClient', 'TZlibTransport']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc
new file mode 100644
index 0000000..ef72ead
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/transport/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/.ipynb_checkpoints/create-experiment-checkpoint.ipynb
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/.ipynb_checkpoints/create-experiment-checkpoint.ipynb b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/.ipynb_checkpoints/create-experiment-checkpoint.ipynb
new file mode 100644
index 0000000..3523a80
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/.ipynb_checkpoints/create-experiment-checkpoint.ipynb
@@ -0,0 +1,449 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "import sys\n",
+ "import random\n",
+ "\n",
+ "from thrift.protocol import TBinaryProtocol\n",
+ "from thrift.transport import TSocket, TTransport, TSSLSocket\n",
+ "\n",
+ "from apache.airavata.api import Airavata\n",
+ "from apache.airavata.model.experiment.ttypes import ExperimentModel\n",
+ "from apache.airavata.model.scheduling.ttypes import ComputationalResourceSchedulingModel\n",
+ "from apache.airavata.model.experiment.ttypes import UserConfigurationDataModel\n",
+ "from apache.airavata.model.status.ttypes import ExperimentState\n",
+ "from apache.airavata.model.security.ttypes import AuthzToken\n",
+ "from apache.airavata.model.application.io.ttypes import InputDataObjectType, OutputDataObjectType\n",
+ "\n",
+ "from oauthlib.oauth2 import LegacyApplicationClient\n",
+ "from requests_oauthlib import OAuth2Session\n",
+ "from oauthlib.oauth2 import BackendApplicationClient"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Getting OAuth Access Code from IDP"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "client_id = r'XXXXXXXXXXX'\n",
+ "client_secret = r'XXXXXXXXXXXX'\n",
+ "\n",
+ "client = BackendApplicationClient(client_id=client_id)\n",
+ "oauth = OAuth2Session(client=client)\n",
+ "token = oauth.fetch_token(token_url='https://idp.scigap.org:9443/oauth2/token', client_id=client_id, client_secret=client_secret)\n",
+ "authzToken = AuthzToken(token[\"access_token\"])\n",
+ "\n",
+ "claimsMap = {\"userName\":\"admin\",\"gatewayID\": \"seagrid\"}\n",
+ "authzToken.claimsMap = claimsMap\n",
+ "\n",
+ "userName = \"admin\"\n",
+ "gatewayId = \"seagrid\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Creating Airavata Client"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'0.16.0'"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "transport = TSSLSocket.TSSLSocket(\"gw56.iu.xsede.org\",9930, validate=False)\n",
+ "transport = TTransport.TBufferedTransport(transport)\n",
+ "protocol = TBinaryProtocol.TBinaryProtocol(transport)\n",
+ "airavataClient = Airavata.Client(protocol)\n",
+ "transport.open()\n",
+ "\n",
+ "#Testing the Airavata Client\n",
+ "airavataClient.getAPIVersion(authzToken)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## List User Projects"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "TestProject487543_b6ba13ff-4af5-4cf1-a5d4-9a7908cd338e\n",
+ "TestProject0398576_bb39d722-e136-41d2-89fd-a2e60e15c841\n",
+ "TestProject984752_9d011ce9-24ea-41a7-a40c-0192cbdb475f\n",
+ "TestProject81724_f4dde490-2e23-4308-b2c7-0cc2454520f0\n",
+ "TestProj5_e8b872d9-17ed-4f13-9007-40cd71df6450\n",
+ "TestProj4_ca7b95df-dd56-41b5-b112-d58b2748fc46\n",
+ "TestProj3_3ff3b1fc-70e0-4cfc-8581-b915209786a5\n",
+ "TheTestProj_397ccd77-0cb3-4c86-ba74-fb1954548085\n",
+ "TestProj_733ada60-2e88-4f52-a4f4-789c2795fc3e\n",
+ "testeroonius_61d70e07-78fc-4b82-a26b-24d37b2bd294\n",
+ "testeroonius_0e20b332-c694-4b90-9443-8403d46a1fcc\n",
+ "testeroonius_21e5f9aa-9fef-406d-9ff2-315ed7312efe\n",
+ "testeroonius_b31b789e-c61a-4eeb-828d-35edc2fcaa4b\n",
+ "testerooni_4a655ef7-b04b-4f6f-8481-216ebdb8437b\n",
+ "DefaultProject_9f56c72c-51ef-461e-bad8-6595af42b8de\n"
+ ]
+ }
+ ],
+ "source": [
+ "projects = airavataClient.getUserProjects(authzToken, gatewayId, userName, -1, 0)\n",
+ "for p in projects:\n",
+ " print(p.projectID)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "selectedProjId = \"TestProj3_3ff3b1fc-70e0-4cfc-8581-b915209786a5\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## List of Applications Available in the Gateway"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Echo_3f480d1f-ea86-4018-94bb-015423d66a1c\n",
+ "Amber_Sander_27b68571-b9c0-4bd5-bd70-e29435fa81bd\n",
+ "Gaussian_377feede-4d67-4065-984f-284d05c7d32d\n",
+ "Gromacs_c56857f1-c5d5-491b-b5ac-3f8165fdfc7a\n",
+ "Abinit_69939a97-17b8-472c-bdf3-81a41de57b74\n",
+ "AutoDock_6140eb97-af55-458d-a610-0e6cfee82487\n",
+ "CP2K_e9f82e52-dd78-4733-81ef-e163443efae5\n",
+ "CPMD_2038f63a-42a2-45df-b5fb-8916c1df8fc8\n",
+ "DDSCat_7911e731-2a8f-47fa-9ec2-e97f94ddbe7a\n",
+ "DFTB+_3b6232a4-3584-42bd-a0fb-452e56fc1c97\n",
+ "Gamess_9014bed7-f6a9-4bf6-8903-3531fce6adfe\n",
+ "Gamess_BR2_4a9a65dd-d9ea-45ff-a752-44614cf78dce\n",
+ "Gamess_Stampede_b8e90ce5-81ab-42ab-be57-304f2cdeb69e\n",
+ "Gromacs_CrayMPI_579f6463-10bb-4f06-9b6c-2e43589aaed3\n",
+ "Lammps_09de4f61-45b8-4c24-90c6-ebe718958728\n",
+ "Lammps_BR2_090f5f20-bb8e-4b96-a0fa-85cea7aec2f1\n",
+ "Molcas_89d5feb0-b1f1-437a-baef-9f353debd145\n",
+ "NWChem_e21df4ce-0c8e-422b-9e79-e0e7d56fad1f\n",
+ "Qchem_5e2f490a-25da-4631-a96d-d6f428e77ad5\n",
+ "Quantum_Espresso_fa1c5f04-bc52-4e91-8fd7-dbd1bcb1e39b\n",
+ "Tinker_Monte_1afae7f3-7c02-4fc6-8c67-8378c65a88b3\n",
+ "Abaqus_dcf7df79-5564-46db-88c4-837207882fdb\n",
+ "NEK5000_8ca957b3-6037-4535-9e02-005eb7dafd2d\n",
+ "Test-Application-Interface_39f9229d-c3b6-4251-90ec-c76265aafde8\n",
+ "Tes-App-Int_3efc89dc-d03a-4abb-af33-d7f242e9c656\n",
+ "TestAppInt1_2776c902-3200-4363-ab1e-ff99adc643cf\n",
+ "Test1_9c82fb1e-54da-42e8-87ae-6e3e1b1b8951\n",
+ "AutoDock_Vina_dcb6a898-fef3-4bed-b2d3-9aad45b42131\n",
+ "TestAppInt2_458c30d2-5f29-45b9-acd8-953315c6a730\n",
+ "Phasta_P_61030007-7243-4c6c-b13c-e7287670a847\n",
+ "Vina_Multiple_85771219-f188-48da-8dfe-422eea72c1ff\n",
+ "Vina_Optional_Ligands_a32ee927-f205-49a1-9a6f-c03e4a24aefc\n",
+ "Trinity_33a4a5ab-8d69-4477-a72d-0bd0cd7f3926\n"
+ ]
+ }
+ ],
+ "source": [
+ "appInterfaces = airavataClient.getAllApplicationInterfaces(authzToken, gatewayId)\n",
+ "for interface in appInterfaces:\n",
+ " print(interface.applicationInterfaceId)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Listing all Compute Resource with Echo App Enabled"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "selectedInterfaceId = \"Echo_3f480d1f-ea86-4018-94bb-015423d66a1c\"\n",
+ "availableCompRes = airavataClient.getAvailableAppInterfaceComputeResources(authzToken, selectedInterfaceId)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "bigred2.uits.iu.edu_ac140dca-3c88-46d8-b9ed-875d96ea6908 bigred2.uits.iu.edu\n"
+ ]
+ }
+ ],
+ "source": [
+ "for k in availableCompRes:\n",
+ " print(k + \" \" + availableCompRes[k])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "selectedCompResId = \"bigred2.uits.iu.edu_ac140dca-3c88-46d8-b9ed-875d96ea6908\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Creating the Experiment Object"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "experiment = ExperimentModel()\n",
+ "experiment.experimentName = \"Simple Echo Experiment \" + str(random.random())\n",
+ "experiment.projectId = selectedProjId\n",
+ "experiment.gatewayId = gatewayId\n",
+ "experiment.userName = userName\n",
+ "experiment.description = \"Simple Echo Experiment\"\n",
+ "experiment.executionId = selectedInterfaceId"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "echoInterface = airavataClient.getApplicationInterface(authzToken, selectedInterfaceId)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "inputs = echoInterface.applicationInputs\n",
+ "inputs[0].value = \"Hello World\"\n",
+ "\n",
+ "experiment.experimentInputs = inputs\n",
+ "experiment.experimentOutputs = echoInterface.applicationOutputs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "compResource = airavataClient.getComputeResource(authzToken, selectedCompResId)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[BatchQueue(maxJobsInQueue=0, maxNodes=128, maxRunTime=2880, maxMemory=0, queueDescription='The routing queue for all \"production\" jobs; each job is routed, based on its resource requirements, to one of the execution queues (normal, serial, or long)', maxProcessors=4096, queueName='cpu'),\n",
+ " BatchQueue(maxJobsInQueue=0, maxNodes=21824, maxRunTime=0, maxMemory=0, queueDescription='GPU queue', maxProcessors=1364, queueName='gpu')]"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "compResource.batchQueues"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "queueName = \"cpu\"\n",
+ "\n",
+ "computationalRS = ComputationalResourceSchedulingModel()\n",
+ "computationalRS.resourceHostId = selectedCompResId\n",
+ "computationalRS.totalCPUCount = 16\n",
+ "computationalRS.nodeCount = 1\n",
+ "computationalRS.numberOfThreads = 1\n",
+ "computationalRS.queueName = queueName\n",
+ "computationalRS.wallTimeLimit = 10\n",
+ "computationalRS.totalPhysicalMemory = 1\n",
+ "\n",
+ "userConfig = UserConfigurationDataModel()\n",
+ "userConfig.airavataAutoSchedule = True\n",
+ "userConfig.overrideManualScheduledParams = False\n",
+ "userConfig.computationalResourceScheduling = computationalRS\n",
+ "\n",
+ "experiment.userConfigurationData = userConfig"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Create & Launch Experiment"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Experiment Id is SimpleEchoExperiment0.666940363066_ed483ef9-f87f-402d-a25c-881b1d6cc6ac\n"
+ ]
+ }
+ ],
+ "source": [
+ "transport.open()\n",
+ "expId = airavataClient.createExperiment(authzToken, gatewayId, experiment)\n",
+ "print (\"Experiment Id is \" + expId)\n",
+ "airavataClient.launchExperiment(authzToken, expId, gatewayId)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Retreiving Experiment Status"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "LAUNCHED\n"
+ ]
+ }
+ ],
+ "source": [
+ "transport.open()\n",
+ "status = airavataClient.getExperimentStatus(authzToken, expId)\n",
+ "print(ExperimentState._VALUES_TO_NAMES[status.state])"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc
new file mode 100644
index 0000000..144e9b9
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc
new file mode 100644
index 0000000..ba42260
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/__init__.pyc differ
[18/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/69c259de/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb
new file mode 100644
index 0000000..f04ad19
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb
@@ -0,0 +1,799 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "import ConfigParser\n",
+ "import pandas as pd\n",
+ "import datetime\n",
+ "from datetime import datetime\n",
+ "import calendar\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "conf = ConfigParser.RawConfigParser()\n",
+ "conf.read('cli.properties')\n",
+ "hostName = conf.get('AiravataServer', 'host')\n",
+ "port = conf.get('AiravataServer', 'port')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.16.0\n",
+ "0.16.0\n",
+ "\n",
+ "Welcome to Airavata CLI v0.0.1 - Wirtten in python\n",
+ "\n",
+ "\n",
+ "None\n"
+ ]
+ }
+ ],
+ "source": [
+ "from airavata_cli import AiravataCLI\n",
+ "airavata_cli = AiravataCLI(hostName, int(port))\n",
+ "print(airavata_cli.printVersion())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": [
+ "##Making Sure we are connected to the right Gateway"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[Gateway(gatewayId='Ultrascan_Production', emailAddress=None, domain=None, gatewayName='Ultrascan_Production')]"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "airavata_cli.get_gatewaylist()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## List of Resources the Gateway uses"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29',\n",
+ " 'alamo.uthscsa.edu'),\n",
+ " ('Jureca_32098185-4396-4c11-afb7-26e991a03476', 'Jureca'),\n",
+ " ('comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', 'comet.sdsc.edu'),\n",
+ " ('gordon.sdsc.edu_f9363997-4614-477f-847e-79d262ee8ef7', 'gordon.sdsc.edu'),\n",
+ " ('ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf',\n",
+ " 'ls5.tacc.utexas.edu'),\n",
+ " ('stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12',\n",
+ " 'stampede.tacc.xsede.org')]"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "airavata_cli.computer_resources().items()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": [
+ "compute_resources = pd.DataFrame(list(airavata_cli.computer_resources().items()), columns=[\"Id\", \"Name\"])\n",
+ "compute_resources"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Some other custom functions which can be created"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[ApplicationInterfaceDescription(applicationName='Ultrascan', applicationInputs=[InputDataObjectType(userFriendlyDescription='Ultrascan HPC Input Tar File', name='Input_Tar_File', dataStaged=False, value='', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=3, inputOrder=1, metaData=''), InputDataObjectType(userFriendlyDescription='Batches for multi-wavelength data processing', name='Parallel_Group_Count', dataStaged=False, value='-mgroupcount=1', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=3, metaData=''), InputDataObjectType(userFriendlyDescription='Wall Clock Limit on the Compute Resource', name='Wall_Time', dataStaged=False, value='-walltime=60', applicationArgument='', isRequired=True, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=2, metaData='')], applicationInterfaceId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46
', applicationDescription='Ultrascan Version 3 Interface', applicationOutputs=[OutputDataObjectType(dataMovement=True, name='output', value='output/analysis-results.tar', applicationArgument='', isRequired=True, searchQuery='', location='output', requiredToAddedToCommandLine=False, outputStreaming=False, type=3), OutputDataObjectType(dataMovement=True, name='Ultrascan-Standard-Error', value='', applicationArgument='', isRequired=True, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=5), OutputDataObjectType(dataMovement=True, name='Ultrascan-Standard-Out', value='', applicationArgument='', isRequired=True, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=4)], applicationModules=['Ultrascan_82282f1e-284f-4999-9beb-4620c485b03d']),\n",
+ " ApplicationInterfaceDescription(applicationName='Ultrascan_Unicore', applicationInputs=[InputDataObjectType(userFriendlyDescription='', name='Input', dataStaged=False, value='', applicationArgument='', isRequired=True, standardInput=False, requiredToAddedToCommandLine=False, type=3, inputOrder=1, metaData=''), InputDataObjectType(userFriendlyDescription='', name='mgroupcount', dataStaged=False, value='-mgroupcount 1', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=2, metaData=''), InputDataObjectType(userFriendlyDescription='', name='US3INPUTARG', dataStaged=False, value='', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=4, metaData=''), InputDataObjectType(userFriendlyDescription='', name='walltime', dataStaged=False, value='-walltime 60', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True,
type=0, inputOrder=3, metaData='')], applicationInterfaceId='Ultrascan_Unicore_0e7f8522-6d75-41ba-8b09-0021e728679a', applicationDescription='Unicore Service', applicationOutputs=[OutputDataObjectType(dataMovement=True, name='Ultrascan-Unicore-Standard-Error', value='', applicationArgument='', isRequired=False, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=5), OutputDataObjectType(dataMovement=True, name='Ultrascan-Unicore-Standard-Out', value='', applicationArgument='', isRequired=False, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=4), OutputDataObjectType(dataMovement=True, name='US3OUT', value='analysis-results.tar', applicationArgument='', isRequired=True, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=0)], applicationModules=['Ultrascan_Unicore_2471953d-5d87-4ffc-b0e6-b06c86c6206d'])]"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "airavata_cli.list_of_applications('Ultrascan_Production')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[ApplicationModule(appModuleName='Ultrascan', appModuleVersion='Ultrascan Application', appModuleId='Ultrascan_82282f1e-284f-4999-9beb-4620c485b03d', appModuleDescription=''),\n",
+ " ApplicationModule(appModuleName='Ultrascan_Unicore', appModuleVersion='', appModuleId='Ultrascan_Unicore_2471953d-5d87-4ffc-b0e6-b06c86c6206d', appModuleDescription='Ultrascan Unicore Application')]"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "airavata_cli.module_descriptions('Ultrascan_Production') "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": [
+ "##Setting the time parameters"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "start= datetime(2015,7,16,15,10)\n",
+ "end= datetime(2016,7,17,11,59)\n",
+ "fromTime = calendar.timegm(start.timetuple())\n",
+ "toTime = calendar.timegm(end.timetuple())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Getting the list of Experiments executed during the above mentioned period"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "ExperimentStatistics(failedExperiments=[ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610916000L, experimentId='US3-AIRA_bfe0ab01-db1f-4ccc-b3a0-e4e3e4224b29', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924612000L, experimentId='US3-AIRA_a51470cc-5f0c-4c45-a116-5fa711345522', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Prod
uction', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924600000L, experimentId='US3-AIRA_9756a388-3852-4a8c-9bdb-301077047bb0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924593000L, experimentId='US3-AIRA_1f52b8ac-a8b9-43c8-b384-b5bee596155a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='U
ltrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924588000L, experimentId='US3-AIRA_060ad115-36b1-468d-a794-992987493daf', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924575000L, experimentId='US3-AIRA_2c06f10a-b7be-4424-950c-3cb39aaa2bf0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46',
gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924566000L, experimentId='US3-AIRA_36f421e3-8903-4736-b9a4-57e6d02decf4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924558000L, experimentId='US3-AIRA_a438405d-7269-470c-b2d9-8deda405b48e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3
be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Francesca_Mattiroli_ae62c051-bc52-d0e4-f939-42b618137445', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_ae79215b-e5e2-45c7-bf9b-c7f196396c02', creationTime=1463341562000L, experimentId='US3-AIRA_f685a836-18bb-4404-a40a-528fb2e83d29', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1462970130000L, experimentId='US3-AIRA_60c739dd-12da-4731-a883-a6fa8c070467', executionId='Ultrascan_0ed937f6-26af-4c54-8064
-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Shaoxiong_Tian_f3c15677-e1d3-c894-7539-005f6df5e1b6', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_ca187139-f813-411d-9d0e-9ee5350f1a35', creationTime=1462922274000L, experimentId='US3-AIRA_6b2016fb-a2b5-43fb-a123-a756df9db348', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Shaoxiong_Tian_f3c15677-e1d3-c894-7539-005f6df5e1b6', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_ca187139-f813-411d-9d0e-9ee5350f1a35', creationTime=1462916575000L, experimentId='US3-AIRA_5971eb9a-03a8-4846-84e9-b99c4cd483fd', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be0
82411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1462496689000L, experimentId='US3-AIRA_79d8b7b6-55e6-4822-8573-2ac67e1a20e2', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Ero2016', name='Clone of Clone of Clone of Clone of U1', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='May_04_Experiments_91d005c6-e13b-40d0-9c61-a6d66dec8e93', creationTime=1462393184000L, experimentId='CloneofCloneofCloneofCloneofU1_c37f11bf-bc0a-4ab8-9d56-64fbea0fa6ee', executionId='Ultrascan_0ed937f6-26a
f-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=''), ExperimentSummaryModel(userName='Ero2016', name='Clone of U1', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='May_04_Experiments_91d005c6-e13b-40d0-9c61-a6d66dec8e93', creationTime=1462390867000L, experimentId='CloneofU1_954250be-e631-43be-b8e6-a6cbec286242', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=''), ExperimentSummaryModel(userName='Ero2016', name='U1', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='May_04_Experiments_91d005c6-e13b-40d0-9c61-a6d66dec8e93', creationTime=1462388494000L, experimentId='U1_386304ea-6d85-4dd7-8744-3867ca750cbf', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED
', description=' '), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1459545884000L, experimentId='US3-AIRA_59ba02e1-29b5-4267-b70b-4b1cc5d9ee04', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1459544795000L, experimentId='US3-AIRA_0e989684-49f5-462c-b6eb-2db1740b61c7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentSt
atus='FAILED', description=None), ExperimentSummaryModel(userName='Uma_Muthurajan_912a2d20-e858-a4b4-fdbf-6cdf8ec8e182', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_3bbbc30b-4936-4371-bbaa-7b7901f46b48', creationTime=1459503200000L, experimentId='US3-AIRA_875a91d9-b752-45c7-a6a7-93b2901dfd6c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459451669000L, experimentId='US3-AIRA_84f7b4b5-5dc6-4370-9321-2aa3db57bb31', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), E
xperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459450891000L, experimentId='US3-AIRA_91ea15ef-e237-4926-a840-b4234bbe5cb4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459450662000L, experimentId='US3-AIRA_0660e466-5d99-4e0e-9aa2-ed3358eebd8d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusU
pdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459450589000L, experimentId='US3-AIRA_c7c1a4c2-2b3b-4fc9-996b-2da987c28436', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459447657000L, experimentId='US3-AIRA_9c9348e1-763c-48f7-b69e-b78d58c165fa', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a9
75ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459447398000L, experimentId='US3-AIRA_a226ec5d-f0c9-4c43-8ddc-7c53749a5f8c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458670372000L, experimentId='US3-Test_f861d80f-f252-40e9-b50e-e96b731af8e7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Suresh_Marru_a5115922-f317-d754-9d72-8654071a5b59', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_649c
553e-ebb3-460d-8891-0854d8c99135', creationTime=1458658752000L, experimentId='US3-ADEV_6922cf63-034f-4bea-b842-267e98ca4d8a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_84f540d7-3276-8894-a544-fae60062b41c', name='US3-ADEV', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='Default_Project_d8841361-30e0-4f66-8310-ca642c426d76', creationTime=1458580364000L, experimentId='US3-ADEV_5edf1006-0482-4fa2-8d99-89a0dffee4f5', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_84f540d7-3276-8894-a544-fae60062b41c', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_d88
41361-30e0-4f66-8310-ca642c426d76', creationTime=1458580336000L, experimentId='US3-ADEV_84f329cf-6c17-41ef-bff5-1793fba4e41a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_84f540d7-3276-8894-a544-fae60062b41c', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_d8841361-30e0-4f66-8310-ca642c426d76', creationTime=1458580315000L, experimentId='US3-ADEV_40d796f4-005e-49ec-8b5e-9f459ccb5c5c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Ero2016', name='Clone of Test_Exp1', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='03/20/2016_ab65c93a-6bc4-4673-9388-4fa24e242245
', creationTime=1458571200000L, experimentId='CloneofTest_Exp1_89cf18ed-a990-4ce1-b777-5123181464a2', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=''), ExperimentSummaryModel(userName='Ero2016', name='Test_Exp1', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='03/20/2016_ab65c93a-6bc4-4673-9388-4fa24e242245', creationTime=1458571065000L, experimentId='Test_Exp1_4bd1f42f-37d6-4a99-9cf3-7b250aba37f6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=' '), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458427226000L, experimentId='US3-Test_907959e1-ee18-4efc-
ae33-c85e60c5efed', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458427119000L, experimentId='US3-Test_8a1b01ca-f06f-4d99-8469-2a8c7cfad31a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458427003000L, experimentId='US3-Test_1c439038-378a-47bc-ab48-0ade6829bb95', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gat
ewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458411616000L, experimentId='US3-Test_ba9411a0-09db-4a72-afdc-97ee1513a9ab', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_84f540d7-3276-8894-a544-fae60062b41c', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_d8841361-30e0-4f66-8310-ca642c426d76', creationTime=1458333932000L, experimentId='US3-ADEV_bc0e1edf-fbb6-4852-bcdb-dcafd0f51193', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStat
us='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321712000L, experimentId='US3-Test_3616a162-9b9d-4a15-bff5-8b939a8b5e0f', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321710000L, experimentId='US3-Test_a1ebe37b-e20e-4e52-b023-24e13cbbf4ba', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-T
est', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321707000L, experimentId='US3-Test_2e2568c4-cba4-478e-aadf-38ae977f37b6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321704000L, experimentId='US3-Test_bcfbfd7b-24e1-40ac-84e2-799b9aae4fce', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-b
dd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321702000L, experimentId='US3-Test_45510860-3a0c-46ea-bdaf-11041286b69e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321698000L, experimentId='US3-Test_be111960-d779-4bdd-aca2-39e37173a8a8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320',
creationTime=1458321695000L, experimentId='US3-Test_78b700b7-f4d4-4271-9e6e-b0c7644e4d41', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321693000L, experimentId='US3-Test_12e9a448-45f7-43e5-b5ac-aac3dd3568f4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321690000L, experimentId='US3-Test_b9ceb01a-b051-43a6-9bd7-5dda71e30
6b9', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321687000L, experimentId='US3-Test_1208cfb3-e35c-4292-baed-4144e0bd8c7e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321684000L, experimentId='US3-Test_52d19085-2561-4d16-a7d0-fbcae7bde02b', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultras
can_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458307861000L, experimentId='US3-Test_4c9a9b91-c981-4991-93fd-6e443122ede4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458266120000L, experimentId='US3-ADEV_18729c6f-71b9-4f9e-9cf1-cdbf870ad7cf', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED',
description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458255972000L, experimentId='US3-Test_f381b939-4457-4085-bc50-6956bc9e0b88', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458253080000L, experimentId='US3-ADEV_fc7a0840-11ac-47e2-acf9-de3545718279', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(
userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458248599000L, experimentId='US3-ADEV_aff13af2-91cf-4f52-b692-9abf403f6c2a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458247957000L, experimentId='US3-ADEV_fd8c9fbd-1ad8-4ceb-bc0c-d38772da42a4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(use
rName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458246583000L, experimentId='US3-ADEV_97562db9-6837-4ba5-8ece-0c947402b946', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458246010000L, experimentId='US3-ADEV_a0a3189d-5343-4f2b-a493-8de237d792ad', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName
='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458228228000L, experimentId='US3-Test_b21c5c21-5374-4b4b-9a65-a380927957f5', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None)], completedExperiments=[ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468618483000L, experimentId='US3-AIRA_36f4788f-240b-4119-aaed-18926be8165c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_
098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468616186000L, experimentId='US3-AIRA_408946e3-6104-48b3-a9dc-27ec03f45cb2', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468615898000L, experimentId='US3-AIRA_270ed9fe-f0f9-4c00-936f-72c994cb2125', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel
_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468612459000L, experimentId='US3-AIRA_c23effff-bf70-4d77-968a-5982919eb3a0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468612433000L, experimentId='US3-AIRA_2e65cd86-b4f2-4514-99c2-68c6cec880f4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(use
rName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468612337000L, experimentId='US3-AIRA_22795aa0-20fe-43f9-9b1e-846c86b6cdb7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610911000L, experimentId='US3-AIRA_7e7faabc-405d-423f-8ed8-86015eff4cec', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummar
yModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610906000L, experimentId='US3-AIRA_d6cba9b9-4d47-400a-acda-dbe34497bc33', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610902000L, experimentId='US3-AIRA_35fd35da-9928-4640-8409-b0bb5d7ea9c9', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), Experimen
tSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610412000L, experimentId='US3-AIRA_689af84c-f35a-4794-8d93-374dbf04495a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610407000L, experimentId='US3-AIRA_70ed5d21-06d4-4b14-9644-a617b29d1a37', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), Ex
perimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610400000L, experimentId='US3-AIRA_fe34c64d-98ad-4234-bdc9-58912ecc8b96', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610396000L, experimentId='US3-AIRA_f62adf04-433a-4dee-9c0e-238ea9bfbe66', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=No
ne), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610205000L, experimentId='US3-AIRA_07bcc317-9d7c-462c-8345-5106f4b1af9c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468609413000L, experimentId='US3-AIRA_1431a2d9-2eec-41f3-9fcd-c6d4308dd3bb', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', descrip
tion=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468609364000L, experimentId='US3-AIRA_44938538-4755-4fb8-b381-1ac57e238cbf', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604424000L, experimentId='US3-AIRA_689ed852-d66f-4113-b96f-c80144ec19a5', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED
', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604255000L, experimentId='US3-AIRA_d321187a-3261-4c88-b0db-e893c122f071', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604226000L, experimentId='US3-AIRA_4f26c65d-10e7-4992-a6cb-c203e858fdef', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStat
us='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604193000L, experimentId='US3-AIRA_19e20c84-b955-40c6-a2e3-0397757fd645', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604151000L, experimentId='US3-AIRA_bb1807df-d9bf-42b1-bd9e-6eaf4349eed0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', e
xperimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468601894000L, experimentId='US3-AIRA_06f41a25-dbfa-4d65-b5cf-9fde477ef8fe', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599454000L, experimentId='US3-AIRA_400516b8-9168-44f9-8b66-9b061b230744', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_P
roduction', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599449000L, experimentId='US3-AIRA_8c295d53-9882-4d6e-940f-5d22032d8d5d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599444000L, experimentId='US3-AIRA_9c09c0f0-46f6-4373-b1a0-d9d1f98f2598', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId
='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599440000L, experimentId='US3-AIRA_14981e50-3231-4082-b75e-d08d5c0a72d6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599436000L, experimentId='US3-AIRA_9dd660c4-7336-40f2-9332-2d607723e1a8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e4
6', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598408000L, experimentId='US3-AIRA_95d6556c-85ab-44ae-9e0c-24fd2d3c3b3d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598403000L, experimentId='US3-AIRA_361f0b66-631b-4944-aeaa-cad18e4c0318', executionId='Ultrascan_0ed937f6-26af-4c54-806
4-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598397000L, experimentId='US3-AIRA_a743552d-a24b-4155-a2b7-ece3ecd07496', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598393000L, experimentId='US3-AIRA_e22ef29a-3e66-47b6-9565-9b3a3a0c93eb', executionId='Ultrascan_0ed937f6-
26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598390000L, experimentId='US3-AIRA_cc16161a-dc74-4afa-8394-178f8f78a330', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598204000L, experimentId='US3-AIRA_b922331e-bfea-4a0f-8bb1-89ac05f43444', executionId='Ultras
can_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598199000L, experimentId='US3-AIRA_b2a709e3-cb76-4571-a3ac-7c3c31fb7e38', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598195000L, experimentId='US3-AIRA_f33153a2-a2af-42df-8950-c409bd816ef3', execut
ionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598191000L, experimentId='US3-AIRA_b5dbf59c-e59b-47cd-9dec-eebfaaeaf481', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598188000L, experimentId='US3-AIRA_0df1e1aa-c0ed-4618-bd0b-34745c98
4e21', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468597273000L, experimentId='US3-AIRA_0b5dc791-eb6b-435e-9934-ee5d08f3c645', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468597270000L, experimentId='US3-AIRA_02424cbc-c198-4ddd-af2b-9
f418e3d485d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468597266000L, experimentId='US3-AIRA_b8cdfe35-a61b-4858-9e08-61b49c0b5c8e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468597261000L, experimentId='US3-AIRA_dfece700-f27f-42be
-aaf1-7b793f79e2df', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468540422000L, experimentId='US3-AIRA_a05e51be-8652-4dc6-aac9-03de2b417c82', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468540385000L, experimentId='US3-AIRA_e3dfb
d4b-4f4f-43c1-b3a8-e440aa9f926b', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468540346000L, experimentId='US3-AIRA_bcda009f-0d3d-40d6-af64-d2e7fd1560db', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468528060000L, experimentId='U
S3-AIRA_dc95f385-9c85-4bb6-8a43-c8d5c669f72d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468527995000L, experimentId='US3-AIRA_1d89633e-6f12-4f99-bbe4-67826d375573', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468527960000L, ex
perimentId='US3-AIRA_8a15af51-4165-4b05-a133-195bcbd7b2fa', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468527896000L, experimentId='US3-AIRA_e7015598-43a6-491e-a885-33be47e70ee5', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=14685
27856000L, experimentId='US3-AIRA_57f479ac-8216-4c0c-9456-d1558003b6c7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468527576000L, experimentId='US3-AIRA_49dc66bf-8686-4b00-b19e-ffaf3d41e3e7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTim
e=1468527571000L, experimentId='US3-AIRA_e19886fd-bb39-410d-8fdb-cc7a260af49f', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468527567000L, experimentId='US3-AIRA_95fcafec-92d1-464f-9626-94aed161c4d9', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', crea
tionTime=1468527564000L, experimentId='US3-AIRA_448d3a53-57e4-4d07-8168-bbc3a5a310f2', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468525461000L, experimentId='US3-AIRA_5832682b-b83f-48df-bf20-11145b40b81c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76
', creationTime=1468525456000L, experimentId='US3-AIRA_67681ac9-a675-44a2-8d83-5dfb86ccf43e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468525451000L, experimentId='US3-AIRA_3ca2543c-c4f8-4623-a603-d4dd138ea598', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366d
b32bd76', creationTime=1468525448000L, experimentId='US3-AIRA_f5a2c105-d8f9-4835-aefe-bca5b8548af9', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468522640000L, experimentId='US3-AIRA_79e9255d-d448-4a2a-9c90-d89ce11af845', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae7
6-8366db32bd76', creationTime=1468522630000L, experimentId='US3-AIRA_7ee94d4c-c64a-4e1c-a560-0221732d5d6c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468522618000L, experimentId='US3-AIRA_674fdf44-b88e-46a8-bc82-02e453978ff8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4
532-ae76-8366db32bd76', creationTime=1468522603000L, experimentId='US3-AIRA_150d91d6-9dbd-429f-825e-3ec98fd8df73', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468522282000L, experimentId='US3-AIRA_ebdd4299-8adb-4792-8843-8e037ab97ef8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e
1dede8-0925-47e6-b61c-966051287d37', creationTime=1468521671000L, experimentId='US3-AIRA_02308b49-bc1a-4956-8d69-65edc8f33d14', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468521477000L, experimentId='US3-AIRA_191cb1dd-cef4-4767-8093-525fc2a37667', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Defau
lt_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468520547000L, experimentId='US3-AIRA_bc7ac81d-adce-4912-ba4f-e4bd84ae830c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468520459000L, experimentId='US3-AIRA_ae4e1a1f-c7c3-4918-b927-94c0b9f60f92', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', pro
jectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468520359000L, experimentId='US3-AIRA_fd2c3457-1c1f-4545-a5f9-90454264f9da', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519283000L, experimentId='US3-AIRA_ec100087-9407-4960-9a0b-5cd77139fbe6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f
8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519147000L, experimentId='US3-AIRA_cb6512e5-b4fd-43a8-9b5b-3afa37eba212', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519115000L, experimentId='US3-AIRA_a7f62d62-82b6-49bb-9456-b3ff5899f91c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f
74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519041000L, experimentId='US3-AIRA_66f121ee-5a48-45c1-a962-105d5307683e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519014000L, experimentId='US3-AIRA_a00ddc5e-49a6-459c-8a3d-18a1a061fded', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd
67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468512271000L, experimentId='US3-AIRA_c3a8cd3f-a120-4c9c-9f21-91aa13665416', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468512244000L, experimentId='US3-AIRA_18295d19-5e3c-47c1-aeeb-5b1a31b903aa', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.u
texas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468512001000L, experimentId='US3-AIRA_daf97da2-8772-4567-96be-3bac3793bbae', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511997000L, experimentId='US3-AIRA_b7e642b0-419e-46a5-a231-f995747ba8d1', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostI
d='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511769000L, experimentId='US3-AIRA_06afba20-0c36-4344-919c-8fe43de5e2a6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511728000L, experimentId='US3-AIRA_9b396838-7893-4844-a569-f247f67fae65', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None,
resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511692000L, experimentId='US3-AIRA_1b1806f9-2513-440d-9b36-c1fe00cd965a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511657000L, experimentId='US3-AIRA_fbb618da-23f5-4c86-9898-866feeea621c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpda
teTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511625000L, experimentId='US3-AIRA_cb618df0-f0ce-42f6-862c-636b9979003e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468511287000L, experimentId='US3-AIRA_9e76ea93-db46-4ece-9e43-22490541f7de', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', sta
tusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468511282000L, experimentId='US3-AIRA_e3959aad-ce01-4ce2-9c35-afae4edc12f8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468511278000L, experimentId='US3-AIRA_ac88b8af-5359-4d2c-8e74-9c0a122c351a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIR
A', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468511274000L, experimentId='US3-AIRA_3cfbad94-b7d9-4a9d-b819-1809fabd9c73', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510422000L, experimentId='US3-AIRA_1feea8ed-45f0-40f5-9a67-5e67a840bbb0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed',
name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510416000L, experimentId='US3-AIRA_e3bc8bce-e854-4b0a-9ca2-b5dc513736a6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510411000L, experimentId='US3-AIRA_7b76426c-f994-4bed-8e04-eb048b8e3266', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-11
47783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510407000L, experimentId='US3-AIRA_c7061d63-4e37-4fd4-b132-f2294a6417aa', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510402000L, experimentId='US3-AIRA_63d73ec8-59fc-426e-80f0-b4eb56018bd3', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4
-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509534000L, experimentId='US3-AIRA_da2ceb24-b48b-4e65-9798-346c9662e1c6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509528000L, experimentId='US3-AIRA_b655a9b4-21a5-4737-ad9f-61300fbe63fb', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_
550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509522000L, experimentId='US3-AIRA_e512726d-838a-4f24-952f-a1c7df75c031', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509519000L, experimentId='US3-AIRA_97ca0744-2889-4811-aa74-0cc498827056', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Dan
iel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509514000L, experimentId='US3-AIRA_92fc260f-802f-4bde-b1a1-231a72949a06', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509298000L, experimentId='US3-AIRA_20566854-0426-47c0-94a2-2900b6b32512', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(
userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509292000L, experimentId='US3-AIRA_acfefd54-25f8-409b-aef0-1b6439cc38d6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509287000L, experimentId='US3-AIRA_b6695bd8-c812-42a4-99cf-abbaace99b9e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), Experiment
SummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509283000L, experimentId='US3-AIRA_607411fc-e47a-44d5-a6e1-d9124a2813cb', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509279000L, experimentId='US3-AIRA_269487a0-d9ab-47df-b702-3033e4fd55ed', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None
), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507580000L, experimentId='US3-AIRA_9c680c60-a955-46cc-8765-e7153402800a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507569000L, experimentId='US3-AIRA_f0f564e4-d7ec-44b8-90a1-536edf0fc2a7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', descripti
on=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507564000L, experimentId='US3-AIRA_b0c2ca2e-6a81-4547-b78e-e921b0edd789', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507559000L, experimentId='US3-AIRA_f17f6449-634b-415b-8143-2896ba66b29d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', d
<TRUNCATED>
[23/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/ttypes.py
new file mode 100644
index 0000000..629dba2
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/ttypes.py
@@ -0,0 +1,1426 @@
+#
+# 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.status.ttypes
+import apache.airavata.model.application.io.ttypes
+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 MessageLevel:
+ INFO = 0
+ DEBUG = 1
+ ERROR = 2
+ ACK = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "INFO",
+ 1: "DEBUG",
+ 2: "ERROR",
+ 3: "ACK",
+ }
+
+ _NAMES_TO_VALUES = {
+ "INFO": 0,
+ "DEBUG": 1,
+ "ERROR": 2,
+ "ACK": 3,
+ }
+
+class MessageType:
+ EXPERIMENT = 0
+ TASK = 1
+ PROCESS = 2
+ JOB = 3
+ LAUNCHPROCESS = 4
+ TERMINATEPROCESS = 5
+ PROCESSOUTPUT = 6
+
+ _VALUES_TO_NAMES = {
+ 0: "EXPERIMENT",
+ 1: "TASK",
+ 2: "PROCESS",
+ 3: "JOB",
+ 4: "LAUNCHPROCESS",
+ 5: "TERMINATEPROCESS",
+ 6: "PROCESSOUTPUT",
+ }
+
+ _NAMES_TO_VALUES = {
+ "EXPERIMENT": 0,
+ "TASK": 1,
+ "PROCESS": 2,
+ "JOB": 3,
+ "LAUNCHPROCESS": 4,
+ "TERMINATEPROCESS": 5,
+ "PROCESSOUTPUT": 6,
+ }
+
+
+class ExperimentStatusChangeEvent:
+ """
+ Attributes:
+ - state
+ - experimentId
+ - gatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRING, 'experimentId', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, experimentId=None, gatewayId=None,):
+ self.state = state
+ self.experimentId = experimentId
+ self.gatewayId = gatewayId
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = 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('ExperimentStatusChangeEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 2)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ 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 ProcessIdentifier:
+ """
+ Attributes:
+ - processId
+ - experimentId
+ - gatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'processId', None, None, ), # 1
+ (2, TType.STRING, 'experimentId', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ )
+
+ def __init__(self, processId=None, experimentId=None, gatewayId=None,):
+ self.processId = processId
+ self.experimentId = experimentId
+ self.gatewayId = gatewayId
+
+ 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.processId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = 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('ProcessIdentifier')
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 1)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 2)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ 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 TaskIdentifier:
+ """
+ Attributes:
+ - taskId
+ - processId
+ - experimentId
+ - gatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'taskId', None, None, ), # 1
+ (2, TType.STRING, 'processId', None, None, ), # 2
+ (3, TType.STRING, 'experimentId', None, None, ), # 3
+ (4, TType.STRING, 'gatewayId', None, None, ), # 4
+ )
+
+ def __init__(self, taskId=None, processId=None, experimentId=None, gatewayId=None,):
+ self.taskId = taskId
+ self.processId = processId
+ self.experimentId = experimentId
+ self.gatewayId = gatewayId
+
+ 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.taskId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.processId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.gatewayId = 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('TaskIdentifier')
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 1)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 2)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 3)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 4)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.taskId)
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ 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 TaskStatusChangeEvent:
+ """
+ Attributes:
+ - state
+ - taskIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'taskIdentity', (TaskIdentifier, TaskIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, taskIdentity=None,):
+ self.state = state
+ self.taskIdentity = taskIdentity
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.taskIdentity = TaskIdentifier()
+ self.taskIdentity.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('TaskStatusChangeEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.taskIdentity is not None:
+ oprot.writeFieldBegin('taskIdentity', TType.STRUCT, 2)
+ self.taskIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.taskIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field taskIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.taskIdentity)
+ 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 TaskStatusChangeRequestEvent:
+ """
+ Attributes:
+ - state
+ - taskIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'taskIdentity', (TaskIdentifier, TaskIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, taskIdentity=None,):
+ self.state = state
+ self.taskIdentity = taskIdentity
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.taskIdentity = TaskIdentifier()
+ self.taskIdentity.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('TaskStatusChangeRequestEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.taskIdentity is not None:
+ oprot.writeFieldBegin('taskIdentity', TType.STRUCT, 2)
+ self.taskIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.taskIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field taskIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.taskIdentity)
+ 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 ProcessStatusChangeEvent:
+ """
+ Attributes:
+ - state
+ - processIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'processIdentity', (ProcessIdentifier, ProcessIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, processIdentity=None,):
+ self.state = state
+ self.processIdentity = processIdentity
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.processIdentity = ProcessIdentifier()
+ self.processIdentity.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('ProcessStatusChangeEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.processIdentity is not None:
+ oprot.writeFieldBegin('processIdentity', TType.STRUCT, 2)
+ self.processIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.processIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field processIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.processIdentity)
+ 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 ProcessStatusChangeRequestEvent:
+ """
+ Attributes:
+ - state
+ - processIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'processIdentity', (ProcessIdentifier, ProcessIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, processIdentity=None,):
+ self.state = state
+ self.processIdentity = processIdentity
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.processIdentity = ProcessIdentifier()
+ self.processIdentity.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('ProcessStatusChangeRequestEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.processIdentity is not None:
+ oprot.writeFieldBegin('processIdentity', TType.STRUCT, 2)
+ self.processIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.processIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field processIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.processIdentity)
+ 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 TaskOutputChangeEvent:
+ """
+ Attributes:
+ - output
+ - taskIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.LIST, 'output', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 1
+ (2, TType.STRUCT, 'taskIdentity', (TaskIdentifier, TaskIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, output=None, taskIdentity=None,):
+ self.output = output
+ self.taskIdentity = taskIdentity
+
+ 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.LIST:
+ self.output = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem5.read(iprot)
+ self.output.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.taskIdentity = TaskIdentifier()
+ self.taskIdentity.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('TaskOutputChangeEvent')
+ if self.output is not None:
+ oprot.writeFieldBegin('output', TType.LIST, 1)
+ oprot.writeListBegin(TType.STRUCT, len(self.output))
+ for iter6 in self.output:
+ iter6.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.taskIdentity is not None:
+ oprot.writeFieldBegin('taskIdentity', TType.STRUCT, 2)
+ self.taskIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.output is None:
+ raise TProtocol.TProtocolException(message='Required field output is unset!')
+ if self.taskIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field taskIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.output)
+ value = (value * 31) ^ hash(self.taskIdentity)
+ 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 JobIdentifier:
+ """
+ Attributes:
+ - jobId
+ - taskId
+ - processId
+ - experimentId
+ - gatewayId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'jobId', None, None, ), # 1
+ (2, TType.STRING, 'taskId', None, None, ), # 2
+ (3, TType.STRING, 'processId', None, None, ), # 3
+ (4, TType.STRING, 'experimentId', None, None, ), # 4
+ (5, TType.STRING, 'gatewayId', None, None, ), # 5
+ )
+
+ def __init__(self, jobId=None, taskId=None, processId=None, experimentId=None, gatewayId=None,):
+ self.jobId = jobId
+ self.taskId = taskId
+ self.processId = processId
+ self.experimentId = experimentId
+ self.gatewayId = gatewayId
+
+ 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.jobId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.taskId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.processId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.gatewayId = 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('JobIdentifier')
+ if self.jobId is not None:
+ oprot.writeFieldBegin('jobId', TType.STRING, 1)
+ oprot.writeString(self.jobId)
+ oprot.writeFieldEnd()
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 2)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 3)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 4)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 5)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobId is None:
+ raise TProtocol.TProtocolException(message='Required field jobId is unset!')
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobId)
+ value = (value * 31) ^ hash(self.taskId)
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ 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 ProcessSubmitEvent:
+ """
+ Attributes:
+ - processId
+ - gatewayId
+ - experimentId
+ - tokenId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'processId', None, None, ), # 1
+ (2, TType.STRING, 'gatewayId', None, None, ), # 2
+ (3, TType.STRING, 'experimentId', None, None, ), # 3
+ (4, TType.STRING, 'tokenId', None, None, ), # 4
+ )
+
+ def __init__(self, processId=None, gatewayId=None, experimentId=None, tokenId=None,):
+ self.processId = processId
+ self.gatewayId = gatewayId
+ self.experimentId = experimentId
+ self.tokenId = tokenId
+
+ 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.processId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.tokenId = 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('ProcessSubmitEvent')
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 1)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 3)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.tokenId is not None:
+ oprot.writeFieldBegin('tokenId', TType.STRING, 4)
+ oprot.writeString(self.tokenId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.tokenId is None:
+ raise TProtocol.TProtocolException(message='Required field tokenId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.tokenId)
+ 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 ProcessTerminateEvent:
+ """
+ Attributes:
+ - processId
+ - gatewayId
+ - tokenId
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'processId', None, None, ), # 1
+ (2, TType.STRING, 'gatewayId', None, None, ), # 2
+ (3, TType.STRING, 'tokenId', None, None, ), # 3
+ )
+
+ def __init__(self, processId=None, gatewayId=None, tokenId=None,):
+ self.processId = processId
+ self.gatewayId = gatewayId
+ self.tokenId = tokenId
+
+ 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.processId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.tokenId = 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('ProcessTerminateEvent')
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 1)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.tokenId is not None:
+ oprot.writeFieldBegin('tokenId', TType.STRING, 3)
+ oprot.writeString(self.tokenId)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.tokenId is None:
+ raise TProtocol.TProtocolException(message='Required field tokenId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.tokenId)
+ 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 JobStatusChangeEvent:
+ """
+ Attributes:
+ - state
+ - jobIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'jobIdentity', (JobIdentifier, JobIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, jobIdentity=None,):
+ self.state = state
+ self.jobIdentity = jobIdentity
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.jobIdentity = JobIdentifier()
+ self.jobIdentity.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('JobStatusChangeEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.jobIdentity is not None:
+ oprot.writeFieldBegin('jobIdentity', TType.STRUCT, 2)
+ self.jobIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.jobIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field jobIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.jobIdentity)
+ 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 JobStatusChangeRequestEvent:
+ """
+ Attributes:
+ - state
+ - jobIdentity
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.STRUCT, 'jobIdentity', (JobIdentifier, JobIdentifier.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, state=None, jobIdentity=None,):
+ self.state = state
+ self.jobIdentity = jobIdentity
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.jobIdentity = JobIdentifier()
+ self.jobIdentity.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('JobStatusChangeRequestEvent')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.jobIdentity is not None:
+ oprot.writeFieldBegin('jobIdentity', TType.STRUCT, 2)
+ self.jobIdentity.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ if self.jobIdentity is None:
+ raise TProtocol.TProtocolException(message='Required field jobIdentity is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.jobIdentity)
+ 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 Message:
+ """
+ Attributes:
+ - event
+ - messageId
+ - messageType
+ - updatedTime
+ - messageLevel
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'event', None, None, ), # 1
+ (2, TType.STRING, 'messageId', None, "DO_NOT_SET_AT_CLIENTS", ), # 2
+ (3, TType.I32, 'messageType', None, None, ), # 3
+ (4, TType.I64, 'updatedTime', None, None, ), # 4
+ (5, TType.I32, 'messageLevel', None, None, ), # 5
+ )
+
+ def __init__(self, event=None, messageId=thrift_spec[2][4], messageType=None, updatedTime=None, messageLevel=None,):
+ self.event = event
+ self.messageId = messageId
+ self.messageType = messageType
+ self.updatedTime = updatedTime
+ self.messageLevel = messageLevel
+
+ 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.event = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.messageId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.messageType = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.updatedTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.messageLevel = 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('Message')
+ if self.event is not None:
+ oprot.writeFieldBegin('event', TType.STRING, 1)
+ oprot.writeString(self.event)
+ oprot.writeFieldEnd()
+ if self.messageId is not None:
+ oprot.writeFieldBegin('messageId', TType.STRING, 2)
+ oprot.writeString(self.messageId)
+ oprot.writeFieldEnd()
+ if self.messageType is not None:
+ oprot.writeFieldBegin('messageType', TType.I32, 3)
+ oprot.writeI32(self.messageType)
+ oprot.writeFieldEnd()
+ if self.updatedTime is not None:
+ oprot.writeFieldBegin('updatedTime', TType.I64, 4)
+ oprot.writeI64(self.updatedTime)
+ oprot.writeFieldEnd()
+ if self.messageLevel is not None:
+ oprot.writeFieldBegin('messageLevel', TType.I32, 5)
+ oprot.writeI32(self.messageLevel)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.event is None:
+ raise TProtocol.TProtocolException(message='Required field event is unset!')
+ if self.messageId is None:
+ raise TProtocol.TProtocolException(message='Required field messageId is unset!')
+ if self.messageType is None:
+ raise TProtocol.TProtocolException(message='Required field messageType is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.event)
+ value = (value * 31) ^ hash(self.messageId)
+ value = (value * 31) ^ hash(self.messageType)
+ value = (value * 31) ^ hash(self.updatedTime)
+ value = (value * 31) ^ hash(self.messageLevel)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/ttypes.pyc
new file mode 100644
index 0000000..9f2282a
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/__init__.pyc
new file mode 100644
index 0000000..fcb805d
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/ttypes.py
new file mode 100644
index 0000000..10104e4
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/ttypes.py
@@ -0,0 +1,360 @@
+#
+# 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
+import apache.airavata.model.status.ttypes
+import apache.airavata.model.task.ttypes
+import apache.airavata.model.application.io.ttypes
+import apache.airavata.model.scheduling.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class ProcessModel:
+ """
+ ProcessModel: A structure holding the process details. The infromation is derived based on user provided
+ configuration data or system inferred information from scheduling and QoS parameters.
+
+ processDetail:
+ A friendly description of the process, usally used to communicate information to users.
+
+
+
+ Attributes:
+ - processId
+ - experimentId
+ - creationTime
+ - lastUpdateTime
+ - processStatus
+ - processDetail
+ - applicationInterfaceId
+ - applicationDeploymentId
+ - computeResourceId
+ - processInputs
+ - processOutputs
+ - resourceSchedule
+ - tasks
+ - taskDag
+ - processError
+ - gatewayExecutionId
+ - enableEmailNotification
+ - emailAddresses
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'processId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'experimentId', None, None, ), # 2
+ (3, TType.I64, 'creationTime', None, None, ), # 3
+ (4, TType.I64, 'lastUpdateTime', None, None, ), # 4
+ (5, TType.STRUCT, 'processStatus', (apache.airavata.model.status.ttypes.ProcessStatus, apache.airavata.model.status.ttypes.ProcessStatus.thrift_spec), None, ), # 5
+ (6, TType.STRING, 'processDetail', None, None, ), # 6
+ (7, TType.STRING, 'applicationInterfaceId', None, None, ), # 7
+ (8, TType.STRING, 'applicationDeploymentId', None, None, ), # 8
+ (9, TType.STRING, 'computeResourceId', None, None, ), # 9
+ (10, TType.LIST, 'processInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 10
+ (11, TType.LIST, 'processOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 11
+ (12, TType.STRUCT, 'resourceSchedule', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 12
+ (13, TType.LIST, 'tasks', (TType.STRUCT,(apache.airavata.model.task.ttypes.TaskModel, apache.airavata.model.task.ttypes.TaskModel.thrift_spec)), None, ), # 13
+ (14, TType.STRING, 'taskDag', None, None, ), # 14
+ (15, TType.STRUCT, 'processError', (apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec), None, ), # 15
+ (16, TType.STRING, 'gatewayExecutionId', None, None, ), # 16
+ (17, TType.BOOL, 'enableEmailNotification', None, None, ), # 17
+ (18, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 18
+ )
+
+ def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatus=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, resourceSchedule=None, tasks=None, taskDag=None, processError=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None,):
+ self.processId = processId
+ self.experimentId = experimentId
+ self.creationTime = creationTime
+ self.lastUpdateTime = lastUpdateTime
+ self.processStatus = processStatus
+ self.processDetail = processDetail
+ self.applicationInterfaceId = applicationInterfaceId
+ self.applicationDeploymentId = applicationDeploymentId
+ self.computeResourceId = computeResourceId
+ self.processInputs = processInputs
+ self.processOutputs = processOutputs
+ self.resourceSchedule = resourceSchedule
+ self.tasks = tasks
+ self.taskDag = taskDag
+ self.processError = processError
+ self.gatewayExecutionId = gatewayExecutionId
+ self.enableEmailNotification = enableEmailNotification
+ self.emailAddresses = emailAddresses
+
+ 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.processId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.experimentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.lastUpdateTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRUCT:
+ self.processStatus = apache.airavata.model.status.ttypes.ProcessStatus()
+ self.processStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.processDetail = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.applicationInterfaceId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.applicationDeploymentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.computeResourceId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.processInputs = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ _elem5.read(iprot)
+ self.processInputs.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.LIST:
+ self.processOutputs = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem11.read(iprot)
+ self.processOutputs.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.STRUCT:
+ self.resourceSchedule = apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
+ self.resourceSchedule.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.LIST:
+ self.tasks = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = apache.airavata.model.task.ttypes.TaskModel()
+ _elem17.read(iprot)
+ self.tasks.append(_elem17)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.STRING:
+ self.taskDag = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 15:
+ if ftype == TType.STRUCT:
+ self.processError = apache.airavata.model.commons.ttypes.ErrorModel()
+ self.processError.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 16:
+ if ftype == TType.STRING:
+ self.gatewayExecutionId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 17:
+ if ftype == TType.BOOL:
+ self.enableEmailNotification = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 18:
+ if ftype == TType.LIST:
+ self.emailAddresses = []
+ (_etype21, _size18) = iprot.readListBegin()
+ for _i22 in xrange(_size18):
+ _elem23 = iprot.readString();
+ self.emailAddresses.append(_elem23)
+ 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('ProcessModel')
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 1)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 2)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 3)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastUpdateTime is not None:
+ oprot.writeFieldBegin('lastUpdateTime', TType.I64, 4)
+ oprot.writeI64(self.lastUpdateTime)
+ oprot.writeFieldEnd()
+ if self.processStatus is not None:
+ oprot.writeFieldBegin('processStatus', TType.STRUCT, 5)
+ self.processStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.processDetail is not None:
+ oprot.writeFieldBegin('processDetail', TType.STRING, 6)
+ oprot.writeString(self.processDetail)
+ oprot.writeFieldEnd()
+ if self.applicationInterfaceId is not None:
+ oprot.writeFieldBegin('applicationInterfaceId', TType.STRING, 7)
+ oprot.writeString(self.applicationInterfaceId)
+ oprot.writeFieldEnd()
+ if self.applicationDeploymentId is not None:
+ oprot.writeFieldBegin('applicationDeploymentId', TType.STRING, 8)
+ oprot.writeString(self.applicationDeploymentId)
+ oprot.writeFieldEnd()
+ if self.computeResourceId is not None:
+ oprot.writeFieldBegin('computeResourceId', TType.STRING, 9)
+ oprot.writeString(self.computeResourceId)
+ oprot.writeFieldEnd()
+ if self.processInputs is not None:
+ oprot.writeFieldBegin('processInputs', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.processInputs))
+ for iter24 in self.processInputs:
+ iter24.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.processOutputs is not None:
+ oprot.writeFieldBegin('processOutputs', TType.LIST, 11)
+ oprot.writeListBegin(TType.STRUCT, len(self.processOutputs))
+ for iter25 in self.processOutputs:
+ iter25.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.resourceSchedule is not None:
+ oprot.writeFieldBegin('resourceSchedule', TType.STRUCT, 12)
+ self.resourceSchedule.write(oprot)
+ oprot.writeFieldEnd()
+ if self.tasks is not None:
+ oprot.writeFieldBegin('tasks', TType.LIST, 13)
+ oprot.writeListBegin(TType.STRUCT, len(self.tasks))
+ for iter26 in self.tasks:
+ iter26.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.taskDag is not None:
+ oprot.writeFieldBegin('taskDag', TType.STRING, 14)
+ oprot.writeString(self.taskDag)
+ oprot.writeFieldEnd()
+ if self.processError is not None:
+ oprot.writeFieldBegin('processError', TType.STRUCT, 15)
+ self.processError.write(oprot)
+ oprot.writeFieldEnd()
+ if self.gatewayExecutionId is not None:
+ oprot.writeFieldBegin('gatewayExecutionId', TType.STRING, 16)
+ oprot.writeString(self.gatewayExecutionId)
+ oprot.writeFieldEnd()
+ if self.enableEmailNotification is not None:
+ oprot.writeFieldBegin('enableEmailNotification', TType.BOOL, 17)
+ oprot.writeBool(self.enableEmailNotification)
+ oprot.writeFieldEnd()
+ if self.emailAddresses is not None:
+ oprot.writeFieldBegin('emailAddresses', TType.LIST, 18)
+ oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
+ for iter27 in self.emailAddresses:
+ oprot.writeString(iter27)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastUpdateTime)
+ value = (value * 31) ^ hash(self.processStatus)
+ value = (value * 31) ^ hash(self.processDetail)
+ value = (value * 31) ^ hash(self.applicationInterfaceId)
+ value = (value * 31) ^ hash(self.applicationDeploymentId)
+ value = (value * 31) ^ hash(self.computeResourceId)
+ value = (value * 31) ^ hash(self.processInputs)
+ value = (value * 31) ^ hash(self.processOutputs)
+ value = (value * 31) ^ hash(self.resourceSchedule)
+ value = (value * 31) ^ hash(self.tasks)
+ value = (value * 31) ^ hash(self.taskDag)
+ value = (value * 31) ^ hash(self.processError)
+ value = (value * 31) ^ hash(self.gatewayExecutionId)
+ value = (value * 31) ^ hash(self.enableEmailNotification)
+ value = (value * 31) ^ hash(self.emailAddresses)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/ttypes.pyc
new file mode 100644
index 0000000..0cd8bc7
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/process/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__init__.pyc
new file mode 100644
index 0000000..2a22351
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..80348a6
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__pycache__/ttypes.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__pycache__/ttypes.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__pycache__/ttypes.cpython-35.pyc
new file mode 100644
index 0000000..5fec2a5
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/__pycache__/ttypes.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/ttypes.py
new file mode 100644
index 0000000..a793f22
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/ttypes.py
@@ -0,0 +1,191 @@
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class ComputationalResourceSchedulingModel:
+ """
+ ComputationalResourceSchedulingModel:
+
+
+
+ Attributes:
+ - resourceHostId
+ - totalCPUCount
+ - nodeCount
+ - numberOfThreads
+ - queueName
+ - wallTimeLimit
+ - totalPhysicalMemory
+ - chessisNumber
+ - staticWorkingDir
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'resourceHostId', None, None, ), # 1
+ (2, TType.I32, 'totalCPUCount', None, None, ), # 2
+ (3, TType.I32, 'nodeCount', None, None, ), # 3
+ (4, TType.I32, 'numberOfThreads', None, None, ), # 4
+ (5, TType.STRING, 'queueName', None, None, ), # 5
+ (6, TType.I32, 'wallTimeLimit', None, None, ), # 6
+ (7, TType.I32, 'totalPhysicalMemory', None, None, ), # 7
+ (8, TType.STRING, 'chessisNumber', None, None, ), # 8
+ (9, TType.STRING, 'staticWorkingDir', None, None, ), # 9
+ )
+
+ def __init__(self, resourceHostId=None, totalCPUCount=None, nodeCount=None, numberOfThreads=None, queueName=None, wallTimeLimit=None, totalPhysicalMemory=None, chessisNumber=None, staticWorkingDir=None,):
+ self.resourceHostId = resourceHostId
+ self.totalCPUCount = totalCPUCount
+ self.nodeCount = nodeCount
+ self.numberOfThreads = numberOfThreads
+ self.queueName = queueName
+ self.wallTimeLimit = wallTimeLimit
+ self.totalPhysicalMemory = totalPhysicalMemory
+ self.chessisNumber = chessisNumber
+ self.staticWorkingDir = staticWorkingDir
+
+ 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.resourceHostId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.totalCPUCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.nodeCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.numberOfThreads = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.queueName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I32:
+ self.wallTimeLimit = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I32:
+ self.totalPhysicalMemory = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.chessisNumber = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.staticWorkingDir = 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('ComputationalResourceSchedulingModel')
+ if self.resourceHostId is not None:
+ oprot.writeFieldBegin('resourceHostId', TType.STRING, 1)
+ oprot.writeString(self.resourceHostId)
+ oprot.writeFieldEnd()
+ if self.totalCPUCount is not None:
+ oprot.writeFieldBegin('totalCPUCount', TType.I32, 2)
+ oprot.writeI32(self.totalCPUCount)
+ oprot.writeFieldEnd()
+ if self.nodeCount is not None:
+ oprot.writeFieldBegin('nodeCount', TType.I32, 3)
+ oprot.writeI32(self.nodeCount)
+ oprot.writeFieldEnd()
+ if self.numberOfThreads is not None:
+ oprot.writeFieldBegin('numberOfThreads', TType.I32, 4)
+ oprot.writeI32(self.numberOfThreads)
+ oprot.writeFieldEnd()
+ if self.queueName is not None:
+ oprot.writeFieldBegin('queueName', TType.STRING, 5)
+ oprot.writeString(self.queueName)
+ oprot.writeFieldEnd()
+ if self.wallTimeLimit is not None:
+ oprot.writeFieldBegin('wallTimeLimit', TType.I32, 6)
+ oprot.writeI32(self.wallTimeLimit)
+ oprot.writeFieldEnd()
+ if self.totalPhysicalMemory is not None:
+ oprot.writeFieldBegin('totalPhysicalMemory', TType.I32, 7)
+ oprot.writeI32(self.totalPhysicalMemory)
+ oprot.writeFieldEnd()
+ if self.chessisNumber is not None:
+ oprot.writeFieldBegin('chessisNumber', TType.STRING, 8)
+ oprot.writeString(self.chessisNumber)
+ oprot.writeFieldEnd()
+ if self.staticWorkingDir is not None:
+ oprot.writeFieldBegin('staticWorkingDir', TType.STRING, 9)
+ oprot.writeString(self.staticWorkingDir)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.resourceHostId)
+ value = (value * 31) ^ hash(self.totalCPUCount)
+ value = (value * 31) ^ hash(self.nodeCount)
+ value = (value * 31) ^ hash(self.numberOfThreads)
+ value = (value * 31) ^ hash(self.queueName)
+ value = (value * 31) ^ hash(self.wallTimeLimit)
+ value = (value * 31) ^ hash(self.totalPhysicalMemory)
+ value = (value * 31) ^ hash(self.chessisNumber)
+ value = (value * 31) ^ hash(self.staticWorkingDir)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/ttypes.pyc
new file mode 100644
index 0000000..6d883db
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/scheduling/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/__init__.pyc
new file mode 100644
index 0000000..6193f08
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/ttypes.py
new file mode 100644
index 0000000..35540cf
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/ttypes.py
@@ -0,0 +1,108 @@
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class AuthzToken:
+ """
+ Attributes:
+ - accessToken
+ - claimsMap
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'accessToken', None, None, ), # 1
+ (2, TType.MAP, 'claimsMap', (TType.STRING,None,TType.STRING,None), None, ), # 2
+ )
+
+ def __init__(self, accessToken=None, claimsMap=None,):
+ self.accessToken = accessToken
+ self.claimsMap = claimsMap
+
+ 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.accessToken = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.MAP:
+ self.claimsMap = {}
+ (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
+ for _i4 in xrange(_size0):
+ _key5 = iprot.readString();
+ _val6 = iprot.readString();
+ self.claimsMap[_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('AuthzToken')
+ if self.accessToken is not None:
+ oprot.writeFieldBegin('accessToken', TType.STRING, 1)
+ oprot.writeString(self.accessToken)
+ oprot.writeFieldEnd()
+ if self.claimsMap is not None:
+ oprot.writeFieldBegin('claimsMap', TType.MAP, 2)
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.claimsMap))
+ for kiter7,viter8 in self.claimsMap.items():
+ oprot.writeString(kiter7)
+ oprot.writeString(viter8)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.accessToken is None:
+ raise TProtocol.TProtocolException(message='Required field accessToken is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.accessToken)
+ value = (value * 31) ^ hash(self.claimsMap)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/ttypes.pyc
new file mode 100644
index 0000000..3e304d6
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/security/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__init__.pyc
new file mode 100644
index 0000000..d8c5a8c
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..a21b666
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__pycache__/ttypes.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__pycache__/ttypes.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__pycache__/ttypes.cpython-35.pyc
new file mode 100644
index 0000000..d58a934
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/__pycache__/ttypes.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
[17/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
adding jupyter note books for Airavata
Project: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/commit/75eb96c2
Tree: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/tree/75eb96c2
Diff: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/diff/75eb96c2
Branch: refs/heads/master
Commit: 75eb96c24e15536c88439472fa04b1e68995090c
Parents: 4231ac3
Author: Pradyut Madhavaram <pr...@gmail.com>
Authored: Fri Aug 5 11:13:47 2016 -0400
Committer: Pradyut Madhavaram <pr...@gmail.com>
Committed: Fri Aug 5 11:13:47 2016 -0400
----------------------------------------------------------------------
.../Admin-User/appcatalog/__init__.py | 1 +
.../Admin-User/appcatalog/__init__.pyc | Bin 0 -> 142 bytes
.../Admin-User/appcatalog/appcatalog.py | 72 +
.../Admin-User/appcatalog/appcatalog.pyc | Bin 0 -> 3353 bytes
.../Admin-User/cli.properties | 19 +
.../Admin-User/expcatalog/__init__.py | 1 +
.../Admin-User/expcatalog/__init__.pyc | Bin 0 -> 142 bytes
.../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 164 bytes
.../__pycache__/expcatalog.cpython-35.pyc | Bin 0 -> 7305 bytes
.../Admin-User/expcatalog/expcatalog.py | 187 +
.../Admin-User/expcatalog/expcatalog.pyc | Bin 0 -> 7932 bytes
.../Admin-User/thrift/TSCons.py | 35 +
.../Admin-User/thrift/TSerialization.py | 38 +
.../Admin-User/thrift/TTornado.py | 153 +
.../Admin-User/thrift/Thrift.py | 170 +
.../Admin-User/thrift/Thrift.pyc | Bin 0 -> 4886 bytes
.../Admin-User/thrift/__init__.py | 20 +
.../Admin-User/thrift/__init__.pyc | Bin 0 -> 151 bytes
.../Admin-User/thrift/protocol/TBase.py | 81 +
.../thrift/protocol/TBinaryProtocol.py | 261 +
.../thrift/protocol/TBinaryProtocol.pyc | Bin 0 -> 10448 bytes
.../thrift/protocol/TCompactProtocol.py | 405 +
.../Admin-User/thrift/protocol/TJSONProtocol.py | 552 +
.../Admin-User/thrift/protocol/TProtocol.py | 406 +
.../Admin-User/thrift/protocol/TProtocol.pyc | Bin 0 -> 13517 bytes
.../Admin-User/thrift/protocol/__init__.py | 20 +
.../Admin-User/thrift/protocol/__init__.pyc | Bin 0 -> 248 bytes
.../Admin-User/thrift/protocol/fastbinary.c | 1219 +
.../Admin-User/thrift/server/THttpServer.py | 87 +
.../thrift/server/TNonblockingServer.py | 346 +
.../thrift/server/TProcessPoolServer.py | 118 +
.../Admin-User/thrift/server/TServer.py | 269 +
.../Admin-User/thrift/server/__init__.py | 20 +
.../Admin-User/thrift/transport/THttpClient.py | 147 +
.../Admin-User/thrift/transport/TSSLSocket.py | 214 +
.../Admin-User/thrift/transport/TSSLSocket.pyc | Bin 0 -> 6546 bytes
.../Admin-User/thrift/transport/TSocket.py | 176 +
.../Admin-User/thrift/transport/TSocket.pyc | Bin 0 -> 5512 bytes
.../Admin-User/thrift/transport/TTransport.py | 330 +
.../Admin-User/thrift/transport/TTransport.pyc | Bin 0 -> 12858 bytes
.../Admin-User/thrift/transport/TTwisted.py | 221 +
.../thrift/transport/TZlibTransport.py | 249 +
.../Admin-User/thrift/transport/__init__.py | 20 +
.../Admin-User/thrift/transport/__init__.pyc | Bin 0 -> 207 bytes
.../create-experiment-checkpoint.ipynb | 449 +
.../create-experiment/__init__.py | 0
.../create-experiment/apache/__init__.py | 0
.../create-experiment/apache/__init__.pyc | Bin 0 -> 105 bytes
.../apache/airavata/__init__.py | 0
.../apache/airavata/__init__.pyc | Bin 0 -> 114 bytes
.../apache/airavata/api/Airavata-remote | 1130 +
.../apache/airavata/api/Airavata.py | 47815 +++++++++++++++++
.../apache/airavata/api/Airavata.pyc | Bin 0 -> 1517997 bytes
.../apache/airavata/api/__init__.py | 1 +
.../apache/airavata/api/__init__.pyc | Bin 0 -> 183 bytes
.../apache/airavata/api/constants.py | 12 +
.../apache/airavata/api/error/__init__.py | 1 +
.../apache/airavata/api/error/__init__.pyc | Bin 0 -> 173 bytes
.../apache/airavata/api/error/constants.py | 11 +
.../apache/airavata/api/error/ttypes.py | 940 +
.../apache/airavata/api/error/ttypes.pyc | Bin 0 -> 34089 bytes
.../apache/airavata/api/ttypes.py | 37 +
.../apache/airavata/api/ttypes.pyc | Bin 0 -> 1600 bytes
.../apache/airavata/model/__init__.py | 1 +
.../apache/airavata/model/__init__.pyc | Bin 0 -> 169 bytes
.../airavata/model/appcatalog/__init__.py | 0
.../airavata/model/appcatalog/__init__.pyc | Bin 0 -> 131 bytes
.../model/appcatalog/appdeployment/__init__.py | 1 +
.../model/appcatalog/appdeployment/__init__.pyc | Bin 0 -> 194 bytes
.../model/appcatalog/appdeployment/constants.py | 11 +
.../model/appcatalog/appdeployment/ttypes.py | 634 +
.../model/appcatalog/appdeployment/ttypes.pyc | Bin 0 -> 20381 bytes
.../model/appcatalog/appinterface/__init__.py | 1 +
.../model/appcatalog/appinterface/__init__.pyc | Bin 0 -> 193 bytes
.../model/appcatalog/appinterface/constants.py | 11 +
.../model/appcatalog/appinterface/ttypes.py | 219 +
.../model/appcatalog/appinterface/ttypes.pyc | Bin 0 -> 7414 bytes
.../appcatalog/computeresource/__init__.py | 1 +
.../appcatalog/computeresource/__init__.pyc | Bin 0 -> 196 bytes
.../appcatalog/computeresource/constants.py | 11 +
.../model/appcatalog/computeresource/ttypes.py | 1640 +
.../model/appcatalog/computeresource/ttypes.pyc | Bin 0 -> 50576 bytes
.../model/appcatalog/gatewayprofile/__init__.py | 1 +
.../appcatalog/gatewayprofile/__init__.pyc | Bin 0 -> 195 bytes
.../appcatalog/gatewayprofile/constants.py | 11 +
.../model/appcatalog/gatewayprofile/ttypes.py | 512 +
.../model/appcatalog/gatewayprofile/ttypes.pyc | Bin 0 -> 16903 bytes
.../model/appcatalog/parallelism/__init__.py | 1 +
.../model/appcatalog/parallelism/__init__.pyc | Bin 0 -> 192 bytes
.../model/appcatalog/parallelism/constants.py | 11 +
.../model/appcatalog/parallelism/ttypes.py | 60 +
.../model/appcatalog/parallelism/ttypes.pyc | Bin 0 -> 1372 bytes
.../appcatalog/storageresource/__init__.py | 1 +
.../appcatalog/storageresource/__init__.pyc | Bin 0 -> 196 bytes
.../appcatalog/storageresource/constants.py | 11 +
.../model/appcatalog/storageresource/ttypes.py | 167 +
.../model/appcatalog/storageresource/ttypes.pyc | Bin 0 -> 6028 bytes
.../airavata/model/application/__init__.py | 0
.../airavata/model/application/__init__.pyc | Bin 0 -> 132 bytes
.../airavata/model/application/io/__init__.py | 1 +
.../airavata/model/application/io/__init__.pyc | Bin 0 -> 184 bytes
.../airavata/model/application/io/constants.py | 11 +
.../airavata/model/application/io/ttypes.py | 510 +
.../airavata/model/application/io/ttypes.pyc | Bin 0 -> 14257 bytes
.../apache/airavata/model/commons/__init__.py | 1 +
.../apache/airavata/model/commons/__init__.pyc | Bin 0 -> 177 bytes
.../apache/airavata/model/commons/constants.py | 12 +
.../apache/airavata/model/commons/ttypes.py | 335 +
.../apache/airavata/model/commons/ttypes.pyc | Bin 0 -> 11641 bytes
.../apache/airavata/model/constants.py | 11 +
.../apache/airavata/model/data/__init__.py | 0
.../apache/airavata/model/data/__init__.pyc | Bin 0 -> 125 bytes
.../airavata/model/data/movement/__init__.py | 1 +
.../airavata/model/data/movement/__init__.pyc | Bin 0 -> 183 bytes
.../airavata/model/data/movement/constants.py | 11 +
.../airavata/model/data/movement/ttypes.py | 625 +
.../airavata/model/data/movement/ttypes.pyc | Bin 0 -> 20859 bytes
.../airavata/model/data/product/__init__.py | 1 +
.../airavata/model/data/product/constants.py | 11 +
.../airavata/model/data/product/ttypes.py | 549 +
.../airavata/model/data/replica/__init__.py | 1 +
.../airavata/model/data/replica/__init__.pyc | Bin 0 -> 182 bytes
.../airavata/model/data/replica/constants.py | 11 +
.../airavata/model/data/replica/ttypes.py | 511 +
.../airavata/model/data/replica/ttypes.pyc | Bin 0 -> 14489 bytes
.../airavata/model/data/resource/__init__.py | 1 +
.../airavata/model/data/resource/constants.py | 11 +
.../airavata/model/data/resource/ttypes.py | 535 +
.../airavata/model/experiment/__init__.py | 1 +
.../airavata/model/experiment/__init__.pyc | Bin 0 -> 180 bytes
.../airavata/model/experiment/constants.py | 11 +
.../apache/airavata/model/experiment/ttypes.py | 1111 +
.../apache/airavata/model/experiment/ttypes.pyc | Bin 0 -> 32151 bytes
.../apache/airavata/model/group/__init__.py | 1 +
.../apache/airavata/model/group/__init__.pyc | Bin 0 -> 175 bytes
.../apache/airavata/model/group/constants.py | 11 +
.../apache/airavata/model/group/ttypes.py | 179 +
.../apache/airavata/model/group/ttypes.pyc | Bin 0 -> 5482 bytes
.../apache/airavata/model/job/__init__.py | 1 +
.../apache/airavata/model/job/__init__.pyc | Bin 0 -> 173 bytes
.../apache/airavata/model/job/constants.py | 11 +
.../apache/airavata/model/job/ttypes.py | 237 +
.../apache/airavata/model/job/ttypes.pyc | Bin 0 -> 7071 bytes
.../apache/airavata/model/messaging/__init__.py | 0
.../airavata/model/messaging/__init__.pyc | Bin 0 -> 130 bytes
.../airavata/model/messaging/event/__init__.py | 1 +
.../airavata/model/messaging/event/__init__.pyc | Bin 0 -> 185 bytes
.../airavata/model/messaging/event/constants.py | 11 +
.../airavata/model/messaging/event/ttypes.py | 1426 +
.../airavata/model/messaging/event/ttypes.pyc | Bin 0 -> 48557 bytes
.../apache/airavata/model/process/__init__.py | 1 +
.../apache/airavata/model/process/__init__.pyc | Bin 0 -> 177 bytes
.../apache/airavata/model/process/constants.py | 11 +
.../apache/airavata/model/process/ttypes.py | 425 +
.../apache/airavata/model/process/ttypes.pyc | Bin 0 -> 12365 bytes
.../airavata/model/scheduling/__init__.py | 1 +
.../airavata/model/scheduling/__init__.pyc | Bin 0 -> 180 bytes
.../airavata/model/scheduling/constants.py | 11 +
.../apache/airavata/model/scheduling/ttypes.py | 230 +
.../apache/airavata/model/scheduling/ttypes.pyc | Bin 0 -> 6698 bytes
.../apache/airavata/model/security/__init__.py | 1 +
.../apache/airavata/model/security/__init__.pyc | Bin 0 -> 178 bytes
.../apache/airavata/model/security/constants.py | 11 +
.../apache/airavata/model/security/ttypes.py | 108 +
.../apache/airavata/model/security/ttypes.pyc | Bin 0 -> 4142 bytes
.../apache/airavata/model/status/__init__.py | 1 +
.../apache/airavata/model/status/__init__.pyc | Bin 0 -> 176 bytes
.../apache/airavata/model/status/constants.py | 11 +
.../apache/airavata/model/status/ttypes.py | 542 +
.../apache/airavata/model/status/ttypes.pyc | Bin 0 -> 15977 bytes
.../apache/airavata/model/task/__init__.py | 1 +
.../apache/airavata/model/task/__init__.pyc | Bin 0 -> 174 bytes
.../apache/airavata/model/task/constants.py | 11 +
.../apache/airavata/model/task/ttypes.py | 703 +
.../apache/airavata/model/task/ttypes.pyc | Bin 0 -> 22730 bytes
.../apache/airavata/model/ttypes.py | 34 +
.../apache/airavata/model/ttypes.pyc | Bin 0 -> 1350 bytes
.../apache/airavata/model/user/__init__.py | 1 +
.../apache/airavata/model/user/__init__.pyc | Bin 0 -> 174 bytes
.../apache/airavata/model/user/constants.py | 12 +
.../apache/airavata/model/user/ttypes.py | 721 +
.../apache/airavata/model/user/ttypes.pyc | Bin 0 -> 20353 bytes
.../apache/airavata/model/workflow/__init__.py | 1 +
.../apache/airavata/model/workflow/__init__.pyc | Bin 0 -> 178 bytes
.../apache/airavata/model/workflow/constants.py | 11 +
.../apache/airavata/model/workflow/ttypes.py | 822 +
.../apache/airavata/model/workflow/ttypes.pyc | Bin 0 -> 25348 bytes
.../apache/airavata/model/workspace/__init__.py | 1 +
.../airavata/model/workspace/__init__.pyc | Bin 0 -> 179 bytes
.../airavata/model/workspace/constants.py | 11 +
.../model/workspace/experiment/__init__.py | 1 +
.../model/workspace/experiment/constants.py | 14 +
.../model/workspace/experiment/ttypes.py | 3474 ++
.../apache/airavata/model/workspace/ttypes.py | 851 +
.../apache/airavata/model/workspace/ttypes.pyc | Bin 0 -> 25091 bytes
.../create-experiment/create-experiment.ipynb | 449 +
.../create-experiment/thrift/TSCons.py | 35 +
.../create-experiment/thrift/TSerialization.py | 38 +
.../create-experiment/thrift/TTornado.py | 153 +
.../create-experiment/thrift/Thrift.py | 170 +
.../create-experiment/thrift/Thrift.pyc | Bin 0 -> 4886 bytes
.../create-experiment/thrift/__init__.py | 20 +
.../create-experiment/thrift/__init__.pyc | Bin 0 -> 151 bytes
.../create-experiment/thrift/protocol/TBase.py | 81 +
.../thrift/protocol/TBinaryProtocol.py | 261 +
.../thrift/protocol/TBinaryProtocol.pyc | Bin 0 -> 10448 bytes
.../thrift/protocol/TCompactProtocol.py | 405 +
.../thrift/protocol/TJSONProtocol.py | 552 +
.../thrift/protocol/TProtocol.py | 406 +
.../thrift/protocol/TProtocol.pyc | Bin 0 -> 13517 bytes
.../thrift/protocol/__init__.py | 20 +
.../thrift/protocol/__init__.pyc | Bin 0 -> 248 bytes
.../thrift/protocol/fastbinary.c | 1219 +
.../thrift/server/THttpServer.py | 87 +
.../thrift/server/TNonblockingServer.py | 346 +
.../thrift/server/TProcessPoolServer.py | 118 +
.../create-experiment/thrift/server/TServer.py | 269 +
.../create-experiment/thrift/server/__init__.py | 20 +
.../thrift/transport/THttpClient.py | 147 +
.../thrift/transport/TSSLSocket.py | 214 +
.../thrift/transport/TSSLSocket.pyc | Bin 0 -> 6546 bytes
.../thrift/transport/TSocket.py | 176 +
.../thrift/transport/TSocket.pyc | Bin 0 -> 5512 bytes
.../thrift/transport/TTransport.py | 330 +
.../thrift/transport/TTransport.pyc | Bin 0 -> 12858 bytes
.../thrift/transport/TTwisted.py | 221 +
.../thrift/transport/TZlibTransport.py | 249 +
.../thrift/transport/__init__.py | 20 +
.../thrift/transport/__init__.pyc | Bin 0 -> 207 bytes
229 files changed, 79716 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.py
new file mode 100644
index 0000000..42e1d7d
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.py
@@ -0,0 +1 @@
+__author__ = 'syodage'
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc
new file mode 100644
index 0000000..bf85e3f
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py
new file mode 100644
index 0000000..dce34d6
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.py
@@ -0,0 +1,72 @@
+from apache.airavata.model.experiment.ttypes import ExperimentModel, UserConfigurationDataModel
+from apache.airavata.model.scheduling.ttypes import ComputationalResourceSchedulingModel
+from apache.airavata.model.workspace.ttypes import Project
+
+from oauthlib.oauth2 import LegacyApplicationClient
+from requests_oauthlib import OAuth2Session
+from oauthlib.oauth2 import BackendApplicationClient
+
+__author__ = 'syodage'
+import sys
+
+import random
+
+from thrift.protocol import TBinaryProtocol
+from thrift.transport import TSocket, TTransport ##, TSSLSocket
+
+from apache.airavata.api import Airavata
+from apache.airavata.model.security.ttypes import AuthzToken
+from apache.airavata.model.application.io.ttypes import InputDataObjectType, OutputDataObjectType
+
+class AppCatalog:
+ def __init__(self, hostName, port):
+ # Create a socket to the Airavata Server
+ transport = TSocket.TSocket(hostName,port)
+ # Use Buffered Protocol to speedup over raw sockets
+ transport = TTransport.TBufferedTransport(transport)
+
+ # Airavata currently uses Binary Protocol
+ protocol = TBinaryProtocol.TBinaryProtocol(transport)
+
+ # Create a Airavata client to use the protocol encoder
+ self.airavataClient = Airavata.Client(protocol)
+
+ transport.open()
+
+ client_id = r'XXXXXXXXXXXX'
+ client_secret = r'XXXXXXXX'
+
+ client = BackendApplicationClient(client_id=client_id)
+ oauth = OAuth2Session(client=client)
+ token = oauth.fetch_token(token_url='https://idp.scigap.org:9443/oauth2/token', client_id=client_id, client_secret=client_secret)
+ self.authzToken = AuthzToken(token["access_token"])
+
+ claimsMap = {"userName":"admin","gatewayID": "Ultrascan_Production"}
+ self.authzToken.claimsMap = claimsMap
+
+ self.gateWayId = "Ultrascan_Production"
+
+ print self.airavataClient.getAPIVersion(self.authzToken)
+
+ def computer_resources(self):
+ resources = self.airavataClient.getAllComputeResourceNames(self.authzToken)
+ return resources
+
+ def list_of_applications(self, gatewayId):
+ Applications= self.airavataClient.getAllApplicationInterfaces(self.authzToken,gatewayId)
+ return Applications
+
+ def application_deployments(self, applicationInterfaceId):
+ deployments= self.airavataClient.getApplicationDeployment(self.authzToken,applicationInterfaceId)
+ return deployments
+
+ def module_descriptions(self,gatewayId):
+ description = self.airavataClient.getAllAppModules(self.authzToken,gatewayId)
+ return description
+
+ def get_gatewaylist(self):
+ gateway_list= self.airavataClient.getAllGateways(self.authzToken)
+ return gateway_list
+
+
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc
new file mode 100644
index 0000000..5774dbf
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/appcatalog/appcatalog.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/cli.properties
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/cli.properties b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/cli.properties
new file mode 100644
index 0000000..9327692
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/cli.properties
@@ -0,0 +1,19 @@
+[AiravataServer]
+host=gw154.iu.xsede.org
+port=8930
+#host=gw77.iu.xsede.org
+#port=9930
+#port=10930
+
+## Gateway Specific Properties
+[GatewayProperties]
+gateway_id=Ultrascan_Production
+cred_token_id=
+#gateway_id=seagrid
+#cred_token_id=47507a08-1579-4883-be03-3c8e3b7da061
+
+[Stampede]
+host=stampede.tacc.xsede.org
+hostDesc=TACC Stampede Cluster
+jobManagerType=SLURM
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.py
new file mode 100644
index 0000000..42e1d7d
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.py
@@ -0,0 +1 @@
+__author__ = 'syodage'
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc
new file mode 100644
index 0000000..b2d149f
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..60df72b
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__pycache__/expcatalog.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__pycache__/expcatalog.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__pycache__/expcatalog.cpython-35.pyc
new file mode 100644
index 0000000..2e8ba43
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/__pycache__/expcatalog.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.py
new file mode 100644
index 0000000..d49edf9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.py
@@ -0,0 +1,187 @@
+from apache.airavata.model.experiment.ttypes import ExperimentModel, UserConfigurationDataModel
+from apache.airavata.model.scheduling.ttypes import ComputationalResourceSchedulingModel
+from apache.airavata.model.workspace.ttypes import Project
+
+from oauthlib.oauth2 import LegacyApplicationClient
+from requests_oauthlib import OAuth2Session
+from oauthlib.oauth2 import BackendApplicationClient
+
+import datetime
+from datetime import datetime
+import calendar
+
+
+__author__ = 'syodage'
+import sys
+
+import random
+
+from thrift.protocol import TBinaryProtocol
+from thrift.transport import TSocket, TTransport ##, TSSLSocket
+
+from apache.airavata.api import Airavata
+from apache.airavata.model.security.ttypes import AuthzToken
+from apache.airavata.model.application.io.ttypes import InputDataObjectType, OutputDataObjectType
+
+class ExpCatalog:
+ def __init__(self, hostName, port):
+ # Create a socket to the Airavata Server
+ transport = TSocket.TSocket(hostName,port)
+ # Use Buffered Protocol to speedup over raw sockets
+ transport = TTransport.TBufferedTransport(transport)
+
+ # Airavata currently uses Binary Protocol
+ protocol = TBinaryProtocol.TBinaryProtocol(transport)
+
+ # Create a Airavata client to use the protocol encoder
+ self.airavataClient = Airavata.Client(protocol)
+
+ transport.open()
+
+ client_id = r'XXXXXXXXX'
+ client_secret = r'XXXXXXXXX'
+
+ client = BackendApplicationClient(client_id=client_id)
+ oauth = OAuth2Session(client=client)
+ token = oauth.fetch_token(token_url='https://idp.scigap.org:9443/oauth2/token', client_id=client_id, client_secret=client_secret)
+ self.authzToken = AuthzToken(token["access_token"])
+
+ claimsMap = {"userName":"admin","gatewayID": "Ultrascan_Production"}
+ self.authzToken.claimsMap = claimsMap
+
+ self.gateWayId = "default"
+
+ print (self.airavataClient.getAPIVersion(self.authzToken))
+
+ def getExperiment(self, expId):
+ experiment = self.airavataClient.getExperiment(self.authzToken, expId)
+ # print experiment
+ return experiment
+
+ def getJobModel(self,expId):
+ jobM = self.airavataClient.getJobDetails(self.authzToken,expId)
+ return jobM
+
+ def getExperimentSummary(self, expId):
+ expSum = ExperimentSummary()
+ expSum.setExperimentModel(self.getExperiment(expId))
+ expSum.setJobModels(self.getJobModel(expId))
+ return expSum
+
+
+ def getExperimentName(self):
+ nameList = ["Darwin", "Faraday" , "Aristotle", "Tesla", "Edison", "Galileo", "Einstein", "Newton", "Dalton",
+ "Arthur" , "Clark", "Turing", "Hawking", "Maxwell", "Isaac", ""]
+ limit = nameList.__len__()
+ r = random.randint(0, limit-1)
+ return nameList[r]
+
+ def createExperiment(self, applicationName):
+ # experiment = ExperimentModel()
+ # experiment.experimentName(self.getExperimentName())
+ if applicationName == "Amber":
+ appInterface = self.getApplication(applicationName)
+ else:
+ print ("not yet support for application " + applicationName)
+
+ inputs = appInterface.applicationInputs
+ for input in inputs:
+ if input.name == "Heat-Restart-File":
+ input.value = "file://ogce@stampede.tacc.xsede.org:/scratch/01437/ogce/gta-work-dirs/PROCESS_e0610a6c-5778-4a69-a004-f440e29194af/02_Heat.rst"
+ elif input.name == "Production-Control-File":
+ input.value = "file://ogce@stampede.tacc.xsede.org:/scratch/01437/ogce/gta-work-dirs/PROCESS_e0610a6c-5778-4a69-a004-f440e29194af/03_Prod.in"
+ elif input.name == "Parameter-Topology-File":
+ input.value = "file://ogce@stampede.tacc.xsede.org:/scratch/01437/ogce/gta-work-dirs/PROCESS_e0610a6c-5778-4a69-a004-f440e29194af/prmtop"
+
+ outputs = appInterface.applicationOutputs
+
+ experiment = ExperimentModel()
+ experiment.experimentName = self.getExperimentName()
+ experiment.projectId = self.getDefaultProjectId()
+ experiment.gatewayId = self.gateWayId
+ experiment.userName = "admin"
+ experiment.description = "Test Amber experiment"
+ experiment.experimentInputs = inputs
+ experiment.experimentOutputs = outputs
+ experiment.executionId = appInterface.applicationInterfaceId
+
+ computeResources = self.airavataClient.getAvailableAppInterfaceComputeResources(
+ self.authzToken, appInterface.applicationInterfaceId)
+ t = {"a": "b", "c": "d"}
+ for computeResource in computeResources:
+ if computeResource.startswith("stampede.tacc.xsede.org"):
+ stampedCRId = computeResource
+ break
+
+ print (stampedCRId)
+ computationalRS = ComputationalResourceSchedulingModel()
+ computationalRS.resourceHostId = stampedCRId
+ computationalRS.totalCPUCount = 16
+ computationalRS.nodeCount = 1
+ computationalRS.numberOfThreads = 1
+ computationalRS.queueName = "normal"
+ computationalRS.wallTimeLimit = 10
+ computationalRS.totalPhysicalMemory = 1
+
+ userConfig = UserConfigurationDataModel()
+ userConfig.airavataAutoSchedule = True
+ userConfig.overrideManualScheduledParams = False
+ userConfig.computationalResourceScheduling = computationalRS
+
+
+ experiment.userConfigurationData = userConfig
+ expId = self.airavataClient.createExperiment(self.authzToken, self.gateWayId, experiment)
+ print ("Experiment Id is " + expId)
+ return expId
+
+ def launchExperiment(self, expId):
+ self.airavataClient.launchExperiment(self.authzToken, expId , self.gateWayId)
+
+
+ def cancelExperiment(self, expId):
+ self.airavataClient.terminateExperiment(self.authzToken, expId, self.gateWayId)
+
+ def getApplication(self, nameStartWith):
+ appNames = self.airavataClient.getAllApplicationInterfaceNames(self.authzToken,self.gateWayId )
+ appInterFaces = self.airavataClient.getAllApplicationInterfaces(self.authzToken, self.gateWayId)
+ for interface in appInterFaces:
+ if interface.applicationName.startswith(nameStartWith):
+ return interface
+ # for name in appNames:
+ # if name.startswith(nameStartWith):
+ # return name
+ # def createAndLaunchExperiment(self):
+
+ def getDefaultProjectId(self):
+ project = Project()
+ project.name = "default"
+ project.owner = "admin"
+ project.description = "test project"
+ projectId = self.airavataClient.createProject(self.authzToken, self.gateWayId,project)
+ project.projectID = projectId
+ return projectId
+
+ def experiment_statistics(self,gatewayID, fromTime, toTime):
+ statistics=self.airavataClient.getExperimentStatistics(self.authzToken, gatewayID,fromTime,toTime)
+ return statistics
+
+ def create_experiment(self,authzToken,gatewayId,experiment):
+ experiment=self.airavataClient.createExperiment(self.authzToken, gatewayID,experiment)
+ return experiment
+
+
+class ExperimentSummary:
+
+ def setExperimentModel(self, expModel):
+ self.name = expModel.experimentName
+ self.id = expModel.experimentId
+ self.status = expModel.experimentStatus
+
+
+ def setProcessModel(self, processModel):
+ print ("setProcessModel is not yet implemented")
+
+ def setJobModels(self, jobModel):
+ self.jobs = jobModel
+
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc
new file mode 100644
index 0000000..d44337b
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/expcatalog/expcatalog.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TSCons.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TSCons.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TSCons.py
new file mode 100644
index 0000000..da8d283
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TSCons.py
@@ -0,0 +1,35 @@
+#
+# 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.
+#
+
+from os import path
+from SCons.Builder import Builder
+
+
+def scons_env(env, add=''):
+ opath = path.dirname(path.abspath('$TARGET'))
+ lstr = 'thrift --gen cpp -o ' + opath + ' ' + add + ' $SOURCE'
+ cppbuild = Builder(action=lstr)
+ env.Append(BUILDERS={'ThriftCpp': cppbuild})
+
+
+def gen_cpp(env, dir, file):
+ scons_env(env)
+ suffixes = ['_types.h', '_types.cpp']
+ targets = map(lambda s: 'gen-cpp/' + file + s, suffixes)
+ return env.ThriftCpp(targets, dir + file + '.thrift')
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TSerialization.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TSerialization.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TSerialization.py
new file mode 100644
index 0000000..54f10e2
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TSerialization.py
@@ -0,0 +1,38 @@
+#
+# 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.
+#
+
+from lib.thrift.protocol import TBinaryProtocol
+from lib.thrift.transport import TTransport
+
+
+def serialize(thrift_object,
+ protocol_factory=TBinaryProtocol.TBinaryProtocolFactory()):
+ transport = TTransport.TMemoryBuffer()
+ protocol = protocol_factory.getProtocol(transport)
+ thrift_object.write(protocol)
+ return transport.getvalue()
+
+
+def deserialize(base,
+ buf,
+ protocol_factory=TBinaryProtocol.TBinaryProtocolFactory()):
+ transport = TTransport.TMemoryBuffer(buf)
+ protocol = protocol_factory.getProtocol(transport)
+ base.read(protocol)
+ return base
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TTornado.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TTornado.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TTornado.py
new file mode 100644
index 0000000..af309c3
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/TTornado.py
@@ -0,0 +1,153 @@
+#
+# 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.
+#
+
+from cStringIO import StringIO
+import logging
+import socket
+import struct
+
+from thrift.transport import TTransport
+from thrift.transport.TTransport import TTransportException
+
+from tornado import gen
+from tornado import iostream
+from tornado import netutil
+
+
+class TTornadoStreamTransport(TTransport.TTransportBase):
+ """a framed, buffered transport over a Tornado stream"""
+ def __init__(self, host, port, stream=None):
+ self.host = host
+ self.port = port
+ self.is_queuing_reads = False
+ self.read_queue = []
+ self.__wbuf = StringIO()
+
+ # servers provide a ready-to-go stream
+ self.stream = stream
+ if self.stream is not None:
+ self._set_close_callback()
+
+ # not the same number of parameters as TTransportBase.open
+ def open(self, callback):
+ logging.debug('socket connecting')
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
+ self.stream = iostream.IOStream(sock)
+
+ def on_close_in_connect(*_):
+ message = 'could not connect to {}:{}'.format(self.host, self.port)
+ raise TTransportException(
+ type=TTransportException.NOT_OPEN,
+ message=message)
+ self.stream.set_close_callback(on_close_in_connect)
+
+ def finish(*_):
+ self._set_close_callback()
+ callback()
+
+ self.stream.connect((self.host, self.port), callback=finish)
+
+ def _set_close_callback(self):
+ def on_close():
+ raise TTransportException(
+ type=TTransportException.END_OF_FILE,
+ message='socket closed')
+ self.stream.set_close_callback(self.close)
+
+ def close(self):
+ # don't raise if we intend to close
+ self.stream.set_close_callback(None)
+ self.stream.close()
+
+ def read(self, _):
+ # The generated code for Tornado shouldn't do individual reads -- only
+ # frames at a time
+ assert "you're doing it wrong" is True
+
+ @gen.engine
+ def readFrame(self, callback):
+ self.read_queue.append(callback)
+ logging.debug('read queue: %s', self.read_queue)
+
+ if self.is_queuing_reads:
+ # If a read is already in flight, then the while loop below should
+ # pull it from self.read_queue
+ return
+
+ self.is_queuing_reads = True
+ while self.read_queue:
+ next_callback = self.read_queue.pop()
+ result = yield gen.Task(self._readFrameFromStream)
+ next_callback(result)
+ self.is_queuing_reads = False
+
+ @gen.engine
+ def _readFrameFromStream(self, callback):
+ logging.debug('_readFrameFromStream')
+ frame_header = yield gen.Task(self.stream.read_bytes, 4)
+ frame_length, = struct.unpack('!i', frame_header)
+ logging.debug('received frame header, frame length = %i', frame_length)
+ frame = yield gen.Task(self.stream.read_bytes, frame_length)
+ logging.debug('received frame payload')
+ callback(frame)
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def flush(self, callback=None):
+ wout = self.__wbuf.getvalue()
+ wsz = len(wout)
+ # reset wbuf before write/flush to preserve state on underlying failure
+ self.__wbuf = StringIO()
+ # N.B.: Doing this string concatenation is WAY cheaper than making
+ # two separate calls to the underlying socket object. Socket writes in
+ # Python turn out to be REALLY expensive, but it seems to do a pretty
+ # good job of managing string buffer operations without excessive copies
+ buf = struct.pack("!i", wsz) + wout
+
+ logging.debug('writing frame length = %i', wsz)
+ self.stream.write(buf, callback)
+
+
+class TTornadoServer(netutil.TCPServer):
+ def __init__(self, processor, iprot_factory, oprot_factory=None,
+ *args, **kwargs):
+ super(TTornadoServer, self).__init__(*args, **kwargs)
+
+ self._processor = processor
+ self._iprot_factory = iprot_factory
+ self._oprot_factory = (oprot_factory if oprot_factory is not None
+ else iprot_factory)
+
+ def handle_stream(self, stream, address):
+ try:
+ host, port = address
+ trans = TTornadoStreamTransport(host=host, port=port, stream=stream)
+ oprot = self._oprot_factory.getProtocol(trans)
+
+ def next_pass():
+ if not trans.stream.closed():
+ self._processor.process(trans, self._iprot_factory, oprot,
+ callback=next_pass)
+
+ next_pass()
+
+ except Exception:
+ logging.exception('thrift exception in handle_stream')
+ trans.close()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.py
new file mode 100644
index 0000000..9890af7
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.py
@@ -0,0 +1,170 @@
+#
+# 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.
+#
+
+import sys
+
+
+class TType:
+ STOP = 0
+ VOID = 1
+ BOOL = 2
+ BYTE = 3
+ I08 = 3
+ DOUBLE = 4
+ I16 = 6
+ I32 = 8
+ I64 = 10
+ STRING = 11
+ UTF7 = 11
+ STRUCT = 12
+ MAP = 13
+ SET = 14
+ LIST = 15
+ UTF8 = 16
+ UTF16 = 17
+
+ _VALUES_TO_NAMES = ('STOP',
+ 'VOID',
+ 'BOOL',
+ 'BYTE',
+ 'DOUBLE',
+ None,
+ 'I16',
+ None,
+ 'I32',
+ None,
+ 'I64',
+ 'STRING',
+ 'STRUCT',
+ 'MAP',
+ 'SET',
+ 'LIST',
+ 'UTF8',
+ 'UTF16')
+
+
+class TMessageType:
+ CALL = 1
+ REPLY = 2
+ EXCEPTION = 3
+ ONEWAY = 4
+
+
+class TProcessor:
+ """Base class for procsessor, which works on two streams."""
+
+ def process(iprot, oprot):
+ pass
+
+
+class TException(Exception):
+ """Base class for all thrift exceptions."""
+
+ # BaseException.message is deprecated in Python v[2.6,3.0)
+ if (2, 6, 0) <= sys.version_info < (3, 0):
+ def _get_message(self):
+ return self._message
+
+ def _set_message(self, message):
+ self._message = message
+ message = property(_get_message, _set_message)
+
+ def __init__(self, message=None):
+ Exception.__init__(self, message)
+ self.message = message
+
+
+class TApplicationException(TException):
+ """Application level thrift exceptions."""
+
+ UNKNOWN = 0
+ UNKNOWN_METHOD = 1
+ INVALID_MESSAGE_TYPE = 2
+ WRONG_METHOD_NAME = 3
+ BAD_SEQUENCE_ID = 4
+ MISSING_RESULT = 5
+ INTERNAL_ERROR = 6
+ PROTOCOL_ERROR = 7
+ INVALID_TRANSFORM = 8
+ INVALID_PROTOCOL = 9
+ UNSUPPORTED_CLIENT_TYPE = 10
+
+ def __init__(self, type=UNKNOWN, message=None):
+ TException.__init__(self, message)
+ self.type = type
+
+ def __str__(self):
+ if self.message:
+ return self.message
+ elif self.type == self.UNKNOWN_METHOD:
+ return 'Unknown method'
+ elif self.type == self.INVALID_MESSAGE_TYPE:
+ return 'Invalid message type'
+ elif self.type == self.WRONG_METHOD_NAME:
+ return 'Wrong method name'
+ elif self.type == self.BAD_SEQUENCE_ID:
+ return 'Bad sequence ID'
+ elif self.type == self.MISSING_RESULT:
+ return 'Missing result'
+ elif self.type == self.INTERNAL_ERROR:
+ return 'Internal error'
+ elif self.type == self.PROTOCOL_ERROR:
+ return 'Protocol error'
+ elif self.type == self.INVALID_TRANSFORM:
+ return 'Invalid transform'
+ elif self.type == self.INVALID_PROTOCOL:
+ return 'Invalid protocol'
+ elif self.type == self.UNSUPPORTED_CLIENT_TYPE:
+ return 'Unsupported client type'
+ else:
+ return 'Default (unknown) TApplicationException'
+
+ def read(self, iprot):
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRING:
+ self.message = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.type = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ oprot.writeStructBegin('TApplicationException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ if self.type is not None:
+ oprot.writeFieldBegin('type', TType.I32, 2)
+ oprot.writeI32(self.type)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc
new file mode 100644
index 0000000..8b7f8b1
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/Thrift.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.py
new file mode 100644
index 0000000..48d659c
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.py
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+__all__ = ['Thrift', 'TSCons']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc
new file mode 100644
index 0000000..42aabd6
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBase.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBase.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBase.py
new file mode 100644
index 0000000..6cbd5f3
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBase.py
@@ -0,0 +1,81 @@
+#
+# 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.
+#
+
+from thrift.Thrift import *
+from thrift.protocol import TBinaryProtocol
+from thrift.transport import TTransport
+
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class TBase(object):
+ __slots__ = []
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, getattr(self, key))
+ for key in self.__slots__]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ if not isinstance(other, self.__class__):
+ return False
+ for attr in self.__slots__:
+ my_val = getattr(self, attr)
+ other_val = getattr(other, attr)
+ if my_val != other_val:
+ return False
+ return True
+
+ def __ne__(self, other):
+ return not (self == other)
+
+ 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.readStruct(self, self.thrift_spec)
+
+ 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.writeStruct(self, self.thrift_spec)
+
+
+class TExceptionBase(Exception):
+ # old style class so python2.4 can raise exceptions derived from this
+ # This can't inherit from TBase because of that limitation.
+ __slots__ = []
+
+ __repr__ = TBase.__repr__.im_func
+ __eq__ = TBase.__eq__.im_func
+ __ne__ = TBase.__ne__.im_func
+ read = TBase.read.im_func
+ write = TBase.write.im_func
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.py
new file mode 100644
index 0000000..17a600f
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.py
@@ -0,0 +1,261 @@
+#
+# 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.
+#
+
+from struct import pack, unpack
+
+from thrift.protocol.TProtocol import *
+
+
+class TBinaryProtocol(TProtocolBase):
+ """Binary implementation of the Thrift protocol driver."""
+
+ # NastyHaxx. Python 2.4+ on 32-bit machines forces hex constants to be
+ # positive, converting this into a long. If we hardcode the int value
+ # instead it'll stay in 32 bit-land.
+
+ # VERSION_MASK = 0xffff0000
+ VERSION_MASK = -65536
+
+ # VERSION_1 = 0x80010000
+ VERSION_1 = -2147418112
+
+ TYPE_MASK = 0x000000ff
+
+ def __init__(self, trans, strictRead=False, strictWrite=True):
+ TProtocolBase.__init__(self, trans)
+ self.strictRead = strictRead
+ self.strictWrite = strictWrite
+
+ def writeMessageBegin(self, name, type, seqid):
+ if self.strictWrite:
+ self.writeI32(TBinaryProtocol.VERSION_1 | type)
+ self.writeString(name)
+ self.writeI32(seqid)
+ else:
+ self.writeString(name)
+ self.writeByte(type)
+ self.writeI32(seqid)
+
+ def writeMessageEnd(self):
+ pass
+
+ def writeStructBegin(self, name):
+ pass
+
+ def writeStructEnd(self):
+ pass
+
+ def writeFieldBegin(self, name, type, id):
+ self.writeByte(type)
+ self.writeI16(id)
+
+ def writeFieldEnd(self):
+ pass
+
+ def writeFieldStop(self):
+ self.writeByte(TType.STOP)
+
+ def writeMapBegin(self, ktype, vtype, size):
+ self.writeByte(ktype)
+ self.writeByte(vtype)
+ self.writeI32(size)
+
+ def writeMapEnd(self):
+ pass
+
+ def writeListBegin(self, etype, size):
+ self.writeByte(etype)
+ self.writeI32(size)
+
+ def writeListEnd(self):
+ pass
+
+ def writeSetBegin(self, etype, size):
+ self.writeByte(etype)
+ self.writeI32(size)
+
+ def writeSetEnd(self):
+ pass
+
+ def writeBool(self, bool):
+ if bool:
+ self.writeByte(1)
+ else:
+ self.writeByte(0)
+
+ def writeByte(self, byte):
+ buff = pack("!b", byte)
+ self.trans.write(buff)
+
+ def writeI16(self, i16):
+ buff = pack("!h", i16)
+ self.trans.write(buff)
+
+ def writeI32(self, i32):
+ buff = pack("!i", i32)
+ self.trans.write(buff)
+
+ def writeI64(self, i64):
+ buff = pack("!q", i64)
+ self.trans.write(buff)
+
+ def writeDouble(self, dub):
+ buff = pack("!d", dub)
+ self.trans.write(buff)
+
+ def writeString(self, str):
+ self.writeI32(len(str))
+ self.trans.write(str)
+
+ def readMessageBegin(self):
+ sz = self.readI32()
+ if sz < 0:
+ version = sz & TBinaryProtocol.VERSION_MASK
+ if version != TBinaryProtocol.VERSION_1:
+ raise TProtocolException(
+ type=TProtocolException.BAD_VERSION,
+ message='Bad version in readMessageBegin: %d' % (sz))
+ type = sz & TBinaryProtocol.TYPE_MASK
+ name = self.readString()
+ seqid = self.readI32()
+ else:
+ if self.strictRead:
+ raise TProtocolException(type=TProtocolException.BAD_VERSION,
+ message='No protocol version header')
+ name = self.trans.readAll(sz)
+ type = self.readByte()
+ seqid = self.readI32()
+ return (name, type, seqid)
+
+ def readMessageEnd(self):
+ pass
+
+ def readStructBegin(self):
+ pass
+
+ def readStructEnd(self):
+ pass
+
+ def readFieldBegin(self):
+ type = self.readByte()
+ if type == TType.STOP:
+ return (None, type, 0)
+ id = self.readI16()
+ return (None, type, id)
+
+ def readFieldEnd(self):
+ pass
+
+ def readMapBegin(self):
+ ktype = self.readByte()
+ vtype = self.readByte()
+ size = self.readI32()
+ return (ktype, vtype, size)
+
+ def readMapEnd(self):
+ pass
+
+ def readListBegin(self):
+ etype = self.readByte()
+ size = self.readI32()
+ return (etype, size)
+
+ def readListEnd(self):
+ pass
+
+ def readSetBegin(self):
+ etype = self.readByte()
+ size = self.readI32()
+ return (etype, size)
+
+ def readSetEnd(self):
+ pass
+
+ def readBool(self):
+ byte = self.readByte()
+ if byte == 0:
+ return False
+ return True
+
+ def readByte(self):
+ buff = self.trans.readAll(1)
+ val, = unpack('!b', buff)
+ return val
+
+ def readI16(self):
+ buff = self.trans.readAll(2)
+ val, = unpack('!h', buff)
+ return val
+
+ def readI32(self):
+ buff = self.trans.readAll(4)
+ val, = unpack('!i', buff)
+ return val
+
+ def readI64(self):
+ buff = self.trans.readAll(8)
+ val, = unpack('!q', buff)
+ return val
+
+ def readDouble(self):
+ buff = self.trans.readAll(8)
+ val, = unpack('!d', buff)
+ return val
+
+ def readString(self):
+ len = self.readI32()
+ str = self.trans.readAll(len)
+ return str
+
+
+class TBinaryProtocolFactory:
+ def __init__(self, strictRead=False, strictWrite=True):
+ self.strictRead = strictRead
+ self.strictWrite = strictWrite
+
+ def getProtocol(self, trans):
+ prot = TBinaryProtocol(trans, self.strictRead, self.strictWrite)
+ return prot
+
+
+class TBinaryProtocolAccelerated(TBinaryProtocol):
+ """C-Accelerated version of TBinaryProtocol.
+
+ This class does not override any of TBinaryProtocol's methods,
+ but the generated code recognizes it directly and will call into
+ our C module to do the encoding, bypassing this object entirely.
+ We inherit from TBinaryProtocol so that the normal TBinaryProtocol
+ encoding can happen if the fastbinary module doesn't work for some
+ reason. (TODO(dreiss): Make this happen sanely in more cases.)
+
+ In order to take advantage of the C module, just use
+ TBinaryProtocolAccelerated instead of TBinaryProtocol.
+
+ NOTE: This code was contributed by an external developer.
+ The internal Thrift team has reviewed and tested it,
+ but we cannot guarantee that it is production-ready.
+ Please feel free to report bugs and/or success stories
+ to the public mailing list.
+ """
+ pass
+
+
+class TBinaryProtocolAcceleratedFactory:
+ def getProtocol(self, trans):
+ return TBinaryProtocolAccelerated(trans)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc
new file mode 100644
index 0000000..981be1c
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TBinaryProtocol.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TCompactProtocol.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TCompactProtocol.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TCompactProtocol.py
new file mode 100644
index 0000000..09ca6ad
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TCompactProtocol.py
@@ -0,0 +1,405 @@
+#
+# 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.
+#
+
+from struct import pack, unpack
+
+from lib.thrift.protocol.TProtocol import *
+
+
+__all__ = ['TCompactProtocol', 'TCompactProtocolFactory']
+
+CLEAR = 0
+FIELD_WRITE = 1
+VALUE_WRITE = 2
+CONTAINER_WRITE = 3
+BOOL_WRITE = 4
+FIELD_READ = 5
+CONTAINER_READ = 6
+VALUE_READ = 7
+BOOL_READ = 8
+
+
+def make_helper(v_from, container):
+ def helper(func):
+ def nested(self, *args, **kwargs):
+ assert self.state in (v_from, container), (self.state, v_from, container)
+ return func(self, *args, **kwargs)
+ return nested
+ return helper
+writer = make_helper(VALUE_WRITE, CONTAINER_WRITE)
+reader = make_helper(VALUE_READ, CONTAINER_READ)
+
+
+def makeZigZag(n, bits):
+ return (n << 1) ^ (n >> (bits - 1))
+
+
+def fromZigZag(n):
+ return (n >> 1) ^ -(n & 1)
+
+
+def writeVarint(trans, n):
+ out = []
+ while True:
+ if n & ~0x7f == 0:
+ out.append(n)
+ break
+ else:
+ out.append((n & 0xff) | 0x80)
+ n = n >> 7
+ trans.write(''.join(map(chr, out)))
+
+
+def readVarint(trans):
+ result = 0
+ shift = 0
+ while True:
+ x = trans.readAll(1)
+ byte = ord(x)
+ result |= (byte & 0x7f) << shift
+ if byte >> 7 == 0:
+ return result
+ shift += 7
+
+
+class CompactType:
+ STOP = 0x00
+ TRUE = 0x01
+ FALSE = 0x02
+ BYTE = 0x03
+ I16 = 0x04
+ I32 = 0x05
+ I64 = 0x06
+ DOUBLE = 0x07
+ BINARY = 0x08
+ LIST = 0x09
+ SET = 0x0A
+ MAP = 0x0B
+ STRUCT = 0x0C
+
+CTYPES = {TType.STOP: CompactType.STOP,
+ TType.BOOL: CompactType.TRUE, # used for collection
+ TType.BYTE: CompactType.BYTE,
+ TType.I16: CompactType.I16,
+ TType.I32: CompactType.I32,
+ TType.I64: CompactType.I64,
+ TType.DOUBLE: CompactType.DOUBLE,
+ TType.STRING: CompactType.BINARY,
+ TType.STRUCT: CompactType.STRUCT,
+ TType.LIST: CompactType.LIST,
+ TType.SET: CompactType.SET,
+ TType.MAP: CompactType.MAP
+ }
+
+TTYPES = {}
+for k, v in CTYPES.items():
+ TTYPES[v] = k
+TTYPES[CompactType.FALSE] = TType.BOOL
+del k
+del v
+
+
+class TCompactProtocol(TProtocolBase):
+ """Compact implementation of the Thrift protocol driver."""
+
+ PROTOCOL_ID = 0x82
+ VERSION = 1
+ VERSION_MASK = 0x1f
+ TYPE_MASK = 0xe0
+ TYPE_SHIFT_AMOUNT = 5
+
+ def __init__(self, trans):
+ TProtocolBase.__init__(self, trans)
+ self.state = CLEAR
+ self.__last_fid = 0
+ self.__bool_fid = None
+ self.__bool_value = None
+ self.__structs = []
+ self.__containers = []
+
+ def __writeVarint(self, n):
+ writeVarint(self.trans, n)
+
+ def writeMessageBegin(self, name, type, seqid):
+ assert self.state == CLEAR
+ self.__writeUByte(self.PROTOCOL_ID)
+ self.__writeUByte(self.VERSION | (type << self.TYPE_SHIFT_AMOUNT))
+ self.__writeVarint(seqid)
+ self.__writeString(name)
+ self.state = VALUE_WRITE
+
+ def writeMessageEnd(self):
+ assert self.state == VALUE_WRITE
+ self.state = CLEAR
+
+ def writeStructBegin(self, name):
+ assert self.state in (CLEAR, CONTAINER_WRITE, VALUE_WRITE), self.state
+ self.__structs.append((self.state, self.__last_fid))
+ self.state = FIELD_WRITE
+ self.__last_fid = 0
+
+ def writeStructEnd(self):
+ assert self.state == FIELD_WRITE
+ self.state, self.__last_fid = self.__structs.pop()
+
+ def writeFieldStop(self):
+ self.__writeByte(0)
+
+ def __writeFieldHeader(self, type, fid):
+ delta = fid - self.__last_fid
+ if 0 < delta <= 15:
+ self.__writeUByte(delta << 4 | type)
+ else:
+ self.__writeByte(type)
+ self.__writeI16(fid)
+ self.__last_fid = fid
+
+ def writeFieldBegin(self, name, type, fid):
+ assert self.state == FIELD_WRITE, self.state
+ if type == TType.BOOL:
+ self.state = BOOL_WRITE
+ self.__bool_fid = fid
+ else:
+ self.state = VALUE_WRITE
+ self.__writeFieldHeader(CTYPES[type], fid)
+
+ def writeFieldEnd(self):
+ assert self.state in (VALUE_WRITE, BOOL_WRITE), self.state
+ self.state = FIELD_WRITE
+
+ def __writeUByte(self, byte):
+ self.trans.write(pack('!B', byte))
+
+ def __writeByte(self, byte):
+ self.trans.write(pack('!b', byte))
+
+ def __writeI16(self, i16):
+ self.__writeVarint(makeZigZag(i16, 16))
+
+ def __writeSize(self, i32):
+ self.__writeVarint(i32)
+
+ def writeCollectionBegin(self, etype, size):
+ assert self.state in (VALUE_WRITE, CONTAINER_WRITE), self.state
+ if size <= 14:
+ self.__writeUByte(size << 4 | CTYPES[etype])
+ else:
+ self.__writeUByte(0xf0 | CTYPES[etype])
+ self.__writeSize(size)
+ self.__containers.append(self.state)
+ self.state = CONTAINER_WRITE
+ writeSetBegin = writeCollectionBegin
+ writeListBegin = writeCollectionBegin
+
+ def writeMapBegin(self, ktype, vtype, size):
+ assert self.state in (VALUE_WRITE, CONTAINER_WRITE), self.state
+ if size == 0:
+ self.__writeByte(0)
+ else:
+ self.__writeSize(size)
+ self.__writeUByte(CTYPES[ktype] << 4 | CTYPES[vtype])
+ self.__containers.append(self.state)
+ self.state = CONTAINER_WRITE
+
+ def writeCollectionEnd(self):
+ assert self.state == CONTAINER_WRITE, self.state
+ self.state = self.__containers.pop()
+ writeMapEnd = writeCollectionEnd
+ writeSetEnd = writeCollectionEnd
+ writeListEnd = writeCollectionEnd
+
+ def writeBool(self, bool):
+ if self.state == BOOL_WRITE:
+ if bool:
+ ctype = CompactType.TRUE
+ else:
+ ctype = CompactType.FALSE
+ self.__writeFieldHeader(ctype, self.__bool_fid)
+ elif self.state == CONTAINER_WRITE:
+ if bool:
+ self.__writeByte(CompactType.TRUE)
+ else:
+ self.__writeByte(CompactType.FALSE)
+ else:
+ raise AssertionError("Invalid state in compact protocol")
+
+ writeByte = writer(__writeByte)
+ writeI16 = writer(__writeI16)
+
+ @writer
+ def writeI32(self, i32):
+ self.__writeVarint(makeZigZag(i32, 32))
+
+ @writer
+ def writeI64(self, i64):
+ self.__writeVarint(makeZigZag(i64, 64))
+
+ @writer
+ def writeDouble(self, dub):
+ self.trans.write(pack('!d', dub))
+
+ def __writeString(self, s):
+ self.__writeSize(len(s))
+ self.trans.write(s)
+ writeString = writer(__writeString)
+
+ def readFieldBegin(self):
+ assert self.state == FIELD_READ, self.state
+ type = self.__readUByte()
+ if type & 0x0f == TType.STOP:
+ return (None, 0, 0)
+ delta = type >> 4
+ if delta == 0:
+ fid = self.__readI16()
+ else:
+ fid = self.__last_fid + delta
+ self.__last_fid = fid
+ type = type & 0x0f
+ if type == CompactType.TRUE:
+ self.state = BOOL_READ
+ self.__bool_value = True
+ elif type == CompactType.FALSE:
+ self.state = BOOL_READ
+ self.__bool_value = False
+ else:
+ self.state = VALUE_READ
+ return (None, self.__getTType(type), fid)
+
+ def readFieldEnd(self):
+ assert self.state in (VALUE_READ, BOOL_READ), self.state
+ self.state = FIELD_READ
+
+ def __readUByte(self):
+ result, = unpack('!B', self.trans.readAll(1))
+ return result
+
+ def __readByte(self):
+ result, = unpack('!b', self.trans.readAll(1))
+ return result
+
+ def __readVarint(self):
+ return readVarint(self.trans)
+
+ def __readZigZag(self):
+ return fromZigZag(self.__readVarint())
+
+ def __readSize(self):
+ result = self.__readVarint()
+ if result < 0:
+ raise TException("Length < 0")
+ return result
+
+ def readMessageBegin(self):
+ assert self.state == CLEAR
+ proto_id = self.__readUByte()
+ if proto_id != self.PROTOCOL_ID:
+ raise TProtocolException(TProtocolException.BAD_VERSION,
+ 'Bad protocol id in the message: %d' % proto_id)
+ ver_type = self.__readUByte()
+ type = (ver_type & self.TYPE_MASK) >> self.TYPE_SHIFT_AMOUNT
+ version = ver_type & self.VERSION_MASK
+ if version != self.VERSION:
+ raise TProtocolException(TProtocolException.BAD_VERSION,
+ 'Bad version: %d (expect %d)' % (version, self.VERSION))
+ seqid = self.__readVarint()
+ name = self.__readString()
+ return (name, type, seqid)
+
+ def readMessageEnd(self):
+ assert self.state == CLEAR
+ assert len(self.__structs) == 0
+
+ def readStructBegin(self):
+ assert self.state in (CLEAR, CONTAINER_READ, VALUE_READ), self.state
+ self.__structs.append((self.state, self.__last_fid))
+ self.state = FIELD_READ
+ self.__last_fid = 0
+
+ def readStructEnd(self):
+ assert self.state == FIELD_READ
+ self.state, self.__last_fid = self.__structs.pop()
+
+ def readCollectionBegin(self):
+ assert self.state in (VALUE_READ, CONTAINER_READ), self.state
+ size_type = self.__readUByte()
+ size = size_type >> 4
+ type = self.__getTType(size_type)
+ if size == 15:
+ size = self.__readSize()
+ self.__containers.append(self.state)
+ self.state = CONTAINER_READ
+ return type, size
+ readSetBegin = readCollectionBegin
+ readListBegin = readCollectionBegin
+
+ def readMapBegin(self):
+ assert self.state in (VALUE_READ, CONTAINER_READ), self.state
+ size = self.__readSize()
+ types = 0
+ if size > 0:
+ types = self.__readUByte()
+ vtype = self.__getTType(types)
+ ktype = self.__getTType(types >> 4)
+ self.__containers.append(self.state)
+ self.state = CONTAINER_READ
+ return (ktype, vtype, size)
+
+ def readCollectionEnd(self):
+ assert self.state == CONTAINER_READ, self.state
+ self.state = self.__containers.pop()
+ readSetEnd = readCollectionEnd
+ readListEnd = readCollectionEnd
+ readMapEnd = readCollectionEnd
+
+ def readBool(self):
+ if self.state == BOOL_READ:
+ return self.__bool_value == CompactType.TRUE
+ elif self.state == CONTAINER_READ:
+ return self.__readByte() == CompactType.TRUE
+ else:
+ raise AssertionError("Invalid state in compact protocol: %d" %
+ self.state)
+
+ readByte = reader(__readByte)
+ __readI16 = __readZigZag
+ readI16 = reader(__readZigZag)
+ readI32 = reader(__readZigZag)
+ readI64 = reader(__readZigZag)
+
+ @reader
+ def readDouble(self):
+ buff = self.trans.readAll(8)
+ val, = unpack('!d', buff)
+ return val
+
+ def __readString(self):
+ len = self.__readSize()
+ return self.trans.readAll(len)
+ readString = reader(__readString)
+
+ def __getTType(self, byte):
+ return TTYPES[byte & 0x0f]
+
+
+class TCompactProtocolFactory:
+ def __init__(self):
+ pass
+
+ def getProtocol(self, trans):
+ return TCompactProtocol(trans)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TJSONProtocol.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TJSONProtocol.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TJSONProtocol.py
new file mode 100644
index 0000000..6f51523
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/thrift/protocol/TJSONProtocol.py
@@ -0,0 +1,552 @@
+#
+# 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.
+#
+
+import base64
+import json
+import math
+
+from lib.thrift.protocol.TProtocol import TType, TProtocolBase, TProtocolException
+
+
+__all__ = ['TJSONProtocol',
+ 'TJSONProtocolFactory',
+ 'TSimpleJSONProtocol',
+ 'TSimpleJSONProtocolFactory']
+
+VERSION = 1
+
+COMMA = ','
+COLON = ':'
+LBRACE = '{'
+RBRACE = '}'
+LBRACKET = '['
+RBRACKET = ']'
+QUOTE = '"'
+BACKSLASH = '\\'
+ZERO = '0'
+
+ESCSEQ = '\\u00'
+ESCAPE_CHAR = '"\\bfnrt'
+ESCAPE_CHAR_VALS = ['"', '\\', '\b', '\f', '\n', '\r', '\t']
+NUMERIC_CHAR = '+-.0123456789Ee'
+
+CTYPES = {TType.BOOL: 'tf',
+ TType.BYTE: 'i8',
+ TType.I16: 'i16',
+ TType.I32: 'i32',
+ TType.I64: 'i64',
+ TType.DOUBLE: 'dbl',
+ TType.STRING: 'str',
+ TType.STRUCT: 'rec',
+ TType.LIST: 'lst',
+ TType.SET: 'set',
+ TType.MAP: 'map'}
+
+JTYPES = {}
+for key in CTYPES.keys():
+ JTYPES[CTYPES[key]] = key
+
+
+class JSONBaseContext(object):
+
+ def __init__(self, protocol):
+ self.protocol = protocol
+ self.first = True
+
+ def doIO(self, function):
+ pass
+
+ def write(self):
+ pass
+
+ def read(self):
+ pass
+
+ def escapeNum(self):
+ return False
+
+ def __str__(self):
+ return self.__class__.__name__
+
+
+class JSONListContext(JSONBaseContext):
+
+ def doIO(self, function):
+ if self.first is True:
+ self.first = False
+ else:
+ function(COMMA)
+
+ def write(self):
+ self.doIO(self.protocol.trans.write)
+
+ def read(self):
+ self.doIO(self.protocol.readJSONSyntaxChar)
+
+
+class JSONPairContext(JSONBaseContext):
+
+ def __init__(self, protocol):
+ super(JSONPairContext, self).__init__(protocol)
+ self.colon = True
+
+ def doIO(self, function):
+ if self.first:
+ self.first = False
+ self.colon = True
+ else:
+ function(COLON if self.colon else COMMA)
+ self.colon = not self.colon
+
+ def write(self):
+ self.doIO(self.protocol.trans.write)
+
+ def read(self):
+ self.doIO(self.protocol.readJSONSyntaxChar)
+
+ def escapeNum(self):
+ return self.colon
+
+ def __str__(self):
+ return '%s, colon=%s' % (self.__class__.__name__, self.colon)
+
+
+class LookaheadReader():
+ hasData = False
+ data = ''
+
+ def __init__(self, protocol):
+ self.protocol = protocol
+
+ def read(self):
+ if self.hasData is True:
+ self.hasData = False
+ else:
+ self.data = self.protocol.trans.read(1)
+ return self.data
+
+ def peek(self):
+ if self.hasData is False:
+ self.data = self.protocol.trans.read(1)
+ self.hasData = True
+ return self.data
+
+class TJSONProtocolBase(TProtocolBase):
+
+ def __init__(self, trans):
+ TProtocolBase.__init__(self, trans)
+ self.resetWriteContext()
+ self.resetReadContext()
+
+ def resetWriteContext(self):
+ self.context = JSONBaseContext(self)
+ self.contextStack = [self.context]
+
+ def resetReadContext(self):
+ self.resetWriteContext()
+ self.reader = LookaheadReader(self)
+
+ def pushContext(self, ctx):
+ self.contextStack.append(ctx)
+ self.context = ctx
+
+ def popContext(self):
+ self.contextStack.pop()
+ if self.contextStack:
+ self.context = self.contextStack[-1]
+ else:
+ self.context = JSONBaseContext(self)
+
+ def writeJSONString(self, string):
+ self.context.write()
+ self.trans.write(json.dumps(string))
+
+ def writeJSONNumber(self, number):
+ self.context.write()
+ jsNumber = str(number)
+ if self.context.escapeNum():
+ jsNumber = "%s%s%s" % (QUOTE, jsNumber, QUOTE)
+ self.trans.write(jsNumber)
+
+ def writeJSONBase64(self, binary):
+ self.context.write()
+ self.trans.write(QUOTE)
+ self.trans.write(base64.b64encode(binary))
+ self.trans.write(QUOTE)
+
+ def writeJSONObjectStart(self):
+ self.context.write()
+ self.trans.write(LBRACE)
+ self.pushContext(JSONPairContext(self))
+
+ def writeJSONObjectEnd(self):
+ self.popContext()
+ self.trans.write(RBRACE)
+
+ def writeJSONArrayStart(self):
+ self.context.write()
+ self.trans.write(LBRACKET)
+ self.pushContext(JSONListContext(self))
+
+ def writeJSONArrayEnd(self):
+ self.popContext()
+ self.trans.write(RBRACKET)
+
+ def readJSONSyntaxChar(self, character):
+ current = self.reader.read()
+ if character != current:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Unexpected character: %s" % current)
+
+ def readJSONString(self, skipContext):
+ string = []
+ if skipContext is False:
+ self.context.read()
+ self.readJSONSyntaxChar(QUOTE)
+ while True:
+ character = self.reader.read()
+ if character == QUOTE:
+ break
+ if character == ESCSEQ[0]:
+ character = self.reader.read()
+ if character == ESCSEQ[1]:
+ self.readJSONSyntaxChar(ZERO)
+ self.readJSONSyntaxChar(ZERO)
+ character = json.JSONDecoder().decode('"\u00%s"' % self.trans.read(2))
+ else:
+ off = ESCAPE_CHAR.find(character)
+ if off == -1:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Expected control char")
+ character = ESCAPE_CHAR_VALS[off]
+ string.append(character)
+ return ''.join(string)
+
+ def isJSONNumeric(self, character):
+ return (True if NUMERIC_CHAR.find(character) != - 1 else False)
+
+ def readJSONQuotes(self):
+ if (self.context.escapeNum()):
+ self.readJSONSyntaxChar(QUOTE)
+
+ def readJSONNumericChars(self):
+ numeric = []
+ while True:
+ character = self.reader.peek()
+ if self.isJSONNumeric(character) is False:
+ break
+ numeric.append(self.reader.read())
+ return ''.join(numeric)
+
+ def readJSONInteger(self):
+ self.context.read()
+ self.readJSONQuotes()
+ numeric = self.readJSONNumericChars()
+ self.readJSONQuotes()
+ try:
+ return int(numeric)
+ except ValueError:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Bad data encounted in numeric data")
+
+ def readJSONDouble(self):
+ self.context.read()
+ if self.reader.peek() == QUOTE:
+ string = self.readJSONString(True)
+ try:
+ double = float(string)
+ if (self.context.escapeNum is False and
+ not math.isinf(double) and
+ not math.isnan(double)):
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Numeric data unexpectedly quoted")
+ return double
+ except ValueError:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Bad data encounted in numeric data")
+ else:
+ if self.context.escapeNum() is True:
+ self.readJSONSyntaxChar(QUOTE)
+ try:
+ return float(self.readJSONNumericChars())
+ except ValueError:
+ raise TProtocolException(TProtocolException.INVALID_DATA,
+ "Bad data encounted in numeric data")
+
+ def readJSONBase64(self):
+ string = self.readJSONString(False)
+ return base64.b64decode(string)
+
+ def readJSONObjectStart(self):
+ self.context.read()
+ self.readJSONSyntaxChar(LBRACE)
+ self.pushContext(JSONPairContext(self))
+
+ def readJSONObjectEnd(self):
+ self.readJSONSyntaxChar(RBRACE)
+ self.popContext()
+
+ def readJSONArrayStart(self):
+ self.context.read()
+ self.readJSONSyntaxChar(LBRACKET)
+ self.pushContext(JSONListContext(self))
+
+ def readJSONArrayEnd(self):
+ self.readJSONSyntaxChar(RBRACKET)
+ self.popContext()
+
+
+class TJSONProtocol(TJSONProtocolBase):
+
+ def readMessageBegin(self):
+ self.resetReadContext()
+ self.readJSONArrayStart()
+ if self.readJSONInteger() != VERSION:
+ raise TProtocolException(TProtocolException.BAD_VERSION,
+ "Message contained bad version.")
+ name = self.readJSONString(False)
+ typen = self.readJSONInteger()
+ seqid = self.readJSONInteger()
+ return (name, typen, seqid)
+
+ def readMessageEnd(self):
+ self.readJSONArrayEnd()
+
+ def readStructBegin(self):
+ self.readJSONObjectStart()
+
+ def readStructEnd(self):
+ self.readJSONObjectEnd()
+
+ def readFieldBegin(self):
+ character = self.reader.peek()
+ ttype = 0
+ id = 0
+ if character == RBRACE:
+ ttype = TType.STOP
+ else:
+ id = self.readJSONInteger()
+ self.readJSONObjectStart()
+ ttype = JTYPES[self.readJSONString(False)]
+ return (None, ttype, id)
+
+ def readFieldEnd(self):
+ self.readJSONObjectEnd()
+
+ def readMapBegin(self):
+ self.readJSONArrayStart()
+ keyType = JTYPES[self.readJSONString(False)]
+ valueType = JTYPES[self.readJSONString(False)]
+ size = self.readJSONInteger()
+ self.readJSONObjectStart()
+ return (keyType, valueType, size)
+
+ def readMapEnd(self):
+ self.readJSONObjectEnd()
+ self.readJSONArrayEnd()
+
+ def readCollectionBegin(self):
+ self.readJSONArrayStart()
+ elemType = JTYPES[self.readJSONString(False)]
+ size = self.readJSONInteger()
+ return (elemType, size)
+ readListBegin = readCollectionBegin
+ readSetBegin = readCollectionBegin
+
+ def readCollectionEnd(self):
+ self.readJSONArrayEnd()
+ readSetEnd = readCollectionEnd
+ readListEnd = readCollectionEnd
+
+ def readBool(self):
+ return (False if self.readJSONInteger() == 0 else True)
+
+ def readNumber(self):
+ return self.readJSONInteger()
+ readByte = readNumber
+ readI16 = readNumber
+ readI32 = readNumber
+ readI64 = readNumber
+
+ def readDouble(self):
+ return self.readJSONDouble()
+
+ def readString(self):
+ return self.readJSONString(False)
+
+ def readBinary(self):
+ return self.readJSONBase64()
+
+ def writeMessageBegin(self, name, request_type, seqid):
+ self.resetWriteContext()
+ self.writeJSONArrayStart()
+ self.writeJSONNumber(VERSION)
+ self.writeJSONString(name)
+ self.writeJSONNumber(request_type)
+ self.writeJSONNumber(seqid)
+
+ def writeMessageEnd(self):
+ self.writeJSONArrayEnd()
+
+ def writeStructBegin(self, name):
+ self.writeJSONObjectStart()
+
+ def writeStructEnd(self):
+ self.writeJSONObjectEnd()
+
+ def writeFieldBegin(self, name, ttype, id):
+ self.writeJSONNumber(id)
+ self.writeJSONObjectStart()
+ self.writeJSONString(CTYPES[ttype])
+
+ def writeFieldEnd(self):
+ self.writeJSONObjectEnd()
+
+ def writeFieldStop(self):
+ pass
+
+ def writeMapBegin(self, ktype, vtype, size):
+ self.writeJSONArrayStart()
+ self.writeJSONString(CTYPES[ktype])
+ self.writeJSONString(CTYPES[vtype])
+ self.writeJSONNumber(size)
+ self.writeJSONObjectStart()
+
+ def writeMapEnd(self):
+ self.writeJSONObjectEnd()
+ self.writeJSONArrayEnd()
+
+ def writeListBegin(self, etype, size):
+ self.writeJSONArrayStart()
+ self.writeJSONString(CTYPES[etype])
+ self.writeJSONNumber(size)
+
+ def writeListEnd(self):
+ self.writeJSONArrayEnd()
+
+ def writeSetBegin(self, etype, size):
+ self.writeJSONArrayStart()
+ self.writeJSONString(CTYPES[etype])
+ self.writeJSONNumber(size)
+
+ def writeSetEnd(self):
+ self.writeJSONArrayEnd()
+
+ def writeBool(self, boolean):
+ self.writeJSONNumber(1 if boolean is True else 0)
+
+ def writeInteger(self, integer):
+ self.writeJSONNumber(integer)
+ writeByte = writeInteger
+ writeI16 = writeInteger
+ writeI32 = writeInteger
+ writeI64 = writeInteger
+
+ def writeDouble(self, dbl):
+ self.writeJSONNumber(dbl)
+
+ def writeString(self, string):
+ self.writeJSONString(string)
+
+ def writeBinary(self, binary):
+ self.writeJSONBase64(binary)
+
+
+class TJSONProtocolFactory:
+
+ def getProtocol(self, trans):
+ return TJSONProtocol(trans)
+
+
+class TSimpleJSONProtocol(TJSONProtocolBase):
+ """Simple, readable, write-only JSON protocol.
+
+ Useful for interacting with scripting languages.
+ """
+
+ def readMessageBegin(self):
+ raise NotImplementedError()
+
+ def readMessageEnd(self):
+ raise NotImplementedError()
+
+ def readStructBegin(self):
+ raise NotImplementedError()
+
+ def readStructEnd(self):
+ raise NotImplementedError()
+
+ def writeMessageBegin(self, name, request_type, seqid):
+ self.resetWriteContext()
+
+ def writeMessageEnd(self):
+ pass
+
+ def writeStructBegin(self, name):
+ self.writeJSONObjectStart()
+
+ def writeStructEnd(self):
+ self.writeJSONObjectEnd()
+
+ def writeFieldBegin(self, name, ttype, fid):
+ self.writeJSONString(name)
+
+ def writeFieldEnd(self):
+ pass
+
+ def writeMapBegin(self, ktype, vtype, size):
+ self.writeJSONObjectStart()
+
+ def writeMapEnd(self):
+ self.writeJSONObjectEnd()
+
+ def _writeCollectionBegin(self, etype, size):
+ self.writeJSONArrayStart()
+
+ def _writeCollectionEnd(self):
+ self.writeJSONArrayEnd()
+ writeListBegin = _writeCollectionBegin
+ writeListEnd = _writeCollectionEnd
+ writeSetBegin = _writeCollectionBegin
+ writeSetEnd = _writeCollectionEnd
+
+ def writeInteger(self, integer):
+ self.writeJSONNumber(integer)
+ writeByte = writeInteger
+ writeI16 = writeInteger
+ writeI32 = writeInteger
+ writeI64 = writeInteger
+
+ def writeBool(self, boolean):
+ self.writeJSONNumber(1 if boolean is True else 0)
+
+ def writeDouble(self, dbl):
+ self.writeJSONNumber(dbl)
+
+ def writeString(self, string):
+ self.writeJSONString(string)
+
+ def writeBinary(self, binary):
+ self.writeJSONBase64(binary)
+
+
+class TSimpleJSONProtocolFactory(object):
+
+ def getProtocol(self, trans):
+ return TSimpleJSONProtocol(trans)
[24/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/ttypes.py
new file mode 100644
index 0000000..779a25a
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/ttypes.py
@@ -0,0 +1,1035 @@
+#
+# 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.application.io.ttypes
+import apache.airavata.model.scheduling.ttypes
+import apache.airavata.model.commons.ttypes
+import apache.airavata.model.status.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ExperimentType:
+ SINGLE_APPLICATION = 0
+ WORKFLOW = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "SINGLE_APPLICATION",
+ 1: "WORKFLOW",
+ }
+
+ _NAMES_TO_VALUES = {
+ "SINGLE_APPLICATION": 0,
+ "WORKFLOW": 1,
+ }
+
+class ExperimentSearchFields:
+ EXPERIMENT_NAME = 0
+ EXPERIMENT_DESC = 1
+ APPLICATION_ID = 2
+ FROM_DATE = 3
+ TO_DATE = 4
+ STATUS = 5
+ PROJECT_ID = 6
+
+ _VALUES_TO_NAMES = {
+ 0: "EXPERIMENT_NAME",
+ 1: "EXPERIMENT_DESC",
+ 2: "APPLICATION_ID",
+ 3: "FROM_DATE",
+ 4: "TO_DATE",
+ 5: "STATUS",
+ 6: "PROJECT_ID",
+ }
+
+ _NAMES_TO_VALUES = {
+ "EXPERIMENT_NAME": 0,
+ "EXPERIMENT_DESC": 1,
+ "APPLICATION_ID": 2,
+ "FROM_DATE": 3,
+ "TO_DATE": 4,
+ "STATUS": 5,
+ "PROJECT_ID": 6,
+ }
+
+
+class UserConfigurationDataModel:
+ """
+ A structure holding the experiment configuration.
+
+
+
+ Attributes:
+ - airavataAutoSchedule
+ - overrideManualScheduledParams
+ - shareExperimentPublicly
+ - computationalResourceScheduling
+ - throttleResources
+ - userDN
+ - generateCert
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'airavataAutoSchedule', None, False, ), # 1
+ (2, TType.BOOL, 'overrideManualScheduledParams', None, False, ), # 2
+ (3, TType.BOOL, 'shareExperimentPublicly', None, False, ), # 3
+ (4, TType.STRUCT, 'computationalResourceScheduling', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 4
+ (5, TType.BOOL, 'throttleResources', None, False, ), # 5
+ (6, TType.STRING, 'userDN', None, None, ), # 6
+ (7, TType.BOOL, 'generateCert', None, False, ), # 7
+ )
+
+ def __init__(self, airavataAutoSchedule=thrift_spec[1][4], overrideManualScheduledParams=thrift_spec[2][4], shareExperimentPublicly=thrift_spec[3][4], computationalResourceScheduling=None, throttleResources=thrift_spec[5][4], userDN=None, generateCert=thrift_spec[7][4],):
+ self.airavataAutoSchedule = airavataAutoSchedule
+ self.overrideManualScheduledParams = overrideManualScheduledParams
+ self.shareExperimentPublicly = shareExperimentPublicly
+ self.computationalResourceScheduling = computationalResourceScheduling
+ self.throttleResources = throttleResources
+ self.userDN = userDN
+ self.generateCert = generateCert
+
+ 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.BOOL:
+ self.airavataAutoSchedule = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.BOOL:
+ self.overrideManualScheduledParams = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.BOOL:
+ self.shareExperimentPublicly = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.computationalResourceScheduling = apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
+ self.computationalResourceScheduling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.BOOL:
+ self.throttleResources = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.userDN = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.BOOL:
+ self.generateCert = iprot.readBool();
+ 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('UserConfigurationDataModel')
+ if self.airavataAutoSchedule is not None:
+ oprot.writeFieldBegin('airavataAutoSchedule', TType.BOOL, 1)
+ oprot.writeBool(self.airavataAutoSchedule)
+ oprot.writeFieldEnd()
+ if self.overrideManualScheduledParams is not None:
+ oprot.writeFieldBegin('overrideManualScheduledParams', TType.BOOL, 2)
+ oprot.writeBool(self.overrideManualScheduledParams)
+ oprot.writeFieldEnd()
+ if self.shareExperimentPublicly is not None:
+ oprot.writeFieldBegin('shareExperimentPublicly', TType.BOOL, 3)
+ oprot.writeBool(self.shareExperimentPublicly)
+ oprot.writeFieldEnd()
+ if self.computationalResourceScheduling is not None:
+ oprot.writeFieldBegin('computationalResourceScheduling', TType.STRUCT, 4)
+ self.computationalResourceScheduling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.throttleResources is not None:
+ oprot.writeFieldBegin('throttleResources', TType.BOOL, 5)
+ oprot.writeBool(self.throttleResources)
+ oprot.writeFieldEnd()
+ if self.userDN is not None:
+ oprot.writeFieldBegin('userDN', TType.STRING, 6)
+ oprot.writeString(self.userDN)
+ oprot.writeFieldEnd()
+ if self.generateCert is not None:
+ oprot.writeFieldBegin('generateCert', TType.BOOL, 7)
+ oprot.writeBool(self.generateCert)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataAutoSchedule is None:
+ raise TProtocol.TProtocolException(message='Required field airavataAutoSchedule is unset!')
+ if self.overrideManualScheduledParams is None:
+ raise TProtocol.TProtocolException(message='Required field overrideManualScheduledParams is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataAutoSchedule)
+ value = (value * 31) ^ hash(self.overrideManualScheduledParams)
+ value = (value * 31) ^ hash(self.shareExperimentPublicly)
+ value = (value * 31) ^ hash(self.computationalResourceScheduling)
+ value = (value * 31) ^ hash(self.throttleResources)
+ value = (value * 31) ^ hash(self.userDN)
+ value = (value * 31) ^ hash(self.generateCert)
+ 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 ExperimentModel:
+ """
+ A structure holding the experiment metadata and its child models.
+
+ userName:
+ The user name of the targeted gateway end user on whose behalf the experiment is being created.
+ the associated gateway identity can only be inferred from the security hand-shake so as to avoid
+ authorized Airavata Clients mimicking an unauthorized request. If a gateway is not registered with
+ Airavata, an authorization exception is thrown.
+
+ experimentName:
+ The name of the experiment as defined by the user. The name need not be unique as uniqueness is enforced
+ by the generated experiment id.
+
+ experimentDescription:
+ The verbose description of the experiment. This is an optional parameter.
+
+ Attributes:
+ - experimentId
+ - projectId
+ - gatewayId
+ - experimentType
+ - userName
+ - experimentName
+ - creationTime
+ - description
+ - executionId
+ - gatewayExecutionId
+ - enableEmailNotification
+ - emailAddresses
+ - userConfigurationData
+ - experimentInputs
+ - experimentOutputs
+ - experimentStatus
+ - errors
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'experimentId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'projectId', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ (4, TType.I32, 'experimentType', None, 0, ), # 4
+ (5, TType.STRING, 'userName', None, None, ), # 5
+ (6, TType.STRING, 'experimentName', None, None, ), # 6
+ (7, TType.I64, 'creationTime', None, None, ), # 7
+ (8, TType.STRING, 'description', None, None, ), # 8
+ (9, TType.STRING, 'executionId', None, None, ), # 9
+ (10, TType.STRING, 'gatewayExecutionId', None, None, ), # 10
+ (11, TType.BOOL, 'enableEmailNotification', None, None, ), # 11
+ (12, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 12
+ (13, TType.STRUCT, 'userConfigurationData', (UserConfigurationDataModel, UserConfigurationDataModel.thrift_spec), None, ), # 13
+ (14, TType.LIST, 'experimentInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 14
+ (15, TType.LIST, 'experimentOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 15
+ (16, TType.STRUCT, 'experimentStatus', (apache.airavata.model.status.ttypes.ExperimentStatus, apache.airavata.model.status.ttypes.ExperimentStatus.thrift_spec), None, ), # 16
+ (17, TType.LIST, 'errors', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 17
+ )
+
+ def __init__(self, experimentId=thrift_spec[1][4], projectId=None, gatewayId=None, experimentType=thrift_spec[4][4], userName=None, experimentName=None, creationTime=None, description=None, executionId=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, userConfigurationData=None, experimentInputs=None, experimentOutputs=None, experimentStatus=None, errors=None,):
+ self.experimentId = experimentId
+ self.projectId = projectId
+ self.gatewayId = gatewayId
+ self.experimentType = experimentType
+ self.userName = userName
+ self.experimentName = experimentName
+ self.creationTime = creationTime
+ self.description = description
+ self.executionId = executionId
+ self.gatewayExecutionId = gatewayExecutionId
+ self.enableEmailNotification = enableEmailNotification
+ self.emailAddresses = emailAddresses
+ self.userConfigurationData = userConfigurationData
+ self.experimentInputs = experimentInputs
+ self.experimentOutputs = experimentOutputs
+ self.experimentStatus = experimentStatus
+ self.errors = errors
+
+ 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.experimentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.projectId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.experimentType = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.userName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.experimentName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.description = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.executionId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.gatewayExecutionId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.BOOL:
+ self.enableEmailNotification = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.emailAddresses = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString();
+ self.emailAddresses.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.STRUCT:
+ self.userConfigurationData = UserConfigurationDataModel()
+ self.userConfigurationData.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.LIST:
+ self.experimentInputs = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ _elem11.read(iprot)
+ self.experimentInputs.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 15:
+ if ftype == TType.LIST:
+ self.experimentOutputs = []
+ (_etype15, _size12) = iprot.readListBegin()
+ for _i16 in xrange(_size12):
+ _elem17 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem17.read(iprot)
+ self.experimentOutputs.append(_elem17)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 16:
+ if ftype == TType.STRUCT:
+ self.experimentStatus = apache.airavata.model.status.ttypes.ExperimentStatus()
+ self.experimentStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 17:
+ if ftype == TType.LIST:
+ self.errors = []
+ (_etype21, _size18) = iprot.readListBegin()
+ for _i22 in xrange(_size18):
+ _elem23 = apache.airavata.model.commons.ttypes.ErrorModel()
+ _elem23.read(iprot)
+ self.errors.append(_elem23)
+ 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('ExperimentModel')
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 1)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.projectId is not None:
+ oprot.writeFieldBegin('projectId', TType.STRING, 2)
+ oprot.writeString(self.projectId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.experimentType is not None:
+ oprot.writeFieldBegin('experimentType', TType.I32, 4)
+ oprot.writeI32(self.experimentType)
+ oprot.writeFieldEnd()
+ if self.userName is not None:
+ oprot.writeFieldBegin('userName', TType.STRING, 5)
+ oprot.writeString(self.userName)
+ oprot.writeFieldEnd()
+ if self.experimentName is not None:
+ oprot.writeFieldBegin('experimentName', TType.STRING, 6)
+ oprot.writeString(self.experimentName)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 7)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 8)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ if self.executionId is not None:
+ oprot.writeFieldBegin('executionId', TType.STRING, 9)
+ oprot.writeString(self.executionId)
+ oprot.writeFieldEnd()
+ if self.gatewayExecutionId is not None:
+ oprot.writeFieldBegin('gatewayExecutionId', TType.STRING, 10)
+ oprot.writeString(self.gatewayExecutionId)
+ oprot.writeFieldEnd()
+ if self.enableEmailNotification is not None:
+ oprot.writeFieldBegin('enableEmailNotification', TType.BOOL, 11)
+ oprot.writeBool(self.enableEmailNotification)
+ oprot.writeFieldEnd()
+ if self.emailAddresses is not None:
+ oprot.writeFieldBegin('emailAddresses', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
+ for iter24 in self.emailAddresses:
+ oprot.writeString(iter24)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.userConfigurationData is not None:
+ oprot.writeFieldBegin('userConfigurationData', TType.STRUCT, 13)
+ self.userConfigurationData.write(oprot)
+ oprot.writeFieldEnd()
+ if self.experimentInputs is not None:
+ oprot.writeFieldBegin('experimentInputs', TType.LIST, 14)
+ oprot.writeListBegin(TType.STRUCT, len(self.experimentInputs))
+ for iter25 in self.experimentInputs:
+ iter25.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.experimentOutputs is not None:
+ oprot.writeFieldBegin('experimentOutputs', TType.LIST, 15)
+ oprot.writeListBegin(TType.STRUCT, len(self.experimentOutputs))
+ for iter26 in self.experimentOutputs:
+ iter26.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.experimentStatus is not None:
+ oprot.writeFieldBegin('experimentStatus', TType.STRUCT, 16)
+ self.experimentStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.errors is not None:
+ oprot.writeFieldBegin('errors', TType.LIST, 17)
+ oprot.writeListBegin(TType.STRUCT, len(self.errors))
+ for iter27 in self.errors:
+ iter27.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.projectId is None:
+ raise TProtocol.TProtocolException(message='Required field projectId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.experimentType is None:
+ raise TProtocol.TProtocolException(message='Required field experimentType is unset!')
+ if self.userName is None:
+ raise TProtocol.TProtocolException(message='Required field userName is unset!')
+ if self.experimentName is None:
+ raise TProtocol.TProtocolException(message='Required field experimentName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.projectId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.experimentType)
+ value = (value * 31) ^ hash(self.userName)
+ value = (value * 31) ^ hash(self.experimentName)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.description)
+ value = (value * 31) ^ hash(self.executionId)
+ value = (value * 31) ^ hash(self.gatewayExecutionId)
+ value = (value * 31) ^ hash(self.enableEmailNotification)
+ value = (value * 31) ^ hash(self.emailAddresses)
+ value = (value * 31) ^ hash(self.userConfigurationData)
+ value = (value * 31) ^ hash(self.experimentInputs)
+ value = (value * 31) ^ hash(self.experimentOutputs)
+ value = (value * 31) ^ hash(self.experimentStatus)
+ value = (value * 31) ^ hash(self.errors)
+ 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 ExperimentSummaryModel:
+ """
+ Attributes:
+ - experimentId
+ - projectId
+ - gatewayId
+ - creationTime
+ - userName
+ - name
+ - description
+ - executionId
+ - resourceHostId
+ - experimentStatus
+ - statusUpdateTime
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'experimentId', None, None, ), # 1
+ (2, TType.STRING, 'projectId', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ (4, TType.I64, 'creationTime', None, None, ), # 4
+ (5, TType.STRING, 'userName', None, None, ), # 5
+ (6, TType.STRING, 'name', None, None, ), # 6
+ (7, TType.STRING, 'description', None, None, ), # 7
+ (8, TType.STRING, 'executionId', None, None, ), # 8
+ (9, TType.STRING, 'resourceHostId', None, None, ), # 9
+ (10, TType.STRING, 'experimentStatus', None, None, ), # 10
+ None, # 11
+ (12, TType.I64, 'statusUpdateTime', None, None, ), # 12
+ )
+
+ def __init__(self, experimentId=None, projectId=None, gatewayId=None, creationTime=None, userName=None, name=None, description=None, executionId=None, resourceHostId=None, experimentStatus=None, statusUpdateTime=None,):
+ self.experimentId = experimentId
+ self.projectId = projectId
+ self.gatewayId = gatewayId
+ self.creationTime = creationTime
+ self.userName = userName
+ self.name = name
+ self.description = description
+ self.executionId = executionId
+ self.resourceHostId = resourceHostId
+ self.experimentStatus = experimentStatus
+ self.statusUpdateTime = statusUpdateTime
+
+ 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.experimentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.projectId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.userName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.name = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.description = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.executionId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.resourceHostId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.experimentStatus = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.I64:
+ self.statusUpdateTime = 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('ExperimentSummaryModel')
+ if self.experimentId is not None:
+ oprot.writeFieldBegin('experimentId', TType.STRING, 1)
+ oprot.writeString(self.experimentId)
+ oprot.writeFieldEnd()
+ if self.projectId is not None:
+ oprot.writeFieldBegin('projectId', TType.STRING, 2)
+ oprot.writeString(self.projectId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 4)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.userName is not None:
+ oprot.writeFieldBegin('userName', TType.STRING, 5)
+ oprot.writeString(self.userName)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 6)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 7)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ if self.executionId is not None:
+ oprot.writeFieldBegin('executionId', TType.STRING, 8)
+ oprot.writeString(self.executionId)
+ oprot.writeFieldEnd()
+ if self.resourceHostId is not None:
+ oprot.writeFieldBegin('resourceHostId', TType.STRING, 9)
+ oprot.writeString(self.resourceHostId)
+ oprot.writeFieldEnd()
+ if self.experimentStatus is not None:
+ oprot.writeFieldBegin('experimentStatus', TType.STRING, 10)
+ oprot.writeString(self.experimentStatus)
+ oprot.writeFieldEnd()
+ if self.statusUpdateTime is not None:
+ oprot.writeFieldBegin('statusUpdateTime', TType.I64, 12)
+ oprot.writeI64(self.statusUpdateTime)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.experimentId is None:
+ raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+ if self.projectId is None:
+ raise TProtocol.TProtocolException(message='Required field projectId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.userName is None:
+ raise TProtocol.TProtocolException(message='Required field userName is unset!')
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.experimentId)
+ value = (value * 31) ^ hash(self.projectId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.userName)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.description)
+ value = (value * 31) ^ hash(self.executionId)
+ value = (value * 31) ^ hash(self.resourceHostId)
+ value = (value * 31) ^ hash(self.experimentStatus)
+ value = (value * 31) ^ hash(self.statusUpdateTime)
+ 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 ExperimentStatistics:
+ """
+ Attributes:
+ - allExperimentCount
+ - completedExperimentCount
+ - cancelledExperimentCount
+ - failedExperimentCount
+ - createdExperimentCount
+ - runningExperimentCount
+ - allExperiments
+ - completedExperiments
+ - failedExperiments
+ - cancelledExperiments
+ - createdExperiments
+ - runningExperiments
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'allExperimentCount', None, None, ), # 1
+ (2, TType.I32, 'completedExperimentCount', None, None, ), # 2
+ (3, TType.I32, 'cancelledExperimentCount', None, None, ), # 3
+ (4, TType.I32, 'failedExperimentCount', None, None, ), # 4
+ (5, TType.I32, 'createdExperimentCount', None, None, ), # 5
+ (6, TType.I32, 'runningExperimentCount', None, None, ), # 6
+ (7, TType.LIST, 'allExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 7
+ (8, TType.LIST, 'completedExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 8
+ (9, TType.LIST, 'failedExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 9
+ (10, TType.LIST, 'cancelledExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 10
+ (11, TType.LIST, 'createdExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 11
+ (12, TType.LIST, 'runningExperiments', (TType.STRUCT,(ExperimentSummaryModel, ExperimentSummaryModel.thrift_spec)), None, ), # 12
+ )
+
+ def __init__(self, allExperimentCount=None, completedExperimentCount=None, cancelledExperimentCount=None, failedExperimentCount=None, createdExperimentCount=None, runningExperimentCount=None, allExperiments=None, completedExperiments=None, failedExperiments=None, cancelledExperiments=None, createdExperiments=None, runningExperiments=None,):
+ self.allExperimentCount = allExperimentCount
+ self.completedExperimentCount = completedExperimentCount
+ self.cancelledExperimentCount = cancelledExperimentCount
+ self.failedExperimentCount = failedExperimentCount
+ self.createdExperimentCount = createdExperimentCount
+ self.runningExperimentCount = runningExperimentCount
+ self.allExperiments = allExperiments
+ self.completedExperiments = completedExperiments
+ self.failedExperiments = failedExperiments
+ self.cancelledExperiments = cancelledExperiments
+ self.createdExperiments = createdExperiments
+ self.runningExperiments = runningExperiments
+
+ 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.I32:
+ self.allExperimentCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.completedExperimentCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.cancelledExperimentCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.failedExperimentCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.createdExperimentCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I32:
+ self.runningExperimentCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.allExperiments = []
+ (_etype31, _size28) = iprot.readListBegin()
+ for _i32 in xrange(_size28):
+ _elem33 = ExperimentSummaryModel()
+ _elem33.read(iprot)
+ self.allExperiments.append(_elem33)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.LIST:
+ self.completedExperiments = []
+ (_etype37, _size34) = iprot.readListBegin()
+ for _i38 in xrange(_size34):
+ _elem39 = ExperimentSummaryModel()
+ _elem39.read(iprot)
+ self.completedExperiments.append(_elem39)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.failedExperiments = []
+ (_etype43, _size40) = iprot.readListBegin()
+ for _i44 in xrange(_size40):
+ _elem45 = ExperimentSummaryModel()
+ _elem45.read(iprot)
+ self.failedExperiments.append(_elem45)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.cancelledExperiments = []
+ (_etype49, _size46) = iprot.readListBegin()
+ for _i50 in xrange(_size46):
+ _elem51 = ExperimentSummaryModel()
+ _elem51.read(iprot)
+ self.cancelledExperiments.append(_elem51)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.LIST:
+ self.createdExperiments = []
+ (_etype55, _size52) = iprot.readListBegin()
+ for _i56 in xrange(_size52):
+ _elem57 = ExperimentSummaryModel()
+ _elem57.read(iprot)
+ self.createdExperiments.append(_elem57)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.runningExperiments = []
+ (_etype61, _size58) = iprot.readListBegin()
+ for _i62 in xrange(_size58):
+ _elem63 = ExperimentSummaryModel()
+ _elem63.read(iprot)
+ self.runningExperiments.append(_elem63)
+ 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('ExperimentStatistics')
+ if self.allExperimentCount is not None:
+ oprot.writeFieldBegin('allExperimentCount', TType.I32, 1)
+ oprot.writeI32(self.allExperimentCount)
+ oprot.writeFieldEnd()
+ if self.completedExperimentCount is not None:
+ oprot.writeFieldBegin('completedExperimentCount', TType.I32, 2)
+ oprot.writeI32(self.completedExperimentCount)
+ oprot.writeFieldEnd()
+ if self.cancelledExperimentCount is not None:
+ oprot.writeFieldBegin('cancelledExperimentCount', TType.I32, 3)
+ oprot.writeI32(self.cancelledExperimentCount)
+ oprot.writeFieldEnd()
+ if self.failedExperimentCount is not None:
+ oprot.writeFieldBegin('failedExperimentCount', TType.I32, 4)
+ oprot.writeI32(self.failedExperimentCount)
+ oprot.writeFieldEnd()
+ if self.createdExperimentCount is not None:
+ oprot.writeFieldBegin('createdExperimentCount', TType.I32, 5)
+ oprot.writeI32(self.createdExperimentCount)
+ oprot.writeFieldEnd()
+ if self.runningExperimentCount is not None:
+ oprot.writeFieldBegin('runningExperimentCount', TType.I32, 6)
+ oprot.writeI32(self.runningExperimentCount)
+ oprot.writeFieldEnd()
+ if self.allExperiments is not None:
+ oprot.writeFieldBegin('allExperiments', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.allExperiments))
+ for iter64 in self.allExperiments:
+ iter64.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.completedExperiments is not None:
+ oprot.writeFieldBegin('completedExperiments', TType.LIST, 8)
+ oprot.writeListBegin(TType.STRUCT, len(self.completedExperiments))
+ for iter65 in self.completedExperiments:
+ iter65.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.failedExperiments is not None:
+ oprot.writeFieldBegin('failedExperiments', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRUCT, len(self.failedExperiments))
+ for iter66 in self.failedExperiments:
+ iter66.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.cancelledExperiments is not None:
+ oprot.writeFieldBegin('cancelledExperiments', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.cancelledExperiments))
+ for iter67 in self.cancelledExperiments:
+ iter67.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.createdExperiments is not None:
+ oprot.writeFieldBegin('createdExperiments', TType.LIST, 11)
+ oprot.writeListBegin(TType.STRUCT, len(self.createdExperiments))
+ for iter68 in self.createdExperiments:
+ iter68.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.runningExperiments is not None:
+ oprot.writeFieldBegin('runningExperiments', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRUCT, len(self.runningExperiments))
+ for iter69 in self.runningExperiments:
+ iter69.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.allExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field allExperimentCount is unset!')
+ if self.completedExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field completedExperimentCount is unset!')
+ if self.failedExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field failedExperimentCount is unset!')
+ if self.createdExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field createdExperimentCount is unset!')
+ if self.runningExperimentCount is None:
+ raise TProtocol.TProtocolException(message='Required field runningExperimentCount is unset!')
+ if self.allExperiments is None:
+ raise TProtocol.TProtocolException(message='Required field allExperiments is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.allExperimentCount)
+ value = (value * 31) ^ hash(self.completedExperimentCount)
+ value = (value * 31) ^ hash(self.cancelledExperimentCount)
+ value = (value * 31) ^ hash(self.failedExperimentCount)
+ value = (value * 31) ^ hash(self.createdExperimentCount)
+ value = (value * 31) ^ hash(self.runningExperimentCount)
+ value = (value * 31) ^ hash(self.allExperiments)
+ value = (value * 31) ^ hash(self.completedExperiments)
+ value = (value * 31) ^ hash(self.failedExperiments)
+ value = (value * 31) ^ hash(self.cancelledExperiments)
+ value = (value * 31) ^ hash(self.createdExperiments)
+ value = (value * 31) ^ hash(self.runningExperiments)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/ttypes.pyc
new file mode 100644
index 0000000..7f70307
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/experiment/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/__init__.pyc
new file mode 100644
index 0000000..71ffe2b
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/ttypes.py
new file mode 100644
index 0000000..192fb12
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/ttypes.py
@@ -0,0 +1,237 @@
+#
+# 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.status.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+
+class JobModel:
+ """
+ Attributes:
+ - jobId
+ - taskId
+ - processId
+ - jobDescription
+ - creationTime
+ - jobStatus
+ - computeResourceConsumed
+ - jobName
+ - workingDir
+ - stdOut
+ - stdErr
+ - exitCode
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'jobId', None, None, ), # 1
+ (2, TType.STRING, 'taskId', None, None, ), # 2
+ (3, TType.STRING, 'processId', None, None, ), # 3
+ (4, TType.STRING, 'jobDescription', None, None, ), # 4
+ (5, TType.I64, 'creationTime', None, None, ), # 5
+ (6, TType.STRUCT, 'jobStatus', (apache.airavata.model.status.ttypes.JobStatus, apache.airavata.model.status.ttypes.JobStatus.thrift_spec), None, ), # 6
+ (7, TType.STRING, 'computeResourceConsumed', None, None, ), # 7
+ (8, TType.STRING, 'jobName', None, None, ), # 8
+ (9, TType.STRING, 'workingDir', None, None, ), # 9
+ (10, TType.STRING, 'stdOut', None, None, ), # 10
+ (11, TType.STRING, 'stdErr', None, None, ), # 11
+ (12, TType.I32, 'exitCode', None, None, ), # 12
+ )
+
+ def __init__(self, jobId=None, taskId=None, processId=None, jobDescription=None, creationTime=None, jobStatus=None, computeResourceConsumed=None, jobName=None, workingDir=None, stdOut=None, stdErr=None, exitCode=None,):
+ self.jobId = jobId
+ self.taskId = taskId
+ self.processId = processId
+ self.jobDescription = jobDescription
+ self.creationTime = creationTime
+ self.jobStatus = jobStatus
+ self.computeResourceConsumed = computeResourceConsumed
+ self.jobName = jobName
+ self.workingDir = workingDir
+ self.stdOut = stdOut
+ self.stdErr = stdErr
+ self.exitCode = exitCode
+
+ 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.jobId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.taskId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.processId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.jobDescription = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRUCT:
+ self.jobStatus = apache.airavata.model.status.ttypes.JobStatus()
+ self.jobStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.computeResourceConsumed = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.jobName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.workingDir = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.stdOut = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.stdErr = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.I32:
+ self.exitCode = 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('JobModel')
+ if self.jobId is not None:
+ oprot.writeFieldBegin('jobId', TType.STRING, 1)
+ oprot.writeString(self.jobId)
+ oprot.writeFieldEnd()
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 2)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.processId is not None:
+ oprot.writeFieldBegin('processId', TType.STRING, 3)
+ oprot.writeString(self.processId)
+ oprot.writeFieldEnd()
+ if self.jobDescription is not None:
+ oprot.writeFieldBegin('jobDescription', TType.STRING, 4)
+ oprot.writeString(self.jobDescription)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 5)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.jobStatus is not None:
+ oprot.writeFieldBegin('jobStatus', TType.STRUCT, 6)
+ self.jobStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.computeResourceConsumed is not None:
+ oprot.writeFieldBegin('computeResourceConsumed', TType.STRING, 7)
+ oprot.writeString(self.computeResourceConsumed)
+ oprot.writeFieldEnd()
+ if self.jobName is not None:
+ oprot.writeFieldBegin('jobName', TType.STRING, 8)
+ oprot.writeString(self.jobName)
+ oprot.writeFieldEnd()
+ if self.workingDir is not None:
+ oprot.writeFieldBegin('workingDir', TType.STRING, 9)
+ oprot.writeString(self.workingDir)
+ oprot.writeFieldEnd()
+ if self.stdOut is not None:
+ oprot.writeFieldBegin('stdOut', TType.STRING, 10)
+ oprot.writeString(self.stdOut)
+ oprot.writeFieldEnd()
+ if self.stdErr is not None:
+ oprot.writeFieldBegin('stdErr', TType.STRING, 11)
+ oprot.writeString(self.stdErr)
+ oprot.writeFieldEnd()
+ if self.exitCode is not None:
+ oprot.writeFieldBegin('exitCode', TType.I32, 12)
+ oprot.writeI32(self.exitCode)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobId is None:
+ raise TProtocol.TProtocolException(message='Required field jobId is unset!')
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.processId is None:
+ raise TProtocol.TProtocolException(message='Required field processId is unset!')
+ if self.jobDescription is None:
+ raise TProtocol.TProtocolException(message='Required field jobDescription is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobId)
+ value = (value * 31) ^ hash(self.taskId)
+ value = (value * 31) ^ hash(self.processId)
+ value = (value * 31) ^ hash(self.jobDescription)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.jobStatus)
+ value = (value * 31) ^ hash(self.computeResourceConsumed)
+ value = (value * 31) ^ hash(self.jobName)
+ value = (value * 31) ^ hash(self.workingDir)
+ value = (value * 31) ^ hash(self.stdOut)
+ value = (value * 31) ^ hash(self.stdErr)
+ value = (value * 31) ^ hash(self.exitCode)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/ttypes.pyc
new file mode 100644
index 0000000..608662c
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/job/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/__init__.pyc
new file mode 100644
index 0000000..fffa15d
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/__init__.pyc
new file mode 100644
index 0000000..a613669
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/messaging/event/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
[13/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.py
new file mode 100644
index 0000000..9e58d3f
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/api/Airavata.py
@@ -0,0 +1,47815 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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 logging
+from ttypes import *
+from thrift.Thrift import TProcessor
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class Iface:
+ def getAPIVersion(self, authzToken):
+ """
+ Fetch Apache Airavata API version
+
+
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def isUserExists(self, authzToken, gatewayId, userName):
+ """
+ Verify if User Exists within Airavata.
+
+ @param gatewayId
+
+ @param userName
+
+ @return true/false
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ """
+ pass
+
+ def addGateway(self, authzToken, gateway):
+ """
+ Register a Gateway with Airavata.
+
+ @param gateway
+ The gateway data model.
+
+ @return gatewayId
+ Th unique identifier of the newly registered gateway.
+
+
+
+ Parameters:
+ - authzToken
+ - gateway
+ """
+ pass
+
+ def getAllUsersInGateway(self, authzToken, gatewayId):
+ """
+ Get all users in the gateway
+
+ @param gatewayId
+ The gateway data model.
+
+ @return users
+ list of usernames of the users in the gateway
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def updateGateway(self, authzToken, gatewayId, updatedGateway):
+ """
+ Update previously registered Gateway metadata.
+
+ @param gatewayId
+ The gateway Id of the Gateway which require an update.
+
+ @return gateway
+ Modified gateway obejct.
+
+ @exception AiravataClientException
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - updatedGateway
+ """
+ pass
+
+ def getGateway(self, authzToken, gatewayId):
+ """
+ Get Gateway details by providing gatewayId
+
+ @param gatewayId
+ The gateway Id of the Gateway.
+
+ @return gateway
+ Gateway obejct.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def deleteGateway(self, authzToken, gatewayId):
+ """
+ Delete a Gateway
+
+ @param gatewayId
+ The gateway Id of the Gateway to be deleted.
+
+ @return boolean
+ Boolean identifier for the success or failure of the deletion operation.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getAllGateways(self, authzToken):
+ """
+ Get All the Gateways Connected to Airavata.
+
+
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def isGatewayExist(self, authzToken, gatewayId):
+ """
+ Check for the Existance of a Gateway within Airavata
+
+ @param gatewayId
+ Provide the gatewayId of the gateway you want to check the existancy
+
+ @return boolean
+ Boolean idetifier for the existance or non-existane of the gatewayId
+
+ @return gatewayId
+ return the gatewayId of the existing gateway.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def createNotification(self, authzToken, notification):
+ """
+ * API methods to retrieve notifications
+ *
+
+ Parameters:
+ - authzToken
+ - notification
+ """
+ pass
+
+ def updateNotification(self, authzToken, notification):
+ """
+ Parameters:
+ - authzToken
+ - notification
+ """
+ pass
+
+ def deleteNotification(self, authzToken, gatewayId, notificationId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ - notificationId
+ """
+ pass
+
+ def getNotification(self, authzToken, gatewayId, notificationId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ - notificationId
+ """
+ pass
+
+ def getAllNotifications(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def generateAndRegisterSSHKeys(self, authzToken, gatewayId, userName):
+ """
+ Generate and Register SSH Key Pair with Airavata Credential Store.
+
+ @param gatewayId
+ The identifier for the requested Gateway.
+
+ @param userName
+ The User for which the credential should be registered. For community accounts, this user is the name of the
+ community user name. For computational resources, this user name need not be the same user name on resoruces.
+
+ @return airavataCredStoreToken
+ An SSH Key pair is generated and stored in the credential store and associated with users or community account
+ belonging to a Gateway.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ """
+ pass
+
+ def registerPwdCredential(self, authzToken, gatewayId, portalUserName, loginUserName, password, description):
+ """
+ Generate and Register Username PWD Pair with Airavata Credential Store.
+
+ @param gatewayId
+ The identifier for the requested Gateway.
+
+ @param portalUserName
+ The User for which the credential should be registered. For community accounts, this user is the name of the
+ community user name. For computational resources, this user name need not be the same user name on resoruces.
+
+ @param loginUserName
+
+ @param password
+
+ @return airavataCredStoreToken
+ An SSH Key pair is generated and stored in the credential store and associated with users or community account
+ belonging to a Gateway.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - portalUserName
+ - loginUserName
+ - password
+ - description
+ """
+ pass
+
+ def getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+ """
+ Get a Public Key by Providing the Token
+
+ @param CredStoreToken
+ Credential Store Token which you want to find the Public Key for.
+
+ @param gatewayId
+ This is the unique identifier of your gateway where the token and public key was generated from.
+
+ @return publicKey
+
+
+
+ Parameters:
+ - authzToken
+ - airavataCredStoreToken
+ - gatewayId
+ """
+ pass
+
+ def getAllGatewaySSHPubKeys(self, authzToken, gatewayId):
+ """
+
+ Get all Public Keys of the Gateway
+
+ @param CredStoreToken
+ Credential Store Token which you want to find the Public Key for.
+
+ @param gatewayId
+ This is the unique identifier of your gateway where the token and public key was generated from.
+
+ @return publicKey
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getAllGatewayPWDCredentials(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def deleteSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+ """
+
+ Delete a Gateway
+
+ @param gatewayId
+ The gateway Id of the Gateway to be deleted.
+
+ @return boolean
+ Boolean identifier for the success or failure of the deletion operation.
+
+
+
+ Parameters:
+ - authzToken
+ - airavataCredStoreToken
+ - gatewayId
+ """
+ pass
+
+ def deletePWDCredential(self, authzToken, airavataCredStoreToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - airavataCredStoreToken
+ - gatewayId
+ """
+ pass
+
+ def createProject(self, authzToken, gatewayId, project):
+ """
+
+ Creates a Project with basic metadata.
+ A Project is a container of experiments.
+
+ @param gatewayId
+ The identifier for the requested gateway.
+
+ @param Project
+ The Project Object described in the workspace_model.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - project
+ """
+ pass
+
+ def updateProject(self, authzToken, projectId, updatedProject):
+ """
+
+ Update an Existing Project
+
+ @param projectId
+ The projectId of the project needed an update.
+
+ @return void
+ Currently this does not return any value.
+
+
+
+ Parameters:
+ - authzToken
+ - projectId
+ - updatedProject
+ """
+ pass
+
+ def getProject(self, authzToken, projectId):
+ """
+
+ Get a Project by ID
+ This method is to obtain a project by providing a projectId.
+
+ @param projectId
+ projectId of the project you require.
+
+ @return project
+ project data model will be returned.
+
+
+
+ Parameters:
+ - authzToken
+ - projectId
+ """
+ pass
+
+ def deleteProject(self, authzToken, projectId):
+ """
+
+ Delete a Project
+ This method is used to delete an existing Project.
+
+ @param projectId
+ projectId of the project you want to delete.
+
+ @return boolean
+ Boolean identifier for the success or failure of the deletion operation.
+
+ NOTE: This method is not used within gateways connected with Airavata.
+
+
+
+ Parameters:
+ - authzToken
+ - projectId
+ """
+ pass
+
+ def getUserProjects(self, authzToken, gatewayId, userName, limit, offset):
+ """
+
+ Get All User Projects
+ Get all Project for the user with pagination. Results will be ordered based on creation time DESC.
+
+ @param gatewayId
+ The identifier for the requested gateway.
+
+ @param userName
+ The identifier of the user.
+
+ @param limit
+ The amount results to be fetched.
+
+ @param offset
+ The starting point of the results to be fetched.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - limit
+ - offset
+ """
+ pass
+
+ def searchProjects(self, authzToken, gatewayId, userName, filters, limit, offset):
+ """
+
+ Search User Projects
+ Search and get all Projects for user by project description or/and project name with pagination.
+ Results will be ordered based on creation time DESC.
+
+ @param gatewayId
+ The unique identifier of the gateway making the request.
+
+ @param userName
+ The identifier of the user.
+
+ @param filters
+ Map of multiple filter criteria. Currenlt search filters includes Project Name and Project Description
+
+ @param limit
+ The amount results to be fetched.
+
+ @param offset
+ The starting point of the results to be fetched.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - filters
+ - limit
+ - offset
+ """
+ pass
+
+ def searchExperiments(self, authzToken, gatewayId, userName, filters, limit, offset):
+ """
+ Search Experiments.
+ Search Experiments by using multiple filter criteria with pagination. Results will be sorted based on creation time DESC.
+
+ @param gatewayId
+ Identifier of the requested gateway.
+
+ @param userName
+ Username of the user requesting the search function.
+
+ @param filters
+ Map of multiple filter criteria. Currenlt search filters includes Experiment Name, Description, Application, etc....
+
+ @param limit
+ Amount of results to be fetched.
+
+ @param offset
+ The starting point of the results to be fetched.
+
+ @return ExperimentSummaryModel
+ List of experiments for the given search filter. Here only the Experiment summary will be returned.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - filters
+ - limit
+ - offset
+ """
+ pass
+
+ def getExperimentStatistics(self, authzToken, gatewayId, fromTime, toTime):
+ """
+
+ Get Experiment Statistics
+ Get Experiment Statisitics for a given gateway for a specific time period. This feature is available only for admins of a particular gateway. Gateway admin access is managed by the user roles.
+
+ @param gatewayId
+ Unique identifier of the gateway making the request to fetch statistics.
+
+ @param fromTime
+ Starting date time.
+
+ @param toTime
+ Ending data time.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - fromTime
+ - toTime
+ """
+ pass
+
+ def getExperimentsInProject(self, authzToken, projectId, limit, offset):
+ """
+
+ Get All Experiments of the Project
+ Get Experiments within project with pagination. Results will be sorted based on creation time DESC.
+
+ @param projectId
+ Uniqie identifier of the project.
+
+ @param limit
+ Amount of results to be fetched.
+
+ @param offset
+ The starting point of the results to be fetched.
+
+
+
+ Parameters:
+ - authzToken
+ - projectId
+ - limit
+ - offset
+ """
+ pass
+
+ def getUserExperiments(self, authzToken, gatewayId, userName, limit, offset):
+ """
+
+ Get All Experiments of the User
+ Get experiments by user with pagination. Results will be sorted based on creation time DESC.
+
+ @param gatewayId
+ Identifier of the requesting gateway.
+
+ @param userName
+ Username of the requested end user.
+
+ @param limit
+ Amount of results to be fetched.
+
+ @param offset
+ The starting point of the results to be fetched.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - limit
+ - offset
+ """
+ pass
+
+ def createExperiment(self, authzToken, gatewayId, experiment):
+ """
+ *
+ * Create New Experiment
+ * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
+ * but inferred from the sshKeyAuthentication header. This experiment is just a persistent place holder. The client
+ * has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except
+ * registering the experiment in a persistent store.
+ *
+ * @param gatewayId
+ * The unique ID of the gateway where the experiment is been created.
+ *
+ * @param ExperimentModel
+ * The create experiment will require the basic experiment metadata like the name and description, intended user,
+ * the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment
+ * the ExperimentMetadata is a required field.
+ *
+ * @return
+ * The server-side generated.airavata.registry.core.experiment.globally unique identifier.
+ *
+ * @throws org.apache.airavata.model.error.InvalidRequestException
+ * For any incorrect forming of the request itself.
+ *
+ * @throws org.apache.airavata.model.error.AiravataClientException
+ * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+ *
+ * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ * step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ * gateway registration steps and retry this request.
+ *
+ * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ * For now this is a place holder.
+ *
+ * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ * is implemented, the authorization will be more substantial.
+ *
+ * @throws org.apache.airavata.model.error.AiravataSystemException
+ * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ * rather an Airavata Administrator will be notified to take corrective action.
+ *
+ *
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - experiment
+ """
+ pass
+
+ def deleteExperiment(self, authzToken, experimentId):
+ """
+
+ Delete an Experiment
+ If the experiment is not already launched experiment can be deleted.
+
+ @param authzToken
+
+ @param experiementId
+ Experiment ID of the experimnet you want to delete.
+
+ @return boolean
+ Identifier for the success or failure of the deletion operation.
+
+
+
+ Parameters:
+ - authzToken
+ - experimentId
+ """
+ pass
+
+ def getExperiment(self, authzToken, airavataExperimentId):
+ """
+ *
+ * Get Experiment
+ * Fetch previously created experiment metadata.
+ *
+ * @param airavataExperimentId
+ * The unique identifier of the requested experiment. This ID is returned during the create experiment step.
+ *
+ * @return ExperimentModel
+ * This method will return the previously stored experiment metadata.
+ *
+ * @throws org.apache.airavata.model.error.InvalidRequestException
+ * For any incorrect forming of the request itself.
+ *
+ * @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+ *
+ * @throws org.apache.airavata.model.error.AiravataClientException
+ * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+ *
+ * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ * step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ * gateway registration steps and retry this request.
+ *
+ * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ * For now this is a place holder.
+ *
+ * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ * is implemented, the authorization will be more substantial.
+ *
+ * @throws org.apache.airavata.model.error.AiravataSystemException
+ * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ * rather an Airavata Administrator will be notified to take corrective action.
+ *
+ *
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getDetailedExperimentTree(self, authzToken, airavataExperimentId):
+ """
+
+ Get Complete Experiment Details
+ Fetch the completed nested tree structue of previously created experiment metadata which includes processes ->
+ tasks -> jobs information.
+
+ @param airavataExperimentId
+ The identifier for the requested experiment. This is returned during the create experiment step.
+
+ @return ExperimentModel
+ This method will return the previously stored experiment metadata including application input parameters, computational resource scheduling
+ information, special input output handling and additional quality of service parameters.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def updateExperiment(self, authzToken, airavataExperimentId, experiment):
+ """
+
+ Update a Previously Created Experiment
+ Configure the CREATED experiment with required inputs, scheduling and other quality of service parameters. This method only updates the experiment object within the registry.
+ The experiment has to be launched to make it actionable by the server.
+
+ @param airavataExperimentId
+ The identifier for the requested experiment. This is returned during the create experiment step.
+
+ @param ExperimentModel
+ The configuration information of the experiment with application input parameters, computational resource scheduling
+ information, special input output handling and additional quality of service parameters.
+
+ @return
+ This method call does not have a return value.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - experiment
+ """
+ pass
+
+ def updateExperimentConfiguration(self, authzToken, airavataExperimentId, userConfiguration):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - userConfiguration
+ """
+ pass
+
+ def updateResourceScheduleing(self, authzToken, airavataExperimentId, resourceScheduling):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - resourceScheduling
+ """
+ pass
+
+ def validateExperiment(self, authzToken, airavataExperimentId):
+ """
+ *
+ * Validate experiment configuration.
+ * A true in general indicates, the experiment is ready to be launched.
+ *
+ * @param airavataExperimentId
+ * Unique identifier of the experiment (Experimnent ID) of the experiment which need to be validated.
+ *
+ * @return boolean
+ * Identifier for the success or failure of the validation operation.
+ *
+ *
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def launchExperiment(self, authzToken, airavataExperimentId, gatewayId):
+ """
+
+ Launch a Previously Created & Configured Experiment.
+ Airavata Server will then start processing the request and appropriate notifications and intermediate and output data will be subsequently available for this experiment.
+
+ @gatewayId
+ ID of the gateway which will launch the experiment.
+
+ @param airavataExperimentId
+ The identifier for the requested experiment. This is returned during the create experiment step.
+
+ @return
+ This method call does not have a return value.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - gatewayId
+ """
+ pass
+
+ def getExperimentStatus(self, authzToken, airavataExperimentId):
+ """
+
+ Get Experiment Status
+
+ Obtain the status of an experiment by providing the Experiment Id
+
+ @param authzToken
+
+ @param airavataExperimentId
+ Experiment ID of the experimnet you require the status.
+
+ @return ExperimentStatus
+ ExperimentStatus model with the current status will be returned.
+
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getExperimentOutputs(self, authzToken, airavataExperimentId):
+ """
+
+ Get Experiment Outputs
+ This method to be used when need to obtain final outputs of a certain Experiment
+
+ @param authzToken
+
+ @param airavataExperimentId
+ Experiment ID of the experimnet you need the outputs.
+
+ @return list
+ List of experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment.
+
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getIntermediateOutputs(self, authzToken, airavataExperimentId):
+ """
+
+ Get Intermediate Experiment Outputs
+ This method to be used when need to obtain intermediate outputs of a certain Experiment
+
+ @param authzToken
+
+ @param airavataExperimentId
+ Experiment ID of the experimnet you need intermediate outputs.
+
+ @return list
+ List of intermediate experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment.
+
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getJobStatuses(self, authzToken, airavataExperimentId):
+ """
+
+ Get Job Statuses for an Experiment
+ This method to be used when need to get the job status of an Experiment. An experiment may have one or many jobs; there for one or many job statuses may turnup
+
+ @param authzToken
+
+ @param experiementId
+ Experiment ID of the experimnet you need the job statuses.
+
+ @return JobStatus
+ Job status (string) for all all the existing jobs for the experiment will be returned in the form of a map
+
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getJobDetails(self, authzToken, airavataExperimentId):
+ """
+
+ Get Job Details for all the jobs within an Experiment.
+ This method to be used when need to get the job details for one or many jobs of an Experiment.
+
+ @param authzToken
+
+ @param experiementId
+ Experiment ID of the experimnet you need job details.
+
+ @return list of JobDetails
+ Job details.
+
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def cloneExperiment(self, authzToken, existingExperimentID, newExperimentName):
+ """
+
+ Clone an Existing Experiment
+ Existing specified experiment is cloned and a new name is provided. A copy of the experiment configuration is made and is persisted with new metadata.
+ The client has to subsequently update this configuration if needed and launch the cloned experiment.
+
+ @param newExperimentName
+ experiment name that should be used in the cloned experiment
+
+ @param updatedExperiment
+ Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
+ the basic experiment metadata like the name and description, intended user, the gateway identifier and if the experiment
+ should be shared public by default.
+
+ @return
+ The server-side generated.airavata.registry.core.experiment.globally unique identifier (Experiment ID) for the newly cloned experiment.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - existingExperimentID
+ - newExperimentName
+ """
+ pass
+
+ def terminateExperiment(self, authzToken, airavataExperimentId, gatewayId):
+ """
+
+ Terminate a running Experiment.
+
+ @gatewayId
+ ID of the gateway which will terminate the running Experiment.
+
+ @param airavataExperimentId
+ The identifier of the experiment required termination. This ID is returned during the create experiment step.
+
+ @return status
+ This method call does not have a return value.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - gatewayId
+ """
+ pass
+
+ def registerApplicationModule(self, authzToken, gatewayId, applicationModule):
+ """
+
+ Register a Application Module.
+
+ @gatewayId
+ ID of the gateway which is registering the new Application Module.
+
+ @param applicationModule
+ Application Module Object created from the datamodel.
+
+ @return appModuleId
+ Returns the server-side generated airavata appModule globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - applicationModule
+ """
+ pass
+
+ def getApplicationModule(self, authzToken, appModuleId):
+ """
+
+ Fetch a Application Module.
+
+ @param appModuleId
+ The unique identifier of the application module required
+
+ @return applicationModule
+ Returns an Application Module Object.
+
+
+ Parameters:
+ - authzToken
+ - appModuleId
+ """
+ pass
+
+ def updateApplicationModule(self, authzToken, appModuleId, applicationModule):
+ """
+
+ Update a Application Module.
+
+ @param appModuleId
+ The identifier for the requested application module to be updated.
+
+ @param applicationModule
+ Application Module Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - appModuleId
+ - applicationModule
+ """
+ pass
+
+ def getAllAppModules(self, authzToken, gatewayId):
+ """
+
+ Fetch all Application Module Descriptions.
+
+ @param gatewayId
+ ID of the gateway which need to list all available application deployment documentation.
+
+ @return list
+ Returns the list of all Application Module Objects.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def deleteApplicationModule(self, authzToken, appModuleId):
+ """
+
+ Delete an Application Module.
+
+ @param appModuleId
+ The identifier of the Application Module to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - appModuleId
+ """
+ pass
+
+ def registerApplicationDeployment(self, authzToken, gatewayId, applicationDeployment):
+ """
+
+ Register an Application Deployment.
+
+ @param gatewayId
+ ID of the gateway which is registering the new Application Deployment.
+
+ @param applicationDeployment
+ Application Module Object created from the datamodel.
+
+ @return appDeploymentId
+ Returns a server-side generated airavata appDeployment globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - applicationDeployment
+ """
+ pass
+
+ def getApplicationDeployment(self, authzToken, appDeploymentId):
+ """
+
+ Fetch a Application Deployment.
+
+ @param appDeploymentId
+ The identifier for the requested application module
+
+ @return applicationDeployment
+ Returns a application Deployment Object.
+
+
+ Parameters:
+ - authzToken
+ - appDeploymentId
+ """
+ pass
+
+ def updateApplicationDeployment(self, authzToken, appDeploymentId, applicationDeployment):
+ """
+
+ Update an Application Deployment.
+
+ @param appDeploymentId
+ The identifier of the requested application deployment to be updated.
+
+ @param appDeployment
+ Application Deployment Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - appDeploymentId
+ - applicationDeployment
+ """
+ pass
+
+ def deleteApplicationDeployment(self, authzToken, appDeploymentId):
+ """
+
+ Delete an Application Deployment.
+
+ @param appDeploymentId
+ The unique identifier of application deployment to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - appDeploymentId
+ """
+ pass
+
+ def getAllApplicationDeployments(self, authzToken, gatewayId):
+ """
+
+ Fetch all Application Deployment Descriptions.
+
+ @param gatewayId
+ ID of the gateway which need to list all available application deployment documentation.
+
+ @return list<applicationDeployment.
+ Returns the list of all application Deployment Objects.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getAppModuleDeployedResources(self, authzToken, appModuleId):
+ """
+ Fetch a list of Deployed Compute Hosts.
+
+ @param appModuleId
+ The identifier for the requested application module
+
+ @return list<string>
+ Returns a list of Deployed Resources.
+
+
+ Parameters:
+ - authzToken
+ - appModuleId
+ """
+ pass
+
+ def registerApplicationInterface(self, authzToken, gatewayId, applicationInterface):
+ """
+
+ Register a Application Interface.
+
+ @param applicationInterface
+ Application Module Object created from the datamodel.
+
+ @return appInterfaceId
+ Returns a server-side generated airavata application interface globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - applicationInterface
+ """
+ pass
+
+ def cloneApplicationInterface(self, authzToken, existingAppInterfaceID, newApplicationName, gatewayId):
+ """
+
+ Clone an Application Interface.
+
+ @gatewayId
+ The identifier for the gateway profile to be requested
+
+ @param existingAppInterfaceID
+ Identifier of the existing Application interface you wich to clone.
+
+ @param newApplicationName
+ Name for the new application interface.
+
+ @return appInterfaceId
+ Returns a server-side generated globally unique identifier for the newly cloned application interface.
+
+
+ Parameters:
+ - authzToken
+ - existingAppInterfaceID
+ - newApplicationName
+ - gatewayId
+ """
+ pass
+
+ def getApplicationInterface(self, authzToken, appInterfaceId):
+ """
+
+ Fetch an Application Interface.
+
+ @param appInterfaceId
+ The identifier for the requested application interface.
+
+ @return applicationInterface
+ Returns an application Interface Object.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def updateApplicationInterface(self, authzToken, appInterfaceId, applicationInterface):
+ """
+
+ Update a Application Interface.
+
+ @param appInterfaceId
+ The identifier of the requested application deployment to be updated.
+
+ @param appInterface
+ Application Interface Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ - applicationInterface
+ """
+ pass
+
+ def deleteApplicationInterface(self, authzToken, appInterfaceId):
+ """
+
+ Delete an Application Interface.
+
+ @param appInterfaceId
+ The identifier for the requested application interface to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def getAllApplicationInterfaceNames(self, authzToken, gatewayId):
+ """
+
+ Fetch name and ID of Application Interface documents.
+
+
+ @return map<applicationId, applicationInterfaceNames>
+ Returns a list of application interfaces with corresponsing ID's
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getAllApplicationInterfaces(self, authzToken, gatewayId):
+ """
+
+ Fetch all Application Interface documents.
+
+
+ @return map<applicationId, applicationInterfaceNames>
+ Returns a list of application interfaces documents (Application Interface ID, name, description, Inputs and Outputs objects).
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getApplicationInputs(self, authzToken, appInterfaceId):
+ """
+
+ Fetch the list of Application Inputs.
+
+ @param appInterfaceId
+ The identifier of the application interface which need inputs to be fetched.
+
+ @return list<application_interface_model.InputDataObjectType>
+ Returns a list of application inputs.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def getApplicationOutputs(self, authzToken, appInterfaceId):
+ """
+
+ Fetch list of Application Outputs.
+
+ @param appInterfaceId
+ The identifier of the application interface which need outputs to be fetched.
+
+ @return list<application_interface_model.OutputDataObjectType>
+ Returns a list of application outputs.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def getAvailableAppInterfaceComputeResources(self, authzToken, appInterfaceId):
+ """
+
+ Fetch a list of all deployed Compute Hosts for a given application interfaces.
+
+ @param appInterfaceId
+ The identifier for the requested application interface.
+
+ @return map<computeResourceId, computeResourceName>
+ A map of registered compute resource id's and their corresponding hostnames.
+ Deployments of each modules listed within the interfaces will be listed.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def registerComputeResource(self, authzToken, computeResourceDescription):
+ """
+ Register a Compute Resource.
+
+ @param computeResourceDescription
+ Compute Resource Object created from the datamodel.
+
+ @return computeResourceId
+ Returns a server-side generated airavata compute resource globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceDescription
+ """
+ pass
+
+ def getComputeResource(self, authzToken, computeResourceId):
+ """
+ Fetch the given Compute Resource.
+
+ @param computeResourceId
+ The identifier for the requested compute resource
+
+ @return computeResourceDescription
+ Compute Resource Object created from the datamodel..
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ """
+ pass
+
+ def getAllComputeResourceNames(self, authzToken):
+ """
+
+ Fetch all registered Compute Resources.
+
+ @return A map of registered compute resource id's and thier corresponding hostnames.
+ Compute Resource Object created from the datamodel..
+
+
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def updateComputeResource(self, authzToken, computeResourceId, computeResourceDescription):
+ """
+ Update a Compute Resource.
+
+ @param computeResourceId
+ The identifier for the requested compute resource to be updated.
+
+ @param computeResourceDescription
+ Compute Resource Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - computeResourceDescription
+ """
+ pass
+
+ def deleteComputeResource(self, authzToken, computeResourceId):
+ """
+ Delete a Compute Resource.
+
+ @param computeResourceId
+ The identifier for the requested compute resource to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ """
+ pass
+
+ def registerStorageResource(self, authzToken, storageResourceDescription):
+ """
+ Register a Storage Resource.
+
+ @param storageResourceDescription
+ Storge Resource Object created from the datamodel.
+
+ @return storageResourceId
+ Returns a server-side generated airavata storage resource globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - storageResourceDescription
+ """
+ pass
+
+ def getStorageResource(self, authzToken, storageResourceId):
+ """
+ Fetch the given Storage Resource.
+
+ @param storageResourceId
+ The identifier for the requested storage resource
+
+ @return storageResourceDescription
+ Storage Resource Object created from the datamodel..
+
+
+ Parameters:
+ - authzToken
+ - storageResourceId
+ """
+ pass
+
+ def getAllStorageResourceNames(self, authzToken):
+ """
+ Fetch all registered Storage Resources.
+
+ @return A map of registered compute resource id's and thier corresponding hostnames.
+ Compute Resource Object created from the datamodel..
+
+
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def updateStorageResource(self, authzToken, storageResourceId, storageResourceDescription):
+ """
+ Update a Storage Resource.
+
+ @param storageResourceId
+ The identifier for the requested compute resource to be updated.
+
+ @param storageResourceDescription
+ Storage Resource Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - storageResourceId
+ - storageResourceDescription
+ """
+ pass
+
+ def deleteStorageResource(self, authzToken, storageResourceId):
+ """
+ Delete a Storage Resource.
+
+ @param storageResourceId
+ The identifier of the requested compute resource to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - storageResourceId
+ """
+ pass
+
+ def addLocalSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, localSubmission):
+ """
+ Add a Local Job Submission details to a compute resource
+ App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param localSubmission
+ The LOCALSubmission object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - localSubmission
+ """
+ pass
+
+ def updateLocalSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, localSubmission):
+ """
+ Update the given Local Job Submission details
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be updated.
+
+ @param localSubmission
+ The LOCALSubmission object to be updated.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - localSubmission
+ """
+ pass
+
+ def getLocalJobSubmission(self, authzToken, jobSubmissionId):
+ """
+ This method returns localJobSubmission object
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be retrieved.
+ @return LOCALSubmission instance
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionId
+ """
+ pass
+
+ def addSSHJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, sshJobSubmission):
+ """
+ Add a SSH Job Submission details to a compute resource
+ App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param sshJobSubmission
+ The SSHJobSubmission object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - sshJobSubmission
+ """
+ pass
+
+ def addSSHForkJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, sshJobSubmission):
+ """
+ Add a SSH_FORK Job Submission details to a compute resource
+ App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param sshJobSubmission
+ The SSHJobSubmission object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - sshJobSubmission
+ """
+ pass
+
+ def getSSHJobSubmission(self, authzToken, jobSubmissionId):
+ """
+ This method returns SSHJobSubmission object
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be retrieved.
+ @return SSHJobSubmission instance
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionId
+ """
+ pass
+
+ def addUNICOREJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, unicoreJobSubmission):
+ """
+
+ Add a UNICORE Job Submission details to a compute resource
+ App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param unicoreJobSubmission
+ The UnicoreJobSubmission object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - unicoreJobSubmission
+ """
+ pass
+
+ def getUnicoreJobSubmission(self, authzToken, jobSubmissionId):
+ """
+ *
+ * This method returns UnicoreJobSubmission object
+ *
+ * @param jobSubmissionInterfaceId
+ * The identifier of the JobSubmission Interface to be retrieved.
+ * @return UnicoreJobSubmission instance
+ *
+ *
+
+ Parameters:
+ - authzToken
+ - jobSubmissionId
+ """
+ pass
+
+ def addCloudJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, cloudSubmission):
+ """
+ *
+ * Add a Cloud Job Submission details to a compute resource
+ * App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+ *
+ * @param computeResourceId
+ * The identifier of the compute resource to which JobSubmission protocol to be added
+ *
+ * @param priorityOrder
+ * Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+ *
+ * @param sshJobSubmission
+ * The SSHJobSubmission object to be added to the resource.
+ *
+ * @return status
+ * Returns the unique job submission id.
+ *
+ *
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - cloudSubmission
+ """
+ pass
+
+ def getCloudJobSubmission(self, authzToken, jobSubmissionId):
+ """
+ *
+ * This method returns cloudJobSubmission object
+ * @param jobSubmissionInterfaceI
+ * The identifier of the JobSubmission Interface to be retrieved.
+ * @return CloudJobSubmission instance
+ *
+
+ Parameters:
+ - authzToken
+ - jobSubmissionId
+ """
+ pass
+
+ def updateSSHJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, sshJobSubmission):
+ """
+
+ Update the given SSH Job Submission details
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be updated.
+
+ @param sshJobSubmission
+ The SSHJobSubmission object to be updated.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - sshJobSubmission
+ """
+ pass
+
+ def updateCloudJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, sshJobSubmission):
+ """
+
+ Update the cloud Job Submission details
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be updated.
+
+ @param cloudJobSubmission
+ The CloudJobSubmission object to be updated.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - sshJobSubmission
+ """
+ pass
+
+ def updateUnicoreJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, unicoreJobSubmission):
+ """
+
+ Update the UNIOCRE Job Submission details
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be updated.
+
+ @param UnicoreJobSubmission
+ The UnicoreJobSubmission object to be updated.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - unicoreJobSubmission
+ """
+ pass
+
+ def addLocalDataMovementDetails(self, authzToken, productUri, dataMoveType, priorityOrder, localDataMovement):
+ """
+
+ Add a Local data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param productUri
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param DMType
+ DMType object to be added to the resource.
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param localDataMovement
+ The LOCALDataMovement object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+
+ Parameters:
+ - authzToken
+ - productUri
+ - dataMoveType
+ - priorityOrder
+ - localDataMovement
+ """
+ pass
+
+ def updateLocalDataMovementDetails(self, authzToken, dataMovementInterfaceId, localDataMovement):
+ """
+
+ Update the given Local data movement details
+
+ @param dataMovementInterfaceId
+ The identifier of the data movement Interface to be updated.
+
+ @param localDataMovement
+ The LOCALDataMovement object to be updated.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - localDataMovement
+ """
+ pass
+
+ def getLocalDataMovement(self, authzToken, dataMovementId):
+ """
+
+ This method returns local datamovement object.
+
+ @param dataMovementId
+ The identifier of the datamovement Interface to be retrieved.
+
+ @return LOCALDataMovement instance
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementId
+ """
+ pass
+
+ def addSCPDataMovementDetails(self, authzToken, productUri, dataMoveType, priorityOrder, scpDataMovement):
+ """
+
+ Add a SCP data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param productUri
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param scpDataMovement
+ The SCPDataMovement object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - productUri
+ - dataMoveType
+ - priorityOrder
+ - scpDataMovement
+ """
+ pass
+
+ def updateSCPDataMovementDetails(self, authzToken, dataMovementInterfaceId, scpDataMovement):
+ """
+
+ Update the given scp data movement details
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param dataMovementInterfaceId
+ The identifier of the data movement Interface to be updated.
+
+ @param scpDataMovement
+ The SCPDataMovement object to be updated.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - scpDataMovement
+ """
+ pass
+
+ def getSCPDataMovement(self, authzToken, dataMovementId):
+ """
+ This method returns SCP datamovement object
+
+ @param dataMovementId
+ The identifier of the datamovement Interface to be retrieved.
+
+ @return SCPDataMovement instance
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementId
+ """
+ pass
+
+ def addUnicoreDataMovementDetails(self, authzToken, productUri, dataMoveType, priorityOrder, unicoreDataMovement):
+ """
+
+ Add a UNICORE data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param productUri
+ The identifier of the compute resource to which data movement protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param UnicoreDataMovement
+ The UnicoreDataMovement object to be added to the resource.
+
+ @return status
+ Returns the unique data movement id.
+
+
+ Parameters:
+ - authzToken
+ - productUri
+ - dataMoveType
+ - priorityOrder
+ - unicoreDataMovement
+ """
+ pass
+
+ def updateUnicoreDataMovementDetails(self, authzToken, dataMovementInterfaceId, unicoreDataMovement):
+ """
+
+ Update a selected UNICORE data movement details
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param dataMovementInterfaceId
+ The identifier of the data movement Interface to be updated.
+
+ @param UnicoreDataMovement
+ The UnicoreDataMovement object to be updated.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - unicoreDataMovement
+ """
+ pass
+
+ def getUnicoreDataMovement(self, authzToken, dataMovementId):
+ """
+
+ This method returns UNICORE datamovement object
+
+ @param dataMovementId
+ The identifier of the datamovement Interface to be retrieved.
+
+ @return UnicoreDataMovement instance
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementId
+ """
+ pass
+
+ def addGridFTPDataMovementDetails(self, authzToken, productUri, dataMoveType, priorityOrder, gridFTPDataMovement):
+ """
+
+ Add a GridFTP data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param productUri
+ The identifier of the compute resource to which dataMovement protocol to be added
+
+ @param DMType
+ The DMType object to be added to the resource.
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param gridFTPDataMovement
+ The GridFTPDataMovement object to be added to the resource.
+
+ @return status
+ Returns the unique data movement id.
+
+
+
+ Parameters:
+ - authzToken
+ - productUri
+ - dataMoveType
+ - priorityOrder
+ - gridFTPDataMovement
+ """
+ pass
+
+ def updateGridFTPDataMovementDetails(self, authzToken, dataMovementInterfaceId, gridFTPDataMovement):
+ """
+ Update the given GridFTP data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param dataMovementInterfaceId
+ The identifier of the data movement Interface to be updated.
+
+ @param gridFTPDataMovement
+ The GridFTPDataMovement object to be updated.
+
+ @return boolean
+ Returns a success/failure of the update.
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - gridFTPDataMovement
+ """
+ pass
+
+ def getGridFTPDataMovement(self, authzToken, dataMovementId):
+ """
+ This method returns GridFTP datamovement object
+
+ @param dataMovementId
+ The identifier of the datamovement Interface to be retrieved.
+
+ @return GridFTPDataMovement instance
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementId
+ """
+ pass
+
+ def changeJobSubmissionPriority(self, authzToken, jobSubmissionInterfaceId, newPriorityOrder):
+ """
+ Change the priority of a given job submisison interface
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be changed
+
+ @param priorityOrder
+ The new priority of the job manager interface.
+
+ @return status
+ Returns a success/failure of the change.
+
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - newPriorityOrder
+ """
+ pass
+
+ def changeDataMovementPriority(self, authzToken, dataMovementInterfaceId, newPriorityOrder):
+ """
+ Change the priority of a given data movement interface
+
+ @param dataMovementInterfaceId
+ The identifier of the DataMovement Interface to be changed
+
+ @param priorityOrder
+ The new priority of the data movement interface.
+
+ @return status
+ Returns a success/failure of the change.
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - newPriorityOrder
+ """
+ pass
+
+ def changeJobSubmissionPriorities(self, authzToken, jobSubmissionPriorityMap):
+ """
+ Change the priorities of a given set of job submission interfaces
+
+ @param jobSubmissionPriorityMap
+ A Map of identifiers of the JobSubmission Interfaces and thier associated priorities to be set.
+
+ @return status
+ Returns a success/failure of the changes.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionPriorityMap
+ """
+ pass
+
+ def changeDataMovementPriorities(self, authzToken, dataMovementPriorityMap):
+ """
+ Change the priorities of a given set of data movement interfaces
+
+ @param dataMovementPriorityMap
+ A Map of identifiers of the DataMovement Interfaces and thier associated priorities to be set.
+
+ @return status
+ Returns a success/failure of the changes.
+
+
+
+ Parameters:
+ - authzToken
+ - dataMovementPriorityMap
+ """
+ pass
+
+ def deleteJobSubmissionInterface(self, authzToken, computeResourceId, jobSubmissionInterfaceId):
+ """
+ Delete a given job submisison interface
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be changed
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - jobSubmissionInterfaceId
+ """
+ pass
+
+ def deleteDataMovementInterface(self, authzToken, productUri, dataMovementInterfaceId, dataMoveType):
+ """
+ Delete a given data movement interface
+
+ @param dataMovementInterfaceId
+ The identifier of the DataMovement Interface to be changed
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+
+ Parameters:
+ - authzToken
+ - productUri
+ - dataMovementInterfaceId
+ - dataMoveType
+ """
+ pass
+
+ def registerResourceJobManager(self, authzToken, resourceJobManager):
+ """
+ Parameters:
+ - authzToken
+ - resourceJobManager
+ """
+ pass
+
+ def updateResourceJobManager(self, authzToken, resourceJobManagerId, updatedResourceJobManager):
+ """
+ Parameters:
+ - authzToken
+ - resourceJobManagerId
+ - updatedResourceJobManager
+ """
+ pass
+
+ def getResourceJobManager(self, authzToken, resourceJobManagerId):
+ """
+ Parameters:
+ - authzToken
+ - resourceJobManagerId
+ """
+ pass
+
+ def deleteResourceJobManager(self, authzToken, resourceJobManagerId):
+ """
+ Parameters:
+ - authzToken
+ - resourceJobManagerId
+ """
+ pass
+
+ def deleteBatchQueue(self, authzToken, computeResourceId, queueName):
+ """
+ Delete a Compute Resource Queue
+
+ @param computeResourceId
+ The identifier of the compute resource which has the queue to be deleted
+
+ @param queueName
+ Name of the queue need to be deleted. Name is the uniqueue identifier for the queue within a compute resource
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - queueName
+ """
+ pass
+
+ def registerGatewayResourceProfile(self, authzToken, gatewayResourceProfile):
+ """
+ Register a Gateway Resource Profile.
+
+ @param gatewayResourceProfile
+ Gateway Resource Profile Object.
+ The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding
+ resource profile.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - gatewayResourceProfile
+ """
+ pass
+
+ def getGatewayResourceProfile(self, authzToken, gatewayID):
+ """
+ Fetch the given Gateway Resource Profile.
+
+ @param gatewayID
+ The identifier for the requested gateway resource.
+
+ @return gatewayResourceProfile
+ Gateway Resource Profile Object.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ """
+ pass
+
+ def updateGatewayResourceProfile(self, authzToken, gatewayID, gatewayResourceProfile):
+ """
+ Update a Gateway Resource Profile.
+
+ @param gatewayID
+ The identifier for the requested gateway resource to be updated.
+
+ @param gatewayResourceProfile
+ Gateway Resource Profile Object.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - gatewayResourceProfile
+ """
+ pass
+
+ def deleteGatewayResourceProfile(self, authzToken, gatewayID):
+ """
+ Delete the given Gateway Resource Profile.
+
+ @param gatewayID
+ The identifier for the requested gateway resource to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ """
+ pass
+
+ def addGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId, computeResourcePreference):
+ """
+ Add a Compute Resource Preference to a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be added.
+
+ @param computeResourceId
+ Preferences related to a particular compute resource
+
+ @param computeResourcePreference
+ The ComputeResourcePreference object to be added to the resource profile.
+
+ @return status
+ Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+ Instead an update should be used.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - computeResourceId
+ - computeResourcePreference
+ """
+ pass
+
+ def addGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId, storagePreference):
+ """
+ Add a Storage Resource Preference to a registered gateway profile.
+
+ @param gatewayID
+ The identifier of the gateway profile to be added.
+
+ @param storageResourceId
+ Preferences related to a particular compute resource
+
+ @param computeResourcePreference
+ The ComputeResourcePreference object to be added to the resource profile.
+
+ @return status
+ Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+ Instead an update should be used.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - storageResourceId
+ - storagePreference
+ """
+ pass
+
+ def getGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
+ """
+
+ Fetch a Compute Resource Preference of a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be requested
+
+ @param computeResourceId
+ Preferences related to a particular compute resource
+
+ @return computeResourcePreference
+ Returns the ComputeResourcePreference object.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - computeResourceId
+ """
+ pass
+
+ def getGatewayStoragePreference(self, authzToken, gatewayID, storageResourceId):
+ """
+
+ Fetch a Storage Resource Preference of a registered gateway profile.
+
+ @param gatewayID
+ The identifier of the gateway profile to request to fetch the particular storage resource preference.
+
+ @param storageResourceId
+ Identifier of the Stprage Preference required to be fetched.
+
+ @return StoragePreference
+ Returns the StoragePreference object.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - storageResourceId
+ """
+ pass
+
+ def getAllGatewayComputeResourcePreferences(self, authzToken, gatewayID):
+ """
+
+ Fetch all Compute Resource Preferences of a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be requested
+
+ @return computeResourcePreference
+ Returns the ComputeResourcePreference object.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ """
+ pass
+
+ def getAllGatewayStoragePreferences(self, authzToken, gatewayID):
+ """
+ Fetch all Storage Resource Preferences of a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be requested
+
+ @return StoragePreference
+ Returns the StoragePreference object.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ """
+ pass
+
+ def getAllGatewayResourceProfiles(self, authzToken):
+ """
+
+ Fetch all Gateway Profiles registered
+
+ @return GatewayResourceProfile
+ Returns all the GatewayResourcePrifle list object.
+
+
+
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def updateGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId, computeResourcePreference):
+ """
+ Update a Compute Resource Preference to a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be updated.
+
+ @param computeResourceId
+ Preferences related to a particular compute resource
+
+ @param computeResourcePreference
+ The ComputeResourcePreference object to be updated to the resource profile.
+
+ @return status
+ Returns a success/failure of the updation.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - computeResourceId
+ - computeResourcePreference
+ """
+ pass
+
+ def updateGatewayStoragePreference(self, authzToken, gatewayID, storageId, storagePreference):
+ """
+ Update a Storage Resource Preference of a registered gateway profile.
+
+ @param gatewayID
+ The identifier of the gateway profile to be updated.
+
+ @param storageId
+ The Storage resource identifier of the one that you want to update
+
+ @param storagePreference
+ The storagePreference object to be updated to the resource profile.
+
+ @return status
+ Returns a success/failure of the updation.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - storageId
+ - storagePreference
+ """
+ pass
+
+ def deleteGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
+ """
+ Delete the Compute Resource Preference of a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be deleted.
+
+ @param computeResourceId
+ Preferences related to a particular compute resource
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - computeResourceId
+ """
+ pass
+
+ def deleteGatewayStoragePreference(self, authzToken, gatewayID, storageId):
+ """
+ Delete the Storage Resource Preference of a registered gateway profile.
+
+ @param gatewayID
+ The identifier of the gateway profile to be deleted.
+
+ @param storageId
+ ID of the storage preference you want to delete.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - storageId
+ """
+ pass
+
+ def getAllWorkflows(self, authzToken, gatewayId):
+ """
+ Delete the Storage Resource Preference of a registered gateway profile.
+
+ @param gatewayID
+ The identifier of the gateway profile to be deleted.
+
+ @param storageId
+ ID of the storage preference you want to delete.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getWorkflow(self, authzToken, workflowTemplateId):
+ """
+
+ API Methods Related for Work-Flow Submission Features.
+
+
+ Parameters:
+ - authzToken
+ - workflowTemplateId
+ """
+ pass
+
+ def deleteWorkflow(self, authzToken, workflowTemplateId):
+ """
+ Parameters:
+ - authzToken
+ - workflowTemplateId
+ """
+ pass
+
+ def registerWorkflow(self, authzToken, gatewayId, workflow):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ - workflow
+ """
+ pass
+
+ def updateWorkflow(self, authzToken, workflowTemplateId, workflow):
+ """
+ Parameters:
+ - authzToken
+ - workflowTemplateId
+ - workflow
+ """
+ pass
+
+ def getWorkflowTemplateId(self, authzToken, workflowName):
+ """
+ Parameters:
+ - authzToken
+ - workflowName
+ """
+ pass
+
+ def isWorkflowExistWithName(self, authzToken, workflowName):
+ """
+ Parameters:
+ - authzToken
+ - workflowName
+ """
+ pass
+
+ def registerDataProduct(self, authzToken, dataProductModel):
+ """
+ API Methods related to replica catalog
+
+
+ Parameters:
+ - authzToken
+ - dataProductModel
+ """
+ pass
+
+ def getDataProduct(self, authzToken, dataProductUri):
+ """
+ Parameters:
+ - authzToken
+ - dataProductUri
+ """
+ pass
+
+ def registerReplicaLocation(self, authzToken, replicaLocationModel):
+ """
+ Parameters:
+ - authzToken
+ - replicaLocationModel
+ """
+ pass
+
+ def getParentDataProduct(self, authzToken, productUri):
+ """
+ Parameters:
+ - authzToken
+ - productUri
+ """
+ pass
+
+ def getChildDataProducts(self, authzToken, productUri):
+ """
+ Parameters:
+ - authzToken
+ - productUri
+ """
+ pass
+
+ def shareResourceWithUsers(self, authzToken, resourceId, resourceType, userPermissionList):
+ """
+ Group Manager and Data Sharing Related API methods
+
+
+ Parameters:
+ - authzToken
+ - resourceId
+ - resourceType
+ - userPermissionList
+ """
+ pass
+
+ def revokeSharingOfResourceFromUsers(self, authzToken, resourceId, resourceType, userPermissionList):
+ """
+ Parameters:
+ - authzToken
+ - resourceId
+ - resourceType
+ - userPermissionList
+ """
+ pass
+
+ def getAllAccessibleUsers(self, authzToken, resourceId, resourceType, permissionType):
+ """
+ Parameters:
+ - authzToken
+ - resourceId
+ - resourceType
+ - permissionType
+ """
+ pass
+
+ def createGroup(self, authzToken, groupModel):
+ """
+ Parameters:
+ - authzToken
+ - groupModel
+ """
+ pass
+
+ def updateGroup(self, authzToken, groupModel):
+ """
+ Parameters:
+ - authzToken
+ - groupModel
+ """
+ pass
+
+ def deleteGroup(self, authzToken, groupId, ownerId, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - groupId
+ - ownerId
+ - gatewayId
+ """
+ pass
+
+ def getGroup(self, authzToken, groupId):
+ """
+ Parameters:
+ - authzToken
+ - groupId
+ """
+ pass
+
+ def getAllGroupsUserBelongs(self, authzToken, userName, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - userName
+ - gatewayId
+ """
+ pass
+
+
+class Client(Iface):
+ def __init__(self, iprot, oprot=None):
+ self._iprot = self._oprot = iprot
+ if oprot is not None:
+ self._oprot = oprot
+ self._seqid = 0
+
+ def getAPIVersion(self, authzToken):
+ """
+ Fetch Apache Airavata API version
+
+
+ Parameters:
+ - authzToken
+ """
+ self.send_getAPIVersion(authzToken)
+ return self.recv_getAPIVersion()
+
+ def send_getAPIVersion(self, authzToken):
+ self._oprot.writeMessageBegin('getAPIVersion', TMessageType.CALL, self._seqid)
+ args = getAPIVersion_args()
+ args.authzToken = authzToken
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getAPIVersion(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getAPIVersion_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getAPIVersion failed: unknown result")
+
+ def isUserExists(self, authzToken, gatewayId, userName):
+ """
+ Verify if User Exists within Airavata.
+
+ @param gatewayId
+
+ @param userName
+
+ @return true/false
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ """
+ self.send_isUserExists(authzToken, gatewayId, userName)
+ return self.recv_isUserExists()
+
+ def send_isUserExists(self, authzToken, gatewayId, userName):
+ self._oprot.writeMessageBegin('isUserExists', TMessageType.CALL, self._seqid)
+ args = isUserExists_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.userName = userName
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_isUserExists(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = isUserExists_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "isUserExists failed: unknown result")
+
+ def addGateway(self, authzToken, gateway):
+ """
+ Register a Gateway with Airavata.
+
+ @param gateway
+ The gateway data model.
+
+ @return gatewayId
+ Th unique identifier of the newly registered gateway.
+
+
+
+ Parameters:
+ - authzToken
+ - gateway
+ """
+ self.send_addGateway(authzToken, gateway)
+ return self.recv_addGateway()
+
+ def send_addGateway(self, authzToken, gateway):
+ self._oprot.writeMessageBegin('addGateway', TMessageType.CALL, self._seqid)
+ args = addGateway_args()
+ args.authzToken = authzToken
+ args.gateway = gateway
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_addGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = addGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "addGateway failed: unknown result")
+
+ def getAllUsersInGateway(self, authzToken, gatewayId):
+ """
+ Get all users in the gateway
+
+ @param gatewayId
+ The gateway data model.
+
+ @return users
+ list of usernames of the users in the gateway
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ self.send_getAllUsersInGateway(authzToken, gatewayId)
+ return self.recv_getAllUsersInGateway()
+
+ def send_getAllUsersInGateway(self, authzToken, gatewayId):
+ self._oprot.writeMessageBegin('getAllUsersInGateway', TMessageType.CALL, self._seqid)
+ args = getAllUsersInGateway_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getAllUsersInGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getAllUsersInGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllUsersInGateway failed: unknown result")
+
+ def updateGateway(self, authzToken, gatewayId, updatedGateway):
+ """
+ Update previously registered Gateway metadata.
+
+ @param gatewayId
+ The gateway Id of the Gateway which require an update.
+
+ @return gateway
+ Modified gateway obejct.
+
+ @exception AiravataClientException
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - updatedGateway
+ """
+ self.send_updateGateway(authzToken, gatewayId, updatedGateway)
+ return self.recv_updateGateway()
+
+ def send_updateGateway(self, authzToken, gatewayId, updatedGateway):
+ self._oprot.writeMessageBegin('updateGateway', TMessageType.CALL, self._seqid)
+ args = updateGateway_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.updatedGateway = updatedGateway
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_updateGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = updateGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGateway failed: unknown result")
+
+ def getGateway(self, authzToken, gatewayId):
+ """
+ Get Gateway details by providing gatewayId
+
+ @param gatewayId
+ The gateway Id of the Gateway.
+
+ @return gateway
+ Gateway obejct.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ self.send_getGateway(authzToken, gatewayId)
+ return self.recv_getGateway()
+
+ def send_getGateway(self, authzToken, gatewayId):
+ self._oprot.writeMessageBegin('getGateway', TMessageType.CALL, self._seqid)
+ args = getGateway_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getGateway failed: unknown result")
+
+ def deleteGateway(self, authzToken, gatewayId):
+ """
+ Delete a Gateway
+
+ @param gatewayId
+ The gateway Id of the Gateway to be deleted.
+
+ @return boolean
+ Boolean identifier for the success or failure of the deletion operation.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ self.send_deleteGateway(authzToken, gatewayId)
+ return self.recv_deleteGateway()
+
+ def send_deleteGateway(self, authzToken, gatewayId):
+ self._oprot.writeMessageBegin('deleteGateway', TMessageType.CALL, self._seqid)
+ args = deleteGateway_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_deleteGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = deleteGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not
<TRUNCATED>
[32/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
Added_Apache
Project: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/commit/2352c0ff
Tree: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/tree/2352c0ff
Diff: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/diff/2352c0ff
Branch: refs/heads/master
Commit: 2352c0ffa843b0cb6c05a3280e422826babc5999
Parents: 69c259d
Author: Pradyut Madhavaram <pr...@gmail.com>
Authored: Fri Aug 5 15:11:59 2016 -0400
Committer: Pradyut Madhavaram <pr...@gmail.com>
Committed: Fri Aug 5 15:11:59 2016 -0400
----------------------------------------------------------------------
.../Admin User-checkpoint.ipynb | 852 +
.../Admin-User/Admin User.ipynb | 147 +-
.../Admin-User/airavata_cli.py | 134 +
.../Admin-User/airavata_cli.pyc | Bin 0 -> 4846 bytes
.../Admin-User/apache/__init__.py | 0
.../Admin-User/apache/__init__.pyc | Bin 0 -> 105 bytes
.../apache/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 136 bytes
.../Admin-User/apache/airavata/__init__.py | 0
.../Admin-User/apache/airavata/__init__.pyc | Bin 0 -> 114 bytes
.../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 145 bytes
.../apache/airavata/api/Airavata-remote | 955 +
.../Admin-User/apache/airavata/api/Airavata.py | 38230 +++++++++++++++++
.../Admin-User/apache/airavata/api/Airavata.pyc | Bin 0 -> 1235837 bytes
.../Admin-User/apache/airavata/api/__init__.py | 1 +
.../Admin-User/apache/airavata/api/__init__.pyc | Bin 0 -> 183 bytes
.../Admin-User/apache/airavata/api/constants.py | 12 +
.../apache/airavata/api/error/__init__.py | 1 +
.../apache/airavata/api/error/__init__.pyc | Bin 0 -> 173 bytes
.../apache/airavata/api/error/constants.py | 11 +
.../apache/airavata/api/error/ttypes.py | 940 +
.../apache/airavata/api/error/ttypes.pyc | Bin 0 -> 34083 bytes
.../Admin-User/apache/airavata/api/ttypes.py | 33 +
.../Admin-User/apache/airavata/api/ttypes.pyc | Bin 0 -> 1352 bytes
.../apache/airavata/model/__init__.py | 1 +
.../apache/airavata/model/__init__.pyc | Bin 0 -> 169 bytes
.../model/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 188 bytes
.../airavata/model/appcatalog/__init__.py | 0
.../airavata/model/appcatalog/__init__.pyc | Bin 0 -> 131 bytes
.../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 162 bytes
.../model/appcatalog/appdeployment/__init__.py | 1 +
.../model/appcatalog/appdeployment/__init__.pyc | Bin 0 -> 194 bytes
.../model/appcatalog/appdeployment/constants.py | 11 +
.../model/appcatalog/appdeployment/ttypes.py | 675 +
.../model/appcatalog/appdeployment/ttypes.pyc | Bin 0 -> 21134 bytes
.../model/appcatalog/appinterface/__init__.py | 1 +
.../model/appcatalog/appinterface/__init__.pyc | Bin 0 -> 193 bytes
.../model/appcatalog/appinterface/constants.py | 11 +
.../model/appcatalog/appinterface/ttypes.py | 193 +
.../model/appcatalog/appinterface/ttypes.pyc | Bin 0 -> 6740 bytes
.../appcatalog/computeresource/__init__.py | 1 +
.../appcatalog/computeresource/__init__.pyc | Bin 0 -> 196 bytes
.../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 215 bytes
.../__pycache__/ttypes.cpython-35.pyc | Bin 0 -> 63920 bytes
.../appcatalog/computeresource/constants.py | 11 +
.../model/appcatalog/computeresource/ttypes.py | 2155 +
.../model/appcatalog/computeresource/ttypes.pyc | Bin 0 -> 68459 bytes
.../model/appcatalog/gatewayprofile/__init__.py | 1 +
.../appcatalog/gatewayprofile/__init__.pyc | Bin 0 -> 195 bytes
.../appcatalog/gatewayprofile/constants.py | 11 +
.../model/appcatalog/gatewayprofile/ttypes.py | 468 +
.../model/appcatalog/gatewayprofile/ttypes.pyc | Bin 0 -> 15890 bytes
.../airavata/model/application/__init__.py | 0
.../airavata/model/application/__init__.pyc | Bin 0 -> 132 bytes
.../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 163 bytes
.../airavata/model/application/io/__init__.py | 1 +
.../airavata/model/application/io/__init__.pyc | Bin 0 -> 184 bytes
.../io/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 203 bytes
.../io/__pycache__/ttypes.cpython-35.pyc | Bin 0 -> 13067 bytes
.../airavata/model/application/io/constants.py | 11 +
.../airavata/model/application/io/ttypes.py | 481 +
.../airavata/model/application/io/ttypes.pyc | Bin 0 -> 13629 bytes
.../apache/airavata/model/commons/__init__.py | 1 +
.../apache/airavata/model/commons/__init__.pyc | Bin 0 -> 177 bytes
.../commons/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 196 bytes
.../commons/__pycache__/ttypes.cpython-35.pyc | Bin 0 -> 11069 bytes
.../apache/airavata/model/commons/constants.py | 12 +
.../apache/airavata/model/commons/ttypes.py | 335 +
.../apache/airavata/model/commons/ttypes.pyc | Bin 0 -> 11641 bytes
.../apache/airavata/model/constants.py | 11 +
.../airavata/model/experiment/__init__.py | 1 +
.../airavata/model/experiment/__init__.pyc | Bin 0 -> 180 bytes
.../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 199 bytes
.../__pycache__/ttypes.cpython-35.pyc | Bin 0 -> 29237 bytes
.../airavata/model/experiment/constants.py | 11 +
.../apache/airavata/model/experiment/ttypes.py | 1035 +
.../apache/airavata/model/experiment/ttypes.pyc | Bin 0 -> 30318 bytes
.../apache/airavata/model/job/__init__.py | 1 +
.../apache/airavata/model/job/__init__.pyc | Bin 0 -> 173 bytes
.../apache/airavata/model/job/constants.py | 11 +
.../apache/airavata/model/job/ttypes.py | 237 +
.../apache/airavata/model/job/ttypes.pyc | Bin 0 -> 7071 bytes
.../apache/airavata/model/messaging/__init__.py | 0
.../airavata/model/messaging/__init__.pyc | Bin 0 -> 130 bytes
.../airavata/model/messaging/event/__init__.py | 1 +
.../airavata/model/messaging/event/__init__.pyc | Bin 0 -> 185 bytes
.../airavata/model/messaging/event/constants.py | 11 +
.../airavata/model/messaging/event/ttypes.py | 1426 +
.../airavata/model/messaging/event/ttypes.pyc | Bin 0 -> 48557 bytes
.../apache/airavata/model/process/__init__.py | 1 +
.../apache/airavata/model/process/__init__.pyc | Bin 0 -> 177 bytes
.../apache/airavata/model/process/constants.py | 11 +
.../apache/airavata/model/process/ttypes.py | 360 +
.../apache/airavata/model/process/ttypes.pyc | Bin 0 -> 10922 bytes
.../airavata/model/scheduling/__init__.py | 1 +
.../airavata/model/scheduling/__init__.pyc | Bin 0 -> 180 bytes
.../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 199 bytes
.../__pycache__/ttypes.cpython-35.pyc | Bin 0 -> 5645 bytes
.../airavata/model/scheduling/constants.py | 11 +
.../apache/airavata/model/scheduling/ttypes.py | 191 +
.../apache/airavata/model/scheduling/ttypes.pyc | Bin 0 -> 5765 bytes
.../apache/airavata/model/security/__init__.py | 1 +
.../apache/airavata/model/security/__init__.pyc | Bin 0 -> 178 bytes
.../apache/airavata/model/security/constants.py | 11 +
.../apache/airavata/model/security/ttypes.py | 108 +
.../apache/airavata/model/security/ttypes.pyc | Bin 0 -> 4142 bytes
.../apache/airavata/model/status/__init__.py | 1 +
.../apache/airavata/model/status/__init__.pyc | Bin 0 -> 176 bytes
.../status/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 195 bytes
.../status/__pycache__/ttypes.cpython-35.pyc | Bin 0 -> 15087 bytes
.../apache/airavata/model/status/constants.py | 11 +
.../apache/airavata/model/status/ttypes.py | 542 +
.../apache/airavata/model/status/ttypes.pyc | Bin 0 -> 15977 bytes
.../apache/airavata/model/task/__init__.py | 1 +
.../apache/airavata/model/task/__init__.pyc | Bin 0 -> 174 bytes
.../apache/airavata/model/task/constants.py | 11 +
.../apache/airavata/model/task/ttypes.py | 673 +
.../apache/airavata/model/task/ttypes.pyc | Bin 0 -> 21817 bytes
.../Admin-User/apache/airavata/model/ttypes.py | 30 +
.../Admin-User/apache/airavata/model/ttypes.pyc | Bin 0 -> 1124 bytes
.../apache/airavata/model/workflow/__init__.py | 1 +
.../apache/airavata/model/workflow/__init__.pyc | Bin 0 -> 178 bytes
.../apache/airavata/model/workflow/constants.py | 11 +
.../apache/airavata/model/workflow/ttypes.py | 173 +
.../apache/airavata/model/workflow/ttypes.pyc | Bin 0 -> 5938 bytes
.../apache/airavata/model/workspace/__init__.py | 1 +
.../airavata/model/workspace/__init__.pyc | Bin 0 -> 179 bytes
.../__pycache__/__init__.cpython-35.pyc | Bin 0 -> 198 bytes
.../workspace/__pycache__/ttypes.cpython-35.pyc | Bin 0 -> 14112 bytes
.../airavata/model/workspace/constants.py | 11 +
.../model/workspace/experiment/__init__.py | 1 +
.../model/workspace/experiment/constants.py | 14 +
.../model/workspace/experiment/ttypes.py | 3474 ++
.../apache/airavata/model/workspace/ttypes.py | 460 +
.../apache/airavata/model/workspace/ttypes.pyc | Bin 0 -> 15179 bytes
.../Admin-User/appcatalog/__init__.pyc | Bin 142 -> 142 bytes
.../Admin-User/appcatalog/appcatalog.py | 4 +-
.../Admin-User/appcatalog/appcatalog.pyc | Bin 3353 -> 3353 bytes
.../Admin-User/expcatalog/__init__.pyc | Bin 142 -> 142 bytes
.../Admin-User/expcatalog/expcatalog.pyc | Bin 7932 -> 7932 bytes
.../Admin-User/thrift/Thrift.pyc | Bin 4886 -> 4886 bytes
.../Admin-User/thrift/__init__.pyc | Bin 151 -> 151 bytes
.../thrift/protocol/TBinaryProtocol.pyc | Bin 10448 -> 10448 bytes
.../Admin-User/thrift/protocol/TProtocol.pyc | Bin 13517 -> 13517 bytes
.../Admin-User/thrift/protocol/__init__.pyc | Bin 248 -> 248 bytes
.../Admin-User/thrift/transport/TSocket.pyc | Bin 5512 -> 5512 bytes
.../Admin-User/thrift/transport/TTransport.pyc | Bin 12858 -> 12858 bytes
.../Admin-User/thrift/transport/__init__.pyc | Bin 207 -> 207 bytes
.../create-experiment/apache/__init__.pyc | Bin 105 -> 105 bytes
.../apache/airavata/__init__.pyc | Bin 114 -> 114 bytes
.../apache/airavata/api/Airavata.pyc | Bin 1517997 -> 1517997 bytes
.../apache/airavata/api/__init__.pyc | Bin 183 -> 183 bytes
.../apache/airavata/api/error/__init__.pyc | Bin 173 -> 173 bytes
.../apache/airavata/api/error/ttypes.pyc | Bin 34089 -> 34089 bytes
.../apache/airavata/api/ttypes.pyc | Bin 1600 -> 1600 bytes
.../apache/airavata/model/__init__.pyc | Bin 169 -> 169 bytes
.../airavata/model/appcatalog/__init__.pyc | Bin 131 -> 131 bytes
.../model/appcatalog/appdeployment/__init__.pyc | Bin 194 -> 194 bytes
.../model/appcatalog/appdeployment/ttypes.pyc | Bin 20381 -> 20381 bytes
.../model/appcatalog/appinterface/__init__.pyc | Bin 193 -> 193 bytes
.../model/appcatalog/appinterface/ttypes.pyc | Bin 7414 -> 7414 bytes
.../appcatalog/computeresource/__init__.pyc | Bin 196 -> 196 bytes
.../model/appcatalog/computeresource/ttypes.pyc | Bin 50576 -> 50576 bytes
.../appcatalog/gatewayprofile/__init__.pyc | Bin 195 -> 195 bytes
.../model/appcatalog/gatewayprofile/ttypes.pyc | Bin 16903 -> 16903 bytes
.../model/appcatalog/parallelism/__init__.pyc | Bin 192 -> 192 bytes
.../model/appcatalog/parallelism/ttypes.pyc | Bin 1372 -> 1372 bytes
.../appcatalog/storageresource/__init__.pyc | Bin 196 -> 196 bytes
.../model/appcatalog/storageresource/ttypes.pyc | Bin 6028 -> 6028 bytes
.../airavata/model/application/__init__.pyc | Bin 132 -> 132 bytes
.../airavata/model/application/io/__init__.pyc | Bin 184 -> 184 bytes
.../airavata/model/application/io/ttypes.pyc | Bin 14257 -> 14257 bytes
.../apache/airavata/model/commons/__init__.pyc | Bin 177 -> 177 bytes
.../apache/airavata/model/commons/ttypes.pyc | Bin 11641 -> 11641 bytes
.../apache/airavata/model/data/__init__.pyc | Bin 125 -> 125 bytes
.../airavata/model/data/movement/__init__.pyc | Bin 183 -> 183 bytes
.../airavata/model/data/movement/ttypes.pyc | Bin 20859 -> 20859 bytes
.../airavata/model/data/replica/__init__.pyc | Bin 182 -> 182 bytes
.../airavata/model/data/replica/ttypes.pyc | Bin 14489 -> 14489 bytes
.../airavata/model/experiment/__init__.pyc | Bin 180 -> 180 bytes
.../apache/airavata/model/experiment/ttypes.pyc | Bin 32151 -> 32151 bytes
.../apache/airavata/model/group/__init__.pyc | Bin 175 -> 175 bytes
.../apache/airavata/model/group/ttypes.pyc | Bin 5482 -> 5482 bytes
.../apache/airavata/model/job/__init__.pyc | Bin 173 -> 173 bytes
.../apache/airavata/model/job/ttypes.pyc | Bin 7071 -> 7071 bytes
.../airavata/model/messaging/__init__.pyc | Bin 130 -> 130 bytes
.../airavata/model/messaging/event/__init__.pyc | Bin 185 -> 185 bytes
.../airavata/model/messaging/event/ttypes.pyc | Bin 48557 -> 48557 bytes
.../apache/airavata/model/process/__init__.pyc | Bin 177 -> 177 bytes
.../apache/airavata/model/process/ttypes.pyc | Bin 12365 -> 12365 bytes
.../airavata/model/scheduling/__init__.pyc | Bin 180 -> 180 bytes
.../apache/airavata/model/scheduling/ttypes.pyc | Bin 6698 -> 6698 bytes
.../apache/airavata/model/security/__init__.pyc | Bin 178 -> 178 bytes
.../apache/airavata/model/security/ttypes.pyc | Bin 4142 -> 4142 bytes
.../apache/airavata/model/status/__init__.pyc | Bin 176 -> 176 bytes
.../apache/airavata/model/status/ttypes.pyc | Bin 15977 -> 15977 bytes
.../apache/airavata/model/task/__init__.pyc | Bin 174 -> 174 bytes
.../apache/airavata/model/task/ttypes.pyc | Bin 22730 -> 22730 bytes
.../apache/airavata/model/ttypes.pyc | Bin 1350 -> 1350 bytes
.../apache/airavata/model/user/__init__.pyc | Bin 174 -> 174 bytes
.../apache/airavata/model/user/ttypes.pyc | Bin 20353 -> 20353 bytes
.../apache/airavata/model/workflow/__init__.pyc | Bin 178 -> 178 bytes
.../apache/airavata/model/workflow/ttypes.pyc | Bin 25348 -> 25348 bytes
.../airavata/model/workspace/__init__.pyc | Bin 179 -> 179 bytes
.../apache/airavata/model/workspace/ttypes.pyc | Bin 25091 -> 25091 bytes
.../create-experiment/thrift/Thrift.pyc | Bin 4886 -> 4886 bytes
.../create-experiment/thrift/__init__.pyc | Bin 151 -> 151 bytes
.../thrift/protocol/TBinaryProtocol.pyc | Bin 10448 -> 10448 bytes
.../thrift/protocol/TProtocol.pyc | Bin 13517 -> 13517 bytes
.../thrift/protocol/__init__.pyc | Bin 248 -> 248 bytes
.../thrift/transport/TSSLSocket.pyc | Bin 6546 -> 6546 bytes
.../thrift/transport/TSocket.pyc | Bin 5512 -> 5512 bytes
.../thrift/transport/TTransport.pyc | Bin 12858 -> 12858 bytes
.../thrift/transport/__init__.pyc | Bin 207 -> 207 bytes
213 files changed, 54507 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
[22/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/ttypes.py
new file mode 100644
index 0000000..e9945f6
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/ttypes.py
@@ -0,0 +1,542 @@
+#
+# 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
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ExperimentState:
+ CREATED = 0
+ VALIDATED = 1
+ SCHEDULED = 2
+ LAUNCHED = 3
+ EXECUTING = 4
+ CANCELING = 5
+ CANCELED = 6
+ COMPLETED = 7
+ FAILED = 8
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "VALIDATED",
+ 2: "SCHEDULED",
+ 3: "LAUNCHED",
+ 4: "EXECUTING",
+ 5: "CANCELING",
+ 6: "CANCELED",
+ 7: "COMPLETED",
+ 8: "FAILED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "VALIDATED": 1,
+ "SCHEDULED": 2,
+ "LAUNCHED": 3,
+ "EXECUTING": 4,
+ "CANCELING": 5,
+ "CANCELED": 6,
+ "COMPLETED": 7,
+ "FAILED": 8,
+ }
+
+class TaskState:
+ CREATED = 0
+ EXECUTING = 1
+ COMPLETED = 2
+ FAILED = 3
+ CANCELED = 4
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "EXECUTING",
+ 2: "COMPLETED",
+ 3: "FAILED",
+ 4: "CANCELED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "EXECUTING": 1,
+ "COMPLETED": 2,
+ "FAILED": 3,
+ "CANCELED": 4,
+ }
+
+class ProcessState:
+ CREATED = 0
+ VALIDATED = 1
+ STARTED = 2
+ PRE_PROCESSING = 3
+ CONFIGURING_WORKSPACE = 4
+ INPUT_DATA_STAGING = 5
+ EXECUTING = 6
+ MONITORING = 7
+ OUTPUT_DATA_STAGING = 8
+ POST_PROCESSING = 9
+ COMPLETED = 10
+ FAILED = 11
+ CANCELLING = 12
+ CANCELED = 13
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "VALIDATED",
+ 2: "STARTED",
+ 3: "PRE_PROCESSING",
+ 4: "CONFIGURING_WORKSPACE",
+ 5: "INPUT_DATA_STAGING",
+ 6: "EXECUTING",
+ 7: "MONITORING",
+ 8: "OUTPUT_DATA_STAGING",
+ 9: "POST_PROCESSING",
+ 10: "COMPLETED",
+ 11: "FAILED",
+ 12: "CANCELLING",
+ 13: "CANCELED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "VALIDATED": 1,
+ "STARTED": 2,
+ "PRE_PROCESSING": 3,
+ "CONFIGURING_WORKSPACE": 4,
+ "INPUT_DATA_STAGING": 5,
+ "EXECUTING": 6,
+ "MONITORING": 7,
+ "OUTPUT_DATA_STAGING": 8,
+ "POST_PROCESSING": 9,
+ "COMPLETED": 10,
+ "FAILED": 11,
+ "CANCELLING": 12,
+ "CANCELED": 13,
+ }
+
+class JobState:
+ SUBMITTED = 0
+ QUEUED = 1
+ ACTIVE = 2
+ COMPLETE = 3
+ CANCELED = 4
+ FAILED = 5
+ SUSPENDED = 6
+ UNKNOWN = 7
+
+ _VALUES_TO_NAMES = {
+ 0: "SUBMITTED",
+ 1: "QUEUED",
+ 2: "ACTIVE",
+ 3: "COMPLETE",
+ 4: "CANCELED",
+ 5: "FAILED",
+ 6: "SUSPENDED",
+ 7: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "SUBMITTED": 0,
+ "QUEUED": 1,
+ "ACTIVE": 2,
+ "COMPLETE": 3,
+ "CANCELED": 4,
+ "FAILED": 5,
+ "SUSPENDED": 6,
+ "UNKNOWN": 7,
+ }
+
+
+class ExperimentStatus:
+ """
+ Status: A generic status object.
+
+ state:
+ State .
+
+ timeOfStateChange:
+ time the status was last updated.
+
+ reason:
+ User friendly reason on how the state is inferred.
+
+
+ Attributes:
+ - state
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, timeOfStateChange=None, reason=None,):
+ self.state = state
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('ExperimentStatus')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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 ProcessStatus:
+ """
+ Attributes:
+ - state
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, timeOfStateChange=None, reason=None,):
+ self.state = state
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('ProcessStatus')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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 TaskStatus:
+ """
+ Attributes:
+ - state
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, timeOfStateChange=None, reason=None,):
+ self.state = state
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.state = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('TaskStatus')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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 JobStatus:
+ """
+ Attributes:
+ - jobState
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'jobState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, jobState=None, timeOfStateChange=None, reason=None,):
+ self.jobState = jobState
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.jobState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('JobStatus')
+ if self.jobState is not None:
+ oprot.writeFieldBegin('jobState', TType.I32, 1)
+ oprot.writeI32(self.jobState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobState is None:
+ raise TProtocol.TProtocolException(message='Required field jobState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/ttypes.pyc
new file mode 100644
index 0000000..bd0815f
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/status/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/__init__.pyc
new file mode 100644
index 0000000..2fa7d44
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/ttypes.py
new file mode 100644
index 0000000..9ac820f
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/ttypes.py
@@ -0,0 +1,673 @@
+#
+# 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
+import apache.airavata.model.status.ttypes
+import apache.airavata.model.appcatalog.computeresource.ttypes
+import apache.airavata.model.application.io.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class TaskTypes:
+ """
+ TaskTypes: An enumerated list of TaskTypes. Task being generic, the task type will provide the concrete interpretation.
+
+ """
+ ENV_SETUP = 0
+ DATA_STAGING = 1
+ JOB_SUBMISSION = 2
+ ENV_CLEANUP = 3
+ MONITORING = 4
+
+ _VALUES_TO_NAMES = {
+ 0: "ENV_SETUP",
+ 1: "DATA_STAGING",
+ 2: "JOB_SUBMISSION",
+ 3: "ENV_CLEANUP",
+ 4: "MONITORING",
+ }
+
+ _NAMES_TO_VALUES = {
+ "ENV_SETUP": 0,
+ "DATA_STAGING": 1,
+ "JOB_SUBMISSION": 2,
+ "ENV_CLEANUP": 3,
+ "MONITORING": 4,
+ }
+
+class DataStageType:
+ """
+ DataStagingTaskModel: A structure holding the data staging task details.
+
+ Source and Destination locations includes standard representation of protocol, host, port and path
+ A friendly description of the task, usally used to communicate information to users.
+
+ """
+ INPUT = 0
+ OUPUT = 1
+
+ _VALUES_TO_NAMES = {
+ 0: "INPUT",
+ 1: "OUPUT",
+ }
+
+ _NAMES_TO_VALUES = {
+ "INPUT": 0,
+ "OUPUT": 1,
+ }
+
+
+class TaskModel:
+ """
+ TaskModel: A structure holding the generic task details.
+
+ taskDetail:
+ A friendly description of the task, usally used to communicate information to users.
+
+ subTaskModel:
+ A generic byte object for the Task developer to store internal serialized data into registry catalogs.
+
+ Attributes:
+ - taskId
+ - taskType
+ - parentProcessId
+ - creationTime
+ - lastUpdateTime
+ - taskStatus
+ - taskDetail
+ - subTaskModel
+ - taskError
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'taskId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I32, 'taskType', None, None, ), # 2
+ (3, TType.STRING, 'parentProcessId', None, None, ), # 3
+ (4, TType.I64, 'creationTime', None, None, ), # 4
+ (5, TType.I64, 'lastUpdateTime', None, None, ), # 5
+ (6, TType.STRUCT, 'taskStatus', (apache.airavata.model.status.ttypes.TaskStatus, apache.airavata.model.status.ttypes.TaskStatus.thrift_spec), None, ), # 6
+ (7, TType.STRING, 'taskDetail', None, None, ), # 7
+ (8, TType.STRING, 'subTaskModel', None, None, ), # 8
+ (9, TType.STRUCT, 'taskError', (apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec), None, ), # 9
+ )
+
+ def __init__(self, taskId=thrift_spec[1][4], taskType=None, parentProcessId=None, creationTime=None, lastUpdateTime=None, taskStatus=None, taskDetail=None, subTaskModel=None, taskError=None,):
+ self.taskId = taskId
+ self.taskType = taskType
+ self.parentProcessId = parentProcessId
+ self.creationTime = creationTime
+ self.lastUpdateTime = lastUpdateTime
+ self.taskStatus = taskStatus
+ self.taskDetail = taskDetail
+ self.subTaskModel = subTaskModel
+ self.taskError = taskError
+
+ 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.taskId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.taskType = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.parentProcessId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.lastUpdateTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRUCT:
+ self.taskStatus = apache.airavata.model.status.ttypes.TaskStatus()
+ self.taskStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.taskDetail = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.subTaskModel = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRUCT:
+ self.taskError = apache.airavata.model.commons.ttypes.ErrorModel()
+ self.taskError.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('TaskModel')
+ if self.taskId is not None:
+ oprot.writeFieldBegin('taskId', TType.STRING, 1)
+ oprot.writeString(self.taskId)
+ oprot.writeFieldEnd()
+ if self.taskType is not None:
+ oprot.writeFieldBegin('taskType', TType.I32, 2)
+ oprot.writeI32(self.taskType)
+ oprot.writeFieldEnd()
+ if self.parentProcessId is not None:
+ oprot.writeFieldBegin('parentProcessId', TType.STRING, 3)
+ oprot.writeString(self.parentProcessId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 4)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.lastUpdateTime is not None:
+ oprot.writeFieldBegin('lastUpdateTime', TType.I64, 5)
+ oprot.writeI64(self.lastUpdateTime)
+ oprot.writeFieldEnd()
+ if self.taskStatus is not None:
+ oprot.writeFieldBegin('taskStatus', TType.STRUCT, 6)
+ self.taskStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.taskDetail is not None:
+ oprot.writeFieldBegin('taskDetail', TType.STRING, 7)
+ oprot.writeString(self.taskDetail)
+ oprot.writeFieldEnd()
+ if self.subTaskModel is not None:
+ oprot.writeFieldBegin('subTaskModel', TType.STRING, 8)
+ oprot.writeString(self.subTaskModel)
+ oprot.writeFieldEnd()
+ if self.taskError is not None:
+ oprot.writeFieldBegin('taskError', TType.STRUCT, 9)
+ self.taskError.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.taskId is None:
+ raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+ if self.taskType is None:
+ raise TProtocol.TProtocolException(message='Required field taskType is unset!')
+ if self.parentProcessId is None:
+ raise TProtocol.TProtocolException(message='Required field parentProcessId is unset!')
+ if self.creationTime is None:
+ raise TProtocol.TProtocolException(message='Required field creationTime is unset!')
+ if self.lastUpdateTime is None:
+ raise TProtocol.TProtocolException(message='Required field lastUpdateTime is unset!')
+ if self.taskStatus is None:
+ raise TProtocol.TProtocolException(message='Required field taskStatus is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.taskId)
+ value = (value * 31) ^ hash(self.taskType)
+ value = (value * 31) ^ hash(self.parentProcessId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.lastUpdateTime)
+ value = (value * 31) ^ hash(self.taskStatus)
+ value = (value * 31) ^ hash(self.taskDetail)
+ value = (value * 31) ^ hash(self.subTaskModel)
+ value = (value * 31) ^ hash(self.taskError)
+ 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 DataStagingTaskModel:
+ """
+ Attributes:
+ - source
+ - destination
+ - type
+ - transferStartTime
+ - transferEndTime
+ - transferRate
+ - processInput
+ - processOutput
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'source', None, None, ), # 1
+ (2, TType.STRING, 'destination', None, None, ), # 2
+ (3, TType.I32, 'type', None, None, ), # 3
+ (4, TType.I64, 'transferStartTime', None, None, ), # 4
+ (5, TType.I64, 'transferEndTime', None, None, ), # 5
+ (6, TType.STRING, 'transferRate', None, None, ), # 6
+ (7, TType.STRUCT, 'processInput', (apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec), None, ), # 7
+ (8, TType.STRUCT, 'processOutput', (apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec), None, ), # 8
+ )
+
+ def __init__(self, source=None, destination=None, type=None, transferStartTime=None, transferEndTime=None, transferRate=None, processInput=None, processOutput=None,):
+ self.source = source
+ self.destination = destination
+ self.type = type
+ self.transferStartTime = transferStartTime
+ self.transferEndTime = transferEndTime
+ self.transferRate = transferRate
+ self.processInput = processInput
+ self.processOutput = processOutput
+
+ 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.source = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.destination = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.type = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I64:
+ self.transferStartTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.transferEndTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.transferRate = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRUCT:
+ self.processInput = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ self.processInput.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRUCT:
+ self.processOutput = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ self.processOutput.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('DataStagingTaskModel')
+ if self.source is not None:
+ oprot.writeFieldBegin('source', TType.STRING, 1)
+ oprot.writeString(self.source)
+ oprot.writeFieldEnd()
+ if self.destination is not None:
+ oprot.writeFieldBegin('destination', TType.STRING, 2)
+ oprot.writeString(self.destination)
+ oprot.writeFieldEnd()
+ if self.type is not None:
+ oprot.writeFieldBegin('type', TType.I32, 3)
+ oprot.writeI32(self.type)
+ oprot.writeFieldEnd()
+ if self.transferStartTime is not None:
+ oprot.writeFieldBegin('transferStartTime', TType.I64, 4)
+ oprot.writeI64(self.transferStartTime)
+ oprot.writeFieldEnd()
+ if self.transferEndTime is not None:
+ oprot.writeFieldBegin('transferEndTime', TType.I64, 5)
+ oprot.writeI64(self.transferEndTime)
+ oprot.writeFieldEnd()
+ if self.transferRate is not None:
+ oprot.writeFieldBegin('transferRate', TType.STRING, 6)
+ oprot.writeString(self.transferRate)
+ oprot.writeFieldEnd()
+ if self.processInput is not None:
+ oprot.writeFieldBegin('processInput', TType.STRUCT, 7)
+ self.processInput.write(oprot)
+ oprot.writeFieldEnd()
+ if self.processOutput is not None:
+ oprot.writeFieldBegin('processOutput', TType.STRUCT, 8)
+ self.processOutput.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.source is None:
+ raise TProtocol.TProtocolException(message='Required field source is unset!')
+ if self.destination is None:
+ raise TProtocol.TProtocolException(message='Required field destination is unset!')
+ if self.type is None:
+ raise TProtocol.TProtocolException(message='Required field type is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.source)
+ value = (value * 31) ^ hash(self.destination)
+ value = (value * 31) ^ hash(self.type)
+ value = (value * 31) ^ hash(self.transferStartTime)
+ value = (value * 31) ^ hash(self.transferEndTime)
+ value = (value * 31) ^ hash(self.transferRate)
+ value = (value * 31) ^ hash(self.processInput)
+ value = (value * 31) ^ hash(self.processOutput)
+ 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 EnvironmentSetupTaskModel:
+ """
+ EnvironmentSetupTaskModel: A structure holding the environment creation task details
+
+
+ Attributes:
+ - location
+ - protocol
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'location', None, None, ), # 1
+ (2, TType.I32, 'protocol', None, None, ), # 2
+ )
+
+ def __init__(self, location=None, protocol=None,):
+ self.location = location
+ self.protocol = protocol
+
+ 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.location = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.protocol = 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('EnvironmentSetupTaskModel')
+ if self.location is not None:
+ oprot.writeFieldBegin('location', TType.STRING, 1)
+ oprot.writeString(self.location)
+ oprot.writeFieldEnd()
+ if self.protocol is not None:
+ oprot.writeFieldBegin('protocol', TType.I32, 2)
+ oprot.writeI32(self.protocol)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.location is None:
+ raise TProtocol.TProtocolException(message='Required field location is unset!')
+ if self.protocol is None:
+ raise TProtocol.TProtocolException(message='Required field protocol is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.location)
+ value = (value * 31) ^ hash(self.protocol)
+ 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 JobSubmissionTaskModel:
+ """
+ Attributes:
+ - jobSubmissionProtocol
+ - monitorMode
+ - wallTime
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'jobSubmissionProtocol', None, None, ), # 1
+ (2, TType.I32, 'monitorMode', None, None, ), # 2
+ (3, TType.I32, 'wallTime', None, None, ), # 3
+ )
+
+ def __init__(self, jobSubmissionProtocol=None, monitorMode=None, wallTime=None,):
+ self.jobSubmissionProtocol = jobSubmissionProtocol
+ self.monitorMode = monitorMode
+ self.wallTime = wallTime
+
+ 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.I32:
+ self.jobSubmissionProtocol = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.monitorMode = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.wallTime = 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('JobSubmissionTaskModel')
+ if self.jobSubmissionProtocol is not None:
+ oprot.writeFieldBegin('jobSubmissionProtocol', TType.I32, 1)
+ oprot.writeI32(self.jobSubmissionProtocol)
+ oprot.writeFieldEnd()
+ if self.monitorMode is not None:
+ oprot.writeFieldBegin('monitorMode', TType.I32, 2)
+ oprot.writeI32(self.monitorMode)
+ oprot.writeFieldEnd()
+ if self.wallTime is not None:
+ oprot.writeFieldBegin('wallTime', TType.I32, 3)
+ oprot.writeI32(self.wallTime)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobSubmissionProtocol is None:
+ raise TProtocol.TProtocolException(message='Required field jobSubmissionProtocol is unset!')
+ if self.monitorMode is None:
+ raise TProtocol.TProtocolException(message='Required field monitorMode is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobSubmissionProtocol)
+ value = (value * 31) ^ hash(self.monitorMode)
+ value = (value * 31) ^ hash(self.wallTime)
+ 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 MonitorTaskModel:
+ """
+ Attributes:
+ - monitorMode
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'monitorMode', None, None, ), # 1
+ )
+
+ def __init__(self, monitorMode=None,):
+ self.monitorMode = monitorMode
+
+ 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.I32:
+ self.monitorMode = 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('MonitorTaskModel')
+ if self.monitorMode is not None:
+ oprot.writeFieldBegin('monitorMode', TType.I32, 1)
+ oprot.writeI32(self.monitorMode)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.monitorMode is None:
+ raise TProtocol.TProtocolException(message='Required field monitorMode is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.monitorMode)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/ttypes.pyc
new file mode 100644
index 0000000..4015179
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/task/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/ttypes.py
new file mode 100644
index 0000000..b88a91b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/ttypes.py
@@ -0,0 +1,30 @@
+#
+# 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
+import apache.airavata.model.workspace.ttypes
+import apache.airavata.api.error.ttypes
+import apache.airavata.model.messaging.event.ttypes
+import apache.airavata.model.security.ttypes
+import apache.airavata.model.experiment.ttypes
+import apache.airavata.model.job.ttypes
+import apache.airavata.model.task.ttypes
+import apache.airavata.model.process.ttypes
+import apache.airavata.model.scheduling.ttypes
+import apache.airavata.model.status.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/ttypes.pyc
new file mode 100644
index 0000000..06be530
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/__init__.pyc
new file mode 100644
index 0000000..a817720
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/ttypes.py
new file mode 100644
index 0000000..20ce908
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/ttypes.py
@@ -0,0 +1,173 @@
+#
+# 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.application.io.ttypes
+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 Workflow:
+ """
+ Attributes:
+ - templateId
+ - name
+ - graph
+ - image
+ - workflowInputs
+ - workflowOutputs
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'templateId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'name', None, None, ), # 2
+ (3, TType.STRING, 'graph', None, None, ), # 3
+ (4, TType.STRING, 'image', None, None, ), # 4
+ (5, TType.LIST, 'workflowInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 5
+ (6, TType.LIST, 'workflowOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 6
+ )
+
+ def __init__(self, templateId=thrift_spec[1][4], name=None, graph=None, image=None, workflowInputs=None, workflowOutputs=None,):
+ self.templateId = templateId
+ self.name = name
+ self.graph = graph
+ self.image = image
+ self.workflowInputs = workflowInputs
+ self.workflowOutputs = workflowOutputs
+
+ 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.templateId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.name = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.graph = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.image = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.LIST:
+ self.workflowInputs = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ _elem5.read(iprot)
+ self.workflowInputs.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.workflowOutputs = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem11.read(iprot)
+ self.workflowOutputs.append(_elem11)
+ 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('Workflow')
+ if self.templateId is not None:
+ oprot.writeFieldBegin('templateId', TType.STRING, 1)
+ oprot.writeString(self.templateId)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 2)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.graph is not None:
+ oprot.writeFieldBegin('graph', TType.STRING, 3)
+ oprot.writeString(self.graph)
+ oprot.writeFieldEnd()
+ if self.image is not None:
+ oprot.writeFieldBegin('image', TType.STRING, 4)
+ oprot.writeString(self.image)
+ oprot.writeFieldEnd()
+ if self.workflowInputs is not None:
+ oprot.writeFieldBegin('workflowInputs', TType.LIST, 5)
+ oprot.writeListBegin(TType.STRUCT, len(self.workflowInputs))
+ for iter12 in self.workflowInputs:
+ iter12.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.workflowOutputs is not None:
+ oprot.writeFieldBegin('workflowOutputs', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.workflowOutputs))
+ for iter13 in self.workflowOutputs:
+ iter13.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.templateId is None:
+ raise TProtocol.TProtocolException(message='Required field templateId is unset!')
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.templateId)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.graph)
+ value = (value * 31) ^ hash(self.image)
+ value = (value * 31) ^ hash(self.workflowInputs)
+ value = (value * 31) ^ hash(self.workflowOutputs)
+ 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-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/ttypes.pyc
new file mode 100644
index 0000000..72e12f1
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workflow/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__init__.pyc
new file mode 100644
index 0000000..61ccf23
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__pycache__/__init__.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__pycache__/__init__.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__pycache__/__init__.cpython-35.pyc
new file mode 100644
index 0000000..9cca49b
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__pycache__/__init__.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__pycache__/ttypes.cpython-35.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__pycache__/ttypes.cpython-35.pyc b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__pycache__/ttypes.cpython-35.pyc
new file mode 100644
index 0000000..d29cedd
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/__pycache__/ttypes.cpython-35.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/constants.py
@@ -0,0 +1,11 @@
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/constants.py
new file mode 100644
index 0000000..f9a3855
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/constants.py
@@ -0,0 +1,14 @@
+#
+# 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
+from ttypes import *
+
+DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
+DEFAULT_PROJECT_NAME = "DEFAULT"
+SINGLE_APP_NODE_NAME = "SINGLE_APP_NODE"
[21/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/ttypes.py
new file mode 100644
index 0000000..d227f3f
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/model/workspace/experiment/ttypes.py
@@ -0,0 +1,3474 @@
+#
+# 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.appcatalog.computeresource.ttypes
+import apache.airavata.model.appcatalog.appinterface.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class ExperimentState:
+ CREATED = 0
+ VALIDATED = 1
+ SCHEDULED = 2
+ LAUNCHED = 3
+ EXECUTING = 4
+ CANCELING = 5
+ CANCELED = 6
+ SUSPENDED = 7
+ COMPLETED = 8
+ FAILED = 9
+ UNKNOWN = 10
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "VALIDATED",
+ 2: "SCHEDULED",
+ 3: "LAUNCHED",
+ 4: "EXECUTING",
+ 5: "CANCELING",
+ 6: "CANCELED",
+ 7: "SUSPENDED",
+ 8: "COMPLETED",
+ 9: "FAILED",
+ 10: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "VALIDATED": 1,
+ "SCHEDULED": 2,
+ "LAUNCHED": 3,
+ "EXECUTING": 4,
+ "CANCELING": 5,
+ "CANCELED": 6,
+ "SUSPENDED": 7,
+ "COMPLETED": 8,
+ "FAILED": 9,
+ "UNKNOWN": 10,
+ }
+
+class ExperimentSearchFields:
+ EXPERIMENT_NAME = 0
+ EXPERIMENT_DESC = 1
+ APPLICATION_ID = 2
+ FROM_DATE = 3
+ TO_DATE = 4
+ STATUS = 5
+
+ _VALUES_TO_NAMES = {
+ 0: "EXPERIMENT_NAME",
+ 1: "EXPERIMENT_DESC",
+ 2: "APPLICATION_ID",
+ 3: "FROM_DATE",
+ 4: "TO_DATE",
+ 5: "STATUS",
+ }
+
+ _NAMES_TO_VALUES = {
+ "EXPERIMENT_NAME": 0,
+ "EXPERIMENT_DESC": 1,
+ "APPLICATION_ID": 2,
+ "FROM_DATE": 3,
+ "TO_DATE": 4,
+ "STATUS": 5,
+ }
+
+class WorkflowNodeState:
+ INVOKED = 0
+ EXECUTING = 1
+ CANCELING = 2
+ CANCELED = 3
+ SUSPENDED = 4
+ COMPLETED = 5
+ FAILED = 6
+ UNKNOWN = 7
+
+ _VALUES_TO_NAMES = {
+ 0: "INVOKED",
+ 1: "EXECUTING",
+ 2: "CANCELING",
+ 3: "CANCELED",
+ 4: "SUSPENDED",
+ 5: "COMPLETED",
+ 6: "FAILED",
+ 7: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "INVOKED": 0,
+ "EXECUTING": 1,
+ "CANCELING": 2,
+ "CANCELED": 3,
+ "SUSPENDED": 4,
+ "COMPLETED": 5,
+ "FAILED": 6,
+ "UNKNOWN": 7,
+ }
+
+class TaskState:
+ WAITING = 0
+ STARTED = 1
+ PRE_PROCESSING = 2
+ CONFIGURING_WORKSPACE = 3
+ INPUT_DATA_STAGING = 4
+ OUTPUT_DATA_STAGING = 5
+ POST_PROCESSING = 6
+ EXECUTING = 7
+ CANCELING = 8
+ CANCELED = 9
+ COMPLETED = 10
+ FAILED = 11
+ UNKNOWN = 12
+
+ _VALUES_TO_NAMES = {
+ 0: "WAITING",
+ 1: "STARTED",
+ 2: "PRE_PROCESSING",
+ 3: "CONFIGURING_WORKSPACE",
+ 4: "INPUT_DATA_STAGING",
+ 5: "OUTPUT_DATA_STAGING",
+ 6: "POST_PROCESSING",
+ 7: "EXECUTING",
+ 8: "CANCELING",
+ 9: "CANCELED",
+ 10: "COMPLETED",
+ 11: "FAILED",
+ 12: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "WAITING": 0,
+ "STARTED": 1,
+ "PRE_PROCESSING": 2,
+ "CONFIGURING_WORKSPACE": 3,
+ "INPUT_DATA_STAGING": 4,
+ "OUTPUT_DATA_STAGING": 5,
+ "POST_PROCESSING": 6,
+ "EXECUTING": 7,
+ "CANCELING": 8,
+ "CANCELED": 9,
+ "COMPLETED": 10,
+ "FAILED": 11,
+ "UNKNOWN": 12,
+ }
+
+class JobState:
+ SUBMITTED = 0
+ UN_SUBMITTED = 1
+ SETUP = 2
+ QUEUED = 3
+ ACTIVE = 4
+ COMPLETE = 5
+ CANCELING = 6
+ CANCELED = 7
+ FAILED = 8
+ HELD = 9
+ SUSPENDED = 10
+ UNKNOWN = 11
+
+ _VALUES_TO_NAMES = {
+ 0: "SUBMITTED",
+ 1: "UN_SUBMITTED",
+ 2: "SETUP",
+ 3: "QUEUED",
+ 4: "ACTIVE",
+ 5: "COMPLETE",
+ 6: "CANCELING",
+ 7: "CANCELED",
+ 8: "FAILED",
+ 9: "HELD",
+ 10: "SUSPENDED",
+ 11: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "SUBMITTED": 0,
+ "UN_SUBMITTED": 1,
+ "SETUP": 2,
+ "QUEUED": 3,
+ "ACTIVE": 4,
+ "COMPLETE": 5,
+ "CANCELING": 6,
+ "CANCELED": 7,
+ "FAILED": 8,
+ "HELD": 9,
+ "SUSPENDED": 10,
+ "UNKNOWN": 11,
+ }
+
+class TransferState:
+ DIRECTORY_SETUP = 0
+ UPLOAD = 1
+ DOWNLOAD = 2
+ ACTIVE = 3
+ COMPLETE = 4
+ STDOUT_DOWNLOAD = 5
+ STDERROR_DOWNLOAD = 6
+ CANCELING = 7
+ CANCELED = 8
+ FAILED = 9
+ HELD = 10
+ SUSPENDED = 11
+ UNKNOWN = 12
+
+ _VALUES_TO_NAMES = {
+ 0: "DIRECTORY_SETUP",
+ 1: "UPLOAD",
+ 2: "DOWNLOAD",
+ 3: "ACTIVE",
+ 4: "COMPLETE",
+ 5: "STDOUT_DOWNLOAD",
+ 6: "STDERROR_DOWNLOAD",
+ 7: "CANCELING",
+ 8: "CANCELED",
+ 9: "FAILED",
+ 10: "HELD",
+ 11: "SUSPENDED",
+ 12: "UNKNOWN",
+ }
+
+ _NAMES_TO_VALUES = {
+ "DIRECTORY_SETUP": 0,
+ "UPLOAD": 1,
+ "DOWNLOAD": 2,
+ "ACTIVE": 3,
+ "COMPLETE": 4,
+ "STDOUT_DOWNLOAD": 5,
+ "STDERROR_DOWNLOAD": 6,
+ "CANCELING": 7,
+ "CANCELED": 8,
+ "FAILED": 9,
+ "HELD": 10,
+ "SUSPENDED": 11,
+ "UNKNOWN": 12,
+ }
+
+class ActionableGroup:
+ RESOURCE_ADMINS = 0
+ AIRAVATA_ADMINS = 1
+ GATEWAYS_ADMINS = 2
+ USER = 3
+ CANNOT_BE_DETERMINED = 4
+
+ _VALUES_TO_NAMES = {
+ 0: "RESOURCE_ADMINS",
+ 1: "AIRAVATA_ADMINS",
+ 2: "GATEWAYS_ADMINS",
+ 3: "USER",
+ 4: "CANNOT_BE_DETERMINED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "RESOURCE_ADMINS": 0,
+ "AIRAVATA_ADMINS": 1,
+ "GATEWAYS_ADMINS": 2,
+ "USER": 3,
+ "CANNOT_BE_DETERMINED": 4,
+ }
+
+class ErrorCategory:
+ FILE_SYSTEM_FAILURE = 0
+ APPLICATION_FAILURE = 1
+ RESOURCE_NODE_FAILURE = 2
+ DISK_FULL = 3
+ INSUFFICIENT_ALLOCATION = 4
+ SYSTEM_MAINTENANCE = 5
+ AIRAVATA_INTERNAL_ERROR = 6
+ CANNOT_BE_DETERMINED = 7
+
+ _VALUES_TO_NAMES = {
+ 0: "FILE_SYSTEM_FAILURE",
+ 1: "APPLICATION_FAILURE",
+ 2: "RESOURCE_NODE_FAILURE",
+ 3: "DISK_FULL",
+ 4: "INSUFFICIENT_ALLOCATION",
+ 5: "SYSTEM_MAINTENANCE",
+ 6: "AIRAVATA_INTERNAL_ERROR",
+ 7: "CANNOT_BE_DETERMINED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "FILE_SYSTEM_FAILURE": 0,
+ "APPLICATION_FAILURE": 1,
+ "RESOURCE_NODE_FAILURE": 2,
+ "DISK_FULL": 3,
+ "INSUFFICIENT_ALLOCATION": 4,
+ "SYSTEM_MAINTENANCE": 5,
+ "AIRAVATA_INTERNAL_ERROR": 6,
+ "CANNOT_BE_DETERMINED": 7,
+ }
+
+class CorrectiveAction:
+ RETRY_SUBMISSION = 0
+ CONTACT_SUPPORT = 1
+ CANNOT_BE_DETERMINED = 2
+
+ _VALUES_TO_NAMES = {
+ 0: "RETRY_SUBMISSION",
+ 1: "CONTACT_SUPPORT",
+ 2: "CANNOT_BE_DETERMINED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "RETRY_SUBMISSION": 0,
+ "CONTACT_SUPPORT": 1,
+ "CANNOT_BE_DETERMINED": 2,
+ }
+
+class ExecutionUnit:
+ INPUT = 0
+ APPLICATION = 1
+ OUTPUT = 2
+ OTHER = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "INPUT",
+ 1: "APPLICATION",
+ 2: "OUTPUT",
+ 3: "OTHER",
+ }
+
+ _NAMES_TO_VALUES = {
+ "INPUT": 0,
+ "APPLICATION": 1,
+ "OUTPUT": 2,
+ "OTHER": 3,
+ }
+
+
+class ExperimentStatus:
+ """
+ Attributes:
+ - experimentState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'experimentState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, experimentState=None, timeOfStateChange=None,):
+ self.experimentState = experimentState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.experimentState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('ExperimentStatus')
+ if self.experimentState is not None:
+ oprot.writeFieldBegin('experimentState', TType.I32, 1)
+ oprot.writeI32(self.experimentState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.experimentState is None:
+ raise TProtocol.TProtocolException(message='Required field experimentState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.experimentState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 WorkflowNodeStatus:
+ """
+ Attributes:
+ - workflowNodeState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'workflowNodeState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, workflowNodeState=None, timeOfStateChange=None,):
+ self.workflowNodeState = workflowNodeState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.workflowNodeState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('WorkflowNodeStatus')
+ if self.workflowNodeState is not None:
+ oprot.writeFieldBegin('workflowNodeState', TType.I32, 1)
+ oprot.writeI32(self.workflowNodeState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.workflowNodeState is None:
+ raise TProtocol.TProtocolException(message='Required field workflowNodeState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.workflowNodeState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 TaskStatus:
+ """
+ Attributes:
+ - executionState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'executionState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, executionState=None, timeOfStateChange=None,):
+ self.executionState = executionState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.executionState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('TaskStatus')
+ if self.executionState is not None:
+ oprot.writeFieldBegin('executionState', TType.I32, 1)
+ oprot.writeI32(self.executionState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.executionState is None:
+ raise TProtocol.TProtocolException(message='Required field executionState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.executionState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 JobStatus:
+ """
+ Attributes:
+ - jobState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'jobState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, jobState=None, timeOfStateChange=None,):
+ self.jobState = jobState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.jobState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('JobStatus')
+ if self.jobState is not None:
+ oprot.writeFieldBegin('jobState', TType.I32, 1)
+ oprot.writeI32(self.jobState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobState is None:
+ raise TProtocol.TProtocolException(message='Required field jobState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 TransferStatus:
+ """
+ Attributes:
+ - transferState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'transferState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, transferState=None, timeOfStateChange=None,):
+ self.transferState = transferState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.I32:
+ self.transferState = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('TransferStatus')
+ if self.transferState is not None:
+ oprot.writeFieldBegin('transferState', TType.I32, 1)
+ oprot.writeI32(self.transferState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.transferState is None:
+ raise TProtocol.TProtocolException(message='Required field transferState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.transferState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 ApplicationStatus:
+ """
+ Attributes:
+ - applicationState
+ - timeOfStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'applicationState', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ )
+
+ def __init__(self, applicationState=None, timeOfStateChange=None,):
+ self.applicationState = applicationState
+ self.timeOfStateChange = timeOfStateChange
+
+ 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.applicationState = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = 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('ApplicationStatus')
+ if self.applicationState is not None:
+ oprot.writeFieldBegin('applicationState', TType.STRING, 1)
+ oprot.writeString(self.applicationState)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.applicationState is None:
+ raise TProtocol.TProtocolException(message='Required field applicationState is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.applicationState)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ 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 ComputationalResourceScheduling:
+ """
+ A structure holding the Computational Resource Scheduling.
+
+
+ Attributes:
+ - resourceHostId
+ - totalCPUCount
+ - nodeCount
+ - numberOfThreads
+ - queueName
+ - wallTimeLimit
+ - jobStartTime
+ - totalPhysicalMemory
+ - computationalProjectAccount
+ - chassisName
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'resourceHostId', None, None, ), # 1
+ (2, TType.I32, 'totalCPUCount', None, None, ), # 2
+ (3, TType.I32, 'nodeCount', None, None, ), # 3
+ (4, TType.I32, 'numberOfThreads', None, None, ), # 4
+ (5, TType.STRING, 'queueName', None, None, ), # 5
+ (6, TType.I32, 'wallTimeLimit', None, None, ), # 6
+ (7, TType.I32, 'jobStartTime', None, None, ), # 7
+ (8, TType.I32, 'totalPhysicalMemory', None, None, ), # 8
+ (9, TType.STRING, 'computationalProjectAccount', None, None, ), # 9
+ (10, TType.STRING, 'chassisName', None, None, ), # 10
+ )
+
+ def __init__(self, resourceHostId=None, totalCPUCount=None, nodeCount=None, numberOfThreads=None, queueName=None, wallTimeLimit=None, jobStartTime=None, totalPhysicalMemory=None, computationalProjectAccount=None, chassisName=None,):
+ self.resourceHostId = resourceHostId
+ self.totalCPUCount = totalCPUCount
+ self.nodeCount = nodeCount
+ self.numberOfThreads = numberOfThreads
+ self.queueName = queueName
+ self.wallTimeLimit = wallTimeLimit
+ self.jobStartTime = jobStartTime
+ self.totalPhysicalMemory = totalPhysicalMemory
+ self.computationalProjectAccount = computationalProjectAccount
+ self.chassisName = chassisName
+
+ 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.resourceHostId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.totalCPUCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.nodeCount = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.numberOfThreads = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.queueName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I32:
+ self.wallTimeLimit = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I32:
+ self.jobStartTime = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.totalPhysicalMemory = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.computationalProjectAccount = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.chassisName = 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('ComputationalResourceScheduling')
+ if self.resourceHostId is not None:
+ oprot.writeFieldBegin('resourceHostId', TType.STRING, 1)
+ oprot.writeString(self.resourceHostId)
+ oprot.writeFieldEnd()
+ if self.totalCPUCount is not None:
+ oprot.writeFieldBegin('totalCPUCount', TType.I32, 2)
+ oprot.writeI32(self.totalCPUCount)
+ oprot.writeFieldEnd()
+ if self.nodeCount is not None:
+ oprot.writeFieldBegin('nodeCount', TType.I32, 3)
+ oprot.writeI32(self.nodeCount)
+ oprot.writeFieldEnd()
+ if self.numberOfThreads is not None:
+ oprot.writeFieldBegin('numberOfThreads', TType.I32, 4)
+ oprot.writeI32(self.numberOfThreads)
+ oprot.writeFieldEnd()
+ if self.queueName is not None:
+ oprot.writeFieldBegin('queueName', TType.STRING, 5)
+ oprot.writeString(self.queueName)
+ oprot.writeFieldEnd()
+ if self.wallTimeLimit is not None:
+ oprot.writeFieldBegin('wallTimeLimit', TType.I32, 6)
+ oprot.writeI32(self.wallTimeLimit)
+ oprot.writeFieldEnd()
+ if self.jobStartTime is not None:
+ oprot.writeFieldBegin('jobStartTime', TType.I32, 7)
+ oprot.writeI32(self.jobStartTime)
+ oprot.writeFieldEnd()
+ if self.totalPhysicalMemory is not None:
+ oprot.writeFieldBegin('totalPhysicalMemory', TType.I32, 8)
+ oprot.writeI32(self.totalPhysicalMemory)
+ oprot.writeFieldEnd()
+ if self.computationalProjectAccount is not None:
+ oprot.writeFieldBegin('computationalProjectAccount', TType.STRING, 9)
+ oprot.writeString(self.computationalProjectAccount)
+ oprot.writeFieldEnd()
+ if self.chassisName is not None:
+ oprot.writeFieldBegin('chassisName', TType.STRING, 10)
+ oprot.writeString(self.chassisName)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.resourceHostId)
+ value = (value * 31) ^ hash(self.totalCPUCount)
+ value = (value * 31) ^ hash(self.nodeCount)
+ value = (value * 31) ^ hash(self.numberOfThreads)
+ value = (value * 31) ^ hash(self.queueName)
+ value = (value * 31) ^ hash(self.wallTimeLimit)
+ value = (value * 31) ^ hash(self.jobStartTime)
+ value = (value * 31) ^ hash(self.totalPhysicalMemory)
+ value = (value * 31) ^ hash(self.computationalProjectAccount)
+ value = (value * 31) ^ hash(self.chassisName)
+ 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 AdvancedInputDataHandling:
+ """
+ A structure holding specified input data handling.
+
+
+ Attributes:
+ - stageInputFilesToWorkingDir
+ - parentWorkingDirectory
+ - uniqueWorkingDirectory
+ - cleanUpWorkingDirAfterJob
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'stageInputFilesToWorkingDir', None, False, ), # 1
+ (2, TType.STRING, 'parentWorkingDirectory', None, None, ), # 2
+ (3, TType.STRING, 'uniqueWorkingDirectory', None, None, ), # 3
+ (4, TType.BOOL, 'cleanUpWorkingDirAfterJob', None, False, ), # 4
+ )
+
+ def __init__(self, stageInputFilesToWorkingDir=thrift_spec[1][4], parentWorkingDirectory=None, uniqueWorkingDirectory=None, cleanUpWorkingDirAfterJob=thrift_spec[4][4],):
+ self.stageInputFilesToWorkingDir = stageInputFilesToWorkingDir
+ self.parentWorkingDirectory = parentWorkingDirectory
+ self.uniqueWorkingDirectory = uniqueWorkingDirectory
+ self.cleanUpWorkingDirAfterJob = cleanUpWorkingDirAfterJob
+
+ 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.BOOL:
+ self.stageInputFilesToWorkingDir = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.parentWorkingDirectory = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.uniqueWorkingDirectory = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.BOOL:
+ self.cleanUpWorkingDirAfterJob = iprot.readBool();
+ 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('AdvancedInputDataHandling')
+ if self.stageInputFilesToWorkingDir is not None:
+ oprot.writeFieldBegin('stageInputFilesToWorkingDir', TType.BOOL, 1)
+ oprot.writeBool(self.stageInputFilesToWorkingDir)
+ oprot.writeFieldEnd()
+ if self.parentWorkingDirectory is not None:
+ oprot.writeFieldBegin('parentWorkingDirectory', TType.STRING, 2)
+ oprot.writeString(self.parentWorkingDirectory)
+ oprot.writeFieldEnd()
+ if self.uniqueWorkingDirectory is not None:
+ oprot.writeFieldBegin('uniqueWorkingDirectory', TType.STRING, 3)
+ oprot.writeString(self.uniqueWorkingDirectory)
+ oprot.writeFieldEnd()
+ if self.cleanUpWorkingDirAfterJob is not None:
+ oprot.writeFieldBegin('cleanUpWorkingDirAfterJob', TType.BOOL, 4)
+ oprot.writeBool(self.cleanUpWorkingDirAfterJob)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.stageInputFilesToWorkingDir)
+ value = (value * 31) ^ hash(self.parentWorkingDirectory)
+ value = (value * 31) ^ hash(self.uniqueWorkingDirectory)
+ value = (value * 31) ^ hash(self.cleanUpWorkingDirAfterJob)
+ 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 AdvancedOutputDataHandling:
+ """
+ A structure holding specified output data handling.
+
+
+ Attributes:
+ - outputDataDir
+ - dataRegistryURL
+ - persistOutputData
+ """
+
+ thrift_spec = (
+ None, # 0
+ None, # 1
+ (2, TType.STRING, 'outputDataDir', None, None, ), # 2
+ (3, TType.STRING, 'dataRegistryURL', None, None, ), # 3
+ (4, TType.BOOL, 'persistOutputData', None, True, ), # 4
+ )
+
+ def __init__(self, outputDataDir=None, dataRegistryURL=None, persistOutputData=thrift_spec[4][4],):
+ self.outputDataDir = outputDataDir
+ self.dataRegistryURL = dataRegistryURL
+ self.persistOutputData = persistOutputData
+
+ 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 == 2:
+ if ftype == TType.STRING:
+ self.outputDataDir = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.dataRegistryURL = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.BOOL:
+ self.persistOutputData = iprot.readBool();
+ 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('AdvancedOutputDataHandling')
+ if self.outputDataDir is not None:
+ oprot.writeFieldBegin('outputDataDir', TType.STRING, 2)
+ oprot.writeString(self.outputDataDir)
+ oprot.writeFieldEnd()
+ if self.dataRegistryURL is not None:
+ oprot.writeFieldBegin('dataRegistryURL', TType.STRING, 3)
+ oprot.writeString(self.dataRegistryURL)
+ oprot.writeFieldEnd()
+ if self.persistOutputData is not None:
+ oprot.writeFieldBegin('persistOutputData', TType.BOOL, 4)
+ oprot.writeBool(self.persistOutputData)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.outputDataDir)
+ value = (value * 31) ^ hash(self.dataRegistryURL)
+ value = (value * 31) ^ hash(self.persistOutputData)
+ 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 QualityOfServiceParams:
+ """
+ A structure holding Quality of Service Parameters.
+
+
+ Attributes:
+ - startExecutionAt
+ - executeBefore
+ - numberofRetries
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'startExecutionAt', None, None, ), # 1
+ (2, TType.STRING, 'executeBefore', None, None, ), # 2
+ (3, TType.I32, 'numberofRetries', None, None, ), # 3
+ )
+
+ def __init__(self, startExecutionAt=None, executeBefore=None, numberofRetries=None,):
+ self.startExecutionAt = startExecutionAt
+ self.executeBefore = executeBefore
+ self.numberofRetries = numberofRetries
+
+ 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.startExecutionAt = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.executeBefore = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I32:
+ self.numberofRetries = 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('QualityOfServiceParams')
+ if self.startExecutionAt is not None:
+ oprot.writeFieldBegin('startExecutionAt', TType.STRING, 1)
+ oprot.writeString(self.startExecutionAt)
+ oprot.writeFieldEnd()
+ if self.executeBefore is not None:
+ oprot.writeFieldBegin('executeBefore', TType.STRING, 2)
+ oprot.writeString(self.executeBefore)
+ oprot.writeFieldEnd()
+ if self.numberofRetries is not None:
+ oprot.writeFieldBegin('numberofRetries', TType.I32, 3)
+ oprot.writeI32(self.numberofRetries)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.startExecutionAt)
+ value = (value * 31) ^ hash(self.executeBefore)
+ value = (value * 31) ^ hash(self.numberofRetries)
+ 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 UserConfigurationData:
+ """
+ A structure holding the experiment configuration.
+
+
+
+ Attributes:
+ - airavataAutoSchedule
+ - overrideManualScheduledParams
+ - shareExperimentPublicly
+ - computationalResourceScheduling
+ - advanceInputDataHandling
+ - advanceOutputDataHandling
+ - qosParams
+ - throttleResources
+ - userDN
+ - generateCert
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.BOOL, 'airavataAutoSchedule', None, False, ), # 1
+ (2, TType.BOOL, 'overrideManualScheduledParams', None, False, ), # 2
+ (3, TType.BOOL, 'shareExperimentPublicly', None, False, ), # 3
+ (4, TType.STRUCT, 'computationalResourceScheduling', (ComputationalResourceScheduling, ComputationalResourceScheduling.thrift_spec), None, ), # 4
+ (5, TType.STRUCT, 'advanceInputDataHandling', (AdvancedInputDataHandling, AdvancedInputDataHandling.thrift_spec), None, ), # 5
+ (6, TType.STRUCT, 'advanceOutputDataHandling', (AdvancedOutputDataHandling, AdvancedOutputDataHandling.thrift_spec), None, ), # 6
+ (7, TType.STRUCT, 'qosParams', (QualityOfServiceParams, QualityOfServiceParams.thrift_spec), None, ), # 7
+ (8, TType.BOOL, 'throttleResources', None, False, ), # 8
+ (9, TType.STRING, 'userDN', None, None, ), # 9
+ (10, TType.BOOL, 'generateCert', None, False, ), # 10
+ )
+
+ def __init__(self, airavataAutoSchedule=thrift_spec[1][4], overrideManualScheduledParams=thrift_spec[2][4], shareExperimentPublicly=thrift_spec[3][4], computationalResourceScheduling=None, advanceInputDataHandling=None, advanceOutputDataHandling=None, qosParams=None, throttleResources=thrift_spec[8][4], userDN=None, generateCert=thrift_spec[10][4],):
+ self.airavataAutoSchedule = airavataAutoSchedule
+ self.overrideManualScheduledParams = overrideManualScheduledParams
+ self.shareExperimentPublicly = shareExperimentPublicly
+ self.computationalResourceScheduling = computationalResourceScheduling
+ self.advanceInputDataHandling = advanceInputDataHandling
+ self.advanceOutputDataHandling = advanceOutputDataHandling
+ self.qosParams = qosParams
+ self.throttleResources = throttleResources
+ self.userDN = userDN
+ self.generateCert = generateCert
+
+ 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.BOOL:
+ self.airavataAutoSchedule = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.BOOL:
+ self.overrideManualScheduledParams = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.BOOL:
+ self.shareExperimentPublicly = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.computationalResourceScheduling = ComputationalResourceScheduling()
+ self.computationalResourceScheduling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRUCT:
+ self.advanceInputDataHandling = AdvancedInputDataHandling()
+ self.advanceInputDataHandling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRUCT:
+ self.advanceOutputDataHandling = AdvancedOutputDataHandling()
+ self.advanceOutputDataHandling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRUCT:
+ self.qosParams = QualityOfServiceParams()
+ self.qosParams.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.BOOL:
+ self.throttleResources = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.userDN = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.BOOL:
+ self.generateCert = iprot.readBool();
+ 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('UserConfigurationData')
+ if self.airavataAutoSchedule is not None:
+ oprot.writeFieldBegin('airavataAutoSchedule', TType.BOOL, 1)
+ oprot.writeBool(self.airavataAutoSchedule)
+ oprot.writeFieldEnd()
+ if self.overrideManualScheduledParams is not None:
+ oprot.writeFieldBegin('overrideManualScheduledParams', TType.BOOL, 2)
+ oprot.writeBool(self.overrideManualScheduledParams)
+ oprot.writeFieldEnd()
+ if self.shareExperimentPublicly is not None:
+ oprot.writeFieldBegin('shareExperimentPublicly', TType.BOOL, 3)
+ oprot.writeBool(self.shareExperimentPublicly)
+ oprot.writeFieldEnd()
+ if self.computationalResourceScheduling is not None:
+ oprot.writeFieldBegin('computationalResourceScheduling', TType.STRUCT, 4)
+ self.computationalResourceScheduling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.advanceInputDataHandling is not None:
+ oprot.writeFieldBegin('advanceInputDataHandling', TType.STRUCT, 5)
+ self.advanceInputDataHandling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.advanceOutputDataHandling is not None:
+ oprot.writeFieldBegin('advanceOutputDataHandling', TType.STRUCT, 6)
+ self.advanceOutputDataHandling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.qosParams is not None:
+ oprot.writeFieldBegin('qosParams', TType.STRUCT, 7)
+ self.qosParams.write(oprot)
+ oprot.writeFieldEnd()
+ if self.throttleResources is not None:
+ oprot.writeFieldBegin('throttleResources', TType.BOOL, 8)
+ oprot.writeBool(self.throttleResources)
+ oprot.writeFieldEnd()
+ if self.userDN is not None:
+ oprot.writeFieldBegin('userDN', TType.STRING, 9)
+ oprot.writeString(self.userDN)
+ oprot.writeFieldEnd()
+ if self.generateCert is not None:
+ oprot.writeFieldBegin('generateCert', TType.BOOL, 10)
+ oprot.writeBool(self.generateCert)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataAutoSchedule is None:
+ raise TProtocol.TProtocolException(message='Required field airavataAutoSchedule is unset!')
+ if self.overrideManualScheduledParams is None:
+ raise TProtocol.TProtocolException(message='Required field overrideManualScheduledParams is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataAutoSchedule)
+ value = (value * 31) ^ hash(self.overrideManualScheduledParams)
+ value = (value * 31) ^ hash(self.shareExperimentPublicly)
+ value = (value * 31) ^ hash(self.computationalResourceScheduling)
+ value = (value * 31) ^ hash(self.advanceInputDataHandling)
+ value = (value * 31) ^ hash(self.advanceOutputDataHandling)
+ value = (value * 31) ^ hash(self.qosParams)
+ value = (value * 31) ^ hash(self.throttleResources)
+ value = (value * 31) ^ hash(self.userDN)
+ value = (value * 31) ^ hash(self.generateCert)
+ 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 ErrorDetails:
+ """
+ Attributes:
+ - errorID
+ - creationTime
+ - actualErrorMessage
+ - userFriendlyMessage
+ - errorCategory
+ - transientOrPersistent
+ - correctiveAction
+ - actionableGroup
+ - rootCauseErrorIdList
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'errorID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'actualErrorMessage', None, None, ), # 3
+ (4, TType.STRING, 'userFriendlyMessage', None, None, ), # 4
+ (5, TType.I32, 'errorCategory', None, None, ), # 5
+ (6, TType.BOOL, 'transientOrPersistent', None, False, ), # 6
+ (7, TType.I32, 'correctiveAction', None, None, ), # 7
+ (8, TType.I32, 'actionableGroup', None, None, ), # 8
+ (9, TType.LIST, 'rootCauseErrorIdList', (TType.STRING,None), None, ), # 9
+ )
+
+ def __init__(self, errorID=thrift_spec[1][4], creationTime=None, actualErrorMessage=None, userFriendlyMessage=None, errorCategory=None, transientOrPersistent=thrift_spec[6][4], correctiveAction=None, actionableGroup=None, rootCauseErrorIdList=None,):
+ self.errorID = errorID
+ self.creationTime = creationTime
+ self.actualErrorMessage = actualErrorMessage
+ self.userFriendlyMessage = userFriendlyMessage
+ self.errorCategory = errorCategory
+ self.transientOrPersistent = transientOrPersistent
+ self.correctiveAction = correctiveAction
+ self.actionableGroup = actionableGroup
+ self.rootCauseErrorIdList = rootCauseErrorIdList
+
+ 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.errorID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.actualErrorMessage = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.userFriendlyMessage = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I32:
+ self.errorCategory = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.BOOL:
+ self.transientOrPersistent = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I32:
+ self.correctiveAction = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.actionableGroup = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.rootCauseErrorIdList = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString();
+ self.rootCauseErrorIdList.append(_elem5)
+ 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('ErrorDetails')
+ if self.errorID is not None:
+ oprot.writeFieldBegin('errorID', TType.STRING, 1)
+ oprot.writeString(self.errorID)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.actualErrorMessage is not None:
+ oprot.writeFieldBegin('actualErrorMessage', TType.STRING, 3)
+ oprot.writeString(self.actualErrorMessage)
+ oprot.writeFieldEnd()
+ if self.userFriendlyMessage is not None:
+ oprot.writeFieldBegin('userFriendlyMessage', TType.STRING, 4)
+ oprot.writeString(self.userFriendlyMessage)
+ oprot.writeFieldEnd()
+ if self.errorCategory is not None:
+ oprot.writeFieldBegin('errorCategory', TType.I32, 5)
+ oprot.writeI32(self.errorCategory)
+ oprot.writeFieldEnd()
+ if self.transientOrPersistent is not None:
+ oprot.writeFieldBegin('transientOrPersistent', TType.BOOL, 6)
+ oprot.writeBool(self.transientOrPersistent)
+ oprot.writeFieldEnd()
+ if self.correctiveAction is not None:
+ oprot.writeFieldBegin('correctiveAction', TType.I32, 7)
+ oprot.writeI32(self.correctiveAction)
+ oprot.writeFieldEnd()
+ if self.actionableGroup is not None:
+ oprot.writeFieldBegin('actionableGroup', TType.I32, 8)
+ oprot.writeI32(self.actionableGroup)
+ oprot.writeFieldEnd()
+ if self.rootCauseErrorIdList is not None:
+ oprot.writeFieldBegin('rootCauseErrorIdList', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRING, len(self.rootCauseErrorIdList))
+ for iter6 in self.rootCauseErrorIdList:
+ oprot.writeString(iter6)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.errorID is None:
+ raise TProtocol.TProtocolException(message='Required field errorID is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.errorID)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.actualErrorMessage)
+ value = (value * 31) ^ hash(self.userFriendlyMessage)
+ value = (value * 31) ^ hash(self.errorCategory)
+ value = (value * 31) ^ hash(self.transientOrPersistent)
+ value = (value * 31) ^ hash(self.correctiveAction)
+ value = (value * 31) ^ hash(self.actionableGroup)
+ value = (value * 31) ^ hash(self.rootCauseErrorIdList)
+ 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 JobDetails:
+ """
+ Attributes:
+ - jobID
+ - jobDescription
+ - creationTime
+ - jobStatus
+ - applicationStatus
+ - errors
+ - computeResourceConsumed
+ - jobName
+ - workingDir
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'jobID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'jobDescription', None, None, ), # 2
+ (3, TType.I64, 'creationTime', None, None, ), # 3
+ (4, TType.STRUCT, 'jobStatus', (JobStatus, JobStatus.thrift_spec), None, ), # 4
+ (5, TType.STRUCT, 'applicationStatus', (ApplicationStatus, ApplicationStatus.thrift_spec), None, ), # 5
+ (6, TType.LIST, 'errors', (TType.STRUCT,(ErrorDetails, ErrorDetails.thrift_spec)), None, ), # 6
+ (7, TType.STRING, 'computeResourceConsumed', None, None, ), # 7
+ (8, TType.STRING, 'jobName', None, None, ), # 8
+ (9, TType.STRING, 'workingDir', None, None, ), # 9
+ )
+
+ def __init__(self, jobID=thrift_spec[1][4], jobDescription=None, creationTime=None, jobStatus=None, applicationStatus=None, errors=None, computeResourceConsumed=None, jobName=None, workingDir=None,):
+ self.jobID = jobID
+ self.jobDescription = jobDescription
+ self.creationTime = creationTime
+ self.jobStatus = jobStatus
+ self.applicationStatus = applicationStatus
+ self.errors = errors
+ self.computeResourceConsumed = computeResourceConsumed
+ self.jobName = jobName
+ self.workingDir = workingDir
+
+ 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.jobID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.jobDescription = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.jobStatus = JobStatus()
+ self.jobStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRUCT:
+ self.applicationStatus = ApplicationStatus()
+ self.applicationStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.errors = []
+ (_etype10, _size7) = iprot.readListBegin()
+ for _i11 in xrange(_size7):
+ _elem12 = ErrorDetails()
+ _elem12.read(iprot)
+ self.errors.append(_elem12)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.computeResourceConsumed = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.jobName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.workingDir = 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('JobDetails')
+ if self.jobID is not None:
+ oprot.writeFieldBegin('jobID', TType.STRING, 1)
+ oprot.writeString(self.jobID)
+ oprot.writeFieldEnd()
+ if self.jobDescription is not None:
+ oprot.writeFieldBegin('jobDescription', TType.STRING, 2)
+ oprot.writeString(self.jobDescription)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 3)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.jobStatus is not None:
+ oprot.writeFieldBegin('jobStatus', TType.STRUCT, 4)
+ self.jobStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.applicationStatus is not None:
+ oprot.writeFieldBegin('applicationStatus', TType.STRUCT, 5)
+ self.applicationStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.errors is not None:
+ oprot.writeFieldBegin('errors', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.errors))
+ for iter13 in self.errors:
+ iter13.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.computeResourceConsumed is not None:
+ oprot.writeFieldBegin('computeResourceConsumed', TType.STRING, 7)
+ oprot.writeString(self.computeResourceConsumed)
+ oprot.writeFieldEnd()
+ if self.jobName is not None:
+ oprot.writeFieldBegin('jobName', TType.STRING, 8)
+ oprot.writeString(self.jobName)
+ oprot.writeFieldEnd()
+ if self.workingDir is not None:
+ oprot.writeFieldBegin('workingDir', TType.STRING, 9)
+ oprot.writeString(self.workingDir)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.jobID is None:
+ raise TProtocol.TProtocolException(message='Required field jobID is unset!')
+ if self.jobDescription is None:
+ raise TProtocol.TProtocolException(message='Required field jobDescription is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.jobID)
+ value = (value * 31) ^ hash(self.jobDescription)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.jobStatus)
+ value = (value * 31) ^ hash(self.applicationStatus)
+ value = (value * 31) ^ hash(self.errors)
+ value = (value * 31) ^ hash(self.computeResourceConsumed)
+ value = (value * 31) ^ hash(self.jobName)
+ value = (value * 31) ^ hash(self.workingDir)
+ 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 DataTransferDetails:
+ """
+ Attributes:
+ - transferID
+ - creationTime
+ - transferDescription
+ - transferStatus
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'transferID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'transferDescription', None, None, ), # 3
+ (4, TType.STRUCT, 'transferStatus', (TransferStatus, TransferStatus.thrift_spec), None, ), # 4
+ )
+
+ def __init__(self, transferID=thrift_spec[1][4], creationTime=None, transferDescription=None, transferStatus=None,):
+ self.transferID = transferID
+ self.creationTime = creationTime
+ self.transferDescription = transferDescription
+ self.transferStatus = transferStatus
+
+ 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.transferID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.transferDescription = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.transferStatus = TransferStatus()
+ self.transferStatus.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('DataTransferDetails')
+ if self.transferID is not None:
+ oprot.writeFieldBegin('transferID', TType.STRING, 1)
+ oprot.writeString(self.transferID)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.transferDescription is not None:
+ oprot.writeFieldBegin('transferDescription', TType.STRING, 3)
+ oprot.writeString(self.transferDescription)
+ oprot.writeFieldEnd()
+ if self.transferStatus is not None:
+ oprot.writeFieldBegin('transferStatus', TType.STRUCT, 4)
+ self.transferStatus.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.transferID is None:
+ raise TProtocol.TProtocolException(message='Required field transferID is unset!')
+ if self.transferDescription is None:
+ raise TProtocol.TProtocolException(message='Required field transferDescription is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.transferID)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.transferDescription)
+ value = (value * 31) ^ hash(self.transferStatus)
+ 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 TaskDetails:
+ """
+ A structure holding the actual execution context decided based on user provided configuration data or system inferred
+ information from scheduling and QoS parameters. One experiment can have multiple tasks. Each tasks results in
+ data transfers and jobs
+
+
+ Attributes:
+ - taskID
+ - creationTime
+ - applicationId
+ - applicationVersion
+ - applicationDeploymentId
+ - applicationInputs
+ - applicationOutputs
+ - taskScheduling
+ - advancedInputDataHandling
+ - advancedOutputDataHandling
+ - taskStatus
+ - jobDetailsList
+ - dataTransferDetailsList
+ - errors
+ - enableEmailNotification
+ - emailAddresses
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'taskID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'applicationId', None, None, ), # 3
+ (4, TType.STRING, 'applicationVersion', None, None, ), # 4
+ (5, TType.STRING, 'applicationDeploymentId', None, None, ), # 5
+ (6, TType.LIST, 'applicationInputs', (TType.STRUCT,(apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType, apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType.thrift_spec)), None, ), # 6
+ (7, TType.LIST, 'applicationOutputs', (TType.STRUCT,(apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType, apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 7
+ (8, TType.STRUCT, 'taskScheduling', (ComputationalResourceScheduling, ComputationalResourceScheduling.thrift_spec), None, ), # 8
+ (9, TType.STRUCT, 'advancedInputDataHandling', (AdvancedInputDataHandling, AdvancedInputDataHandling.thrift_spec), None, ), # 9
+ (10, TType.STRUCT, 'advancedOutputDataHandling', (AdvancedOutputDataHandling, AdvancedOutputDataHandling.thrift_spec), None, ), # 10
+ (11, TType.STRUCT, 'taskStatus', (TaskStatus, TaskStatus.thrift_spec), None, ), # 11
+ (12, TType.LIST, 'jobDetailsList', (TType.STRUCT,(JobDetails, JobDetails.thrift_spec)), None, ), # 12
+ (13, TType.LIST, 'dataTransferDetailsList', (TType.STRUCT,(DataTransferDetails, DataTransferDetails.thrift_spec)), None, ), # 13
+ (14, TType.LIST, 'errors', (TType.STRUCT,(ErrorDetails, ErrorDetails.thrift_spec)), None, ), # 14
+ (15, TType.BOOL, 'enableEmailNotification', None, None, ), # 15
+ (16, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 16
+ )
+
+ def __init__(self, taskID=thrift_spec[1][4], creationTime=None, applicationId=None, applicationVersion=None, applicationDeploymentId=None, applicationInputs=None, applicationOutputs=None, taskScheduling=None, advancedInputDataHandling=None, advancedOutputDataHandling=None, taskStatus=None, jobDetailsList=None, dataTransferDetailsList=None, errors=None, enableEmailNotification=None, emailAddresses=None,):
+ self.taskID = taskID
+ self.creationTime = creationTime
+ self.applicationId = applicationId
+ self.applicationVersion = applicationVersion
+ self.applicationDeploymentId = applicationDeploymentId
+ self.applicationInputs = applicationInputs
+ self.applicationOutputs = applicationOutputs
+ self.taskScheduling = taskScheduling
+ self.advancedInputDataHandling = advancedInputDataHandling
+ self.advancedOutputDataHandling = advancedOutputDataHandling
+ self.taskStatus = taskStatus
+ self.jobDetailsList = jobDetailsList
+ self.dataTransferDetailsList = dataTransferDetailsList
+ self.errors = errors
+ self.enableEmailNotification = enableEmailNotification
+ self.emailAddresses = emailAddresses
+
+ 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.taskID = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.applicationId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.applicationVersion = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.applicationDeploymentId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.applicationInputs = []
+ (_etype17, _size14) = iprot.readListBegin()
+ for _i18 in xrange(_size14):
+ _elem19 = apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType()
+ _elem19.read(iprot)
+ self.applicationInputs.append(_elem19)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.applicationOutputs = []
+ (_etype23, _size20) = iprot.readListBegin()
+ for _i24 in xrange(_size20):
+ _elem25 = apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType()
+ _elem25.read(iprot)
+ self.applicationOutputs.append(_elem25)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRUCT:
+ self.taskScheduling = ComputationalResourceScheduling()
+ self.taskScheduling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRUCT:
+ self.advancedInputDataHandling = AdvancedInputDataHandling()
+ self.advancedInputDataHandling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRUCT:
+ self.advancedOutputDataHandling = AdvancedOutputDataHandling()
+ self.advancedOutputDataHandling.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRUCT:
+ self.taskStatus = TaskStatus()
+ self.taskStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.LIST:
+ self.jobDetailsList = []
+ (_etype29, _size26) = iprot.readListBegin()
+ for _i30 in xrange(_size26):
+ _elem31 = JobDetails()
+ _elem31.read(iprot)
+ self.jobDetailsList.append(_elem31)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.LIST:
+ self.dataTransferDetailsList = []
+ (_etype35, _size32) = iprot.readListBegin()
+ for _i36 in xrange(_size32):
+ _elem37 = DataTransferDetails()
+ _elem37.read(iprot)
+ self.dataTransferDetailsList.append(_elem37)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.LIST:
+ self.errors = []
+ (_etype41, _size38) = iprot.readListBegin()
+ for _i42 in xrange(_size38):
+ _elem43 = ErrorDetails()
+ _elem43.read(iprot)
+ self.errors.append(_elem43)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 15:
+ if ftype == TType.BOOL:
+ self.enableEmailNotification = iprot.readBool();
+ else:
+ iprot.skip(ftype)
+ elif fid == 16:
+ if ftype == TType.LIST:
+ self.emailAddresses = []
+ (_etype47, _size44) = iprot.readListBegin()
+ for _i48 in xrange(_size44):
+ _elem49 = iprot.readString();
+ self.emailAddresses.append(_elem49)
+ 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('TaskDetails')
+ if self.taskID is not None:
+ oprot.writeFieldBegin('taskID', TType.STRING, 1)
+ oprot.writeString(self.taskID)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.applicationId is not None:
+ oprot.writeFieldBegin('applicationId', TType.STRING, 3)
+ oprot.writeString(self.applicationId)
+ oprot.writeFieldEnd()
+ if self.applicationVersion is not None:
+ oprot.writeFieldBegin('applicationVersion', TType.STRING, 4)
+ oprot.writeString(self.applicationVersion)
+ oprot.writeFieldEnd()
+ if self.applicationDeploymentId is not None:
+ oprot.writeFieldBegin('applicationDeploymentId', TType.STRING, 5)
+ oprot.writeString(self.applicationDeploymentId)
+ oprot.writeFieldEnd()
+ if self.applicationInputs is not None:
+ oprot.writeFieldBegin('applicationInputs', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.applicationInputs))
+ for iter50 in self.applicationInputs:
+ iter50.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.applicationOutputs is not None:
+ oprot.writeFieldBegin('applicationOutputs', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.applicationOutputs))
+ for iter51 in self.applicationOutputs:
+ iter51.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.taskScheduling is not None:
+ oprot.writeFieldBegin('taskScheduling', TType.STRUCT, 8)
+ self.taskScheduling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.advancedInputDataHandling is not None:
+ oprot.writeFieldBegin('advancedInputDataHandling', TType.STRUCT, 9)
+ self.advancedInputDataHandling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.advancedOutputDataHandling is not None:
+ oprot.writeFieldBegin('advancedOutputDataHandling', TType.STRUCT, 10)
+ self.advancedOutputDataHandling.write(oprot)
+ oprot.writeFieldEnd()
+ if self.taskStatus is not None:
+ oprot.writeFieldBegin('taskStatus', TType.STRUCT, 11)
+ self.taskStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.jobDetailsList is not None:
+ oprot.writeFieldBegin('jobDetailsList', TType.LIST, 12)
+ oprot.writeListBegin(TType.STRUCT, len(self.jobDetailsList))
+ for iter52 in self.jobDetailsList:
+ iter52.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.dataTransferDetailsList is not None:
+ oprot.writeFieldBegin('dataTransferDetailsList', TType.LIST, 13)
+ oprot.writeListBegin(TType.STRUCT, len(self.dataTransferDetailsList))
+ for iter53 in self.dataTransferDetailsList:
+ iter53.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.errors is not None:
+ oprot.writeFieldBegin('errors', TType.LIST, 14)
+ oprot.writeListBegin(TType.STRUCT, len(self.errors))
+ for iter54 in self.errors:
+ iter54.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.enableEmailNotification is not None:
+ oprot.writeFieldBegin('enableEmailNotification', TType.BOOL, 15)
+ oprot.writeBool(self.enableEmailNotification)
+ oprot.writeFieldEnd()
+ if self.emailAddresses is not None:
+ oprot.writeFieldBegin('emailAddresses', TType.LIST, 16)
+ oprot.writeListBegin(TType.STRING, len(self.emailAddresses))
+ for iter55 in self.emailAddresses:
+ oprot.writeString(iter55)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.taskID is None:
+ raise TProtocol.TProtocolException(message='Required field taskID is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.taskID)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.applicationId)
+ value = (value * 31) ^ hash(self.applicationVersion)
+ value = (value * 31) ^ hash(self.applicationDeploymentId)
+ value = (value * 31) ^ hash(self.applicationInputs)
+ value = (value * 31) ^ hash(self.applicationOutputs)
+ value = (value * 31) ^ hash(self.taskScheduling)
+ value = (value * 31) ^ hash(self.advancedInputDataHandling)
+ value = (value * 31) ^ hash(self.advancedOutputDataHandling)
+ value = (value * 31) ^ hash(self.taskStatus)
+ value = (value * 31) ^ hash(self.jobDetailsList)
+ value = (value * 31) ^ hash(self.dataTransferDetailsList)
+ value = (value * 31) ^ hash(self.errors)
+ value = (value * 31) ^ hash(self.enableEmailNotification)
+ value = (value * 31) ^ hash(self.emailAddresses)
+ 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 WorkflowNodeDetails:
+ """
+ A structure holding the node data.
+ nodeInstanceId - unique node identifier for each run
+
+ Attributes:
+ - nodeInstanceId
+ - creationTime
+ - nodeName
+ - executionUnit
+ - executionUnitData
+ - nodeInputs
+ - nodeOutputs
+ - workflowNodeStatus
+ - taskDetailsList
+ - errors
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'nodeInstanceId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.I64, 'creationTime', None, None, ), # 2
+ (3, TType.STRING, 'nodeName', None, "SINGLE_APP_NODE", ), # 3
+ (4, TType.I32, 'executionUnit', None, 1, ), # 4
+ (5, TType.STRING, 'executionUnitData', None, None, ), # 5
+ (6, TType.LIST, 'nodeInputs', (TType.STRUCT,(apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType, apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType.thrift_spec)), None, ), # 6
+ (7, TType.LIST, 'nodeOutputs', (TType.STRUCT,(apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType, apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 7
+ (8, TType.STRUCT, 'workflowNodeStatus', (WorkflowNodeStatus, WorkflowNodeStatus.thrift_spec), None, ), # 8
+ (9, TType.LIST, 'taskDetailsList', (TType.STRUCT,(TaskDetails, TaskDetails.thrift_spec)), None, ), # 9
+ (10, TType.LIST, 'errors', (TType.STRUCT,(ErrorDetails, ErrorDetails.thrift_spec)), None, ), # 10
+ )
+
+ def __init__(self, nodeInstanceId=thrift_spec[1][4], creationTime=None, nodeName=thrift_spec[3][4], executionUnit=thrift_spec[4][4], executionUnitData=None, nodeInputs=None, nodeOutputs=None, workflowNodeStatus=None, taskDetailsList=None, errors=None,):
+ self.nodeInstanceId = nodeInstanceId
+ self.creationTime = creationTime
+ self.nodeName = nodeName
+ self.executionUnit = executionUnit
+ self.executionUnitData = executionUnitData
+ self.nodeInputs = nodeInputs
+ self.nodeOutputs = nodeOutputs
+ self.workflowNodeStatus = workflowNodeStatus
+ self.taskDetailsList = taskDetailsList
+ self.errors = errors
+
+ 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.nodeInstanceId = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.nodeName = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.I32:
+ self.executionUnit = iprot.readI32();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.executionUnitData = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.nodeInputs = []
+ (_etype59, _size56) = iprot.readListBegin()
+ for _i60 in xrange(_size56):
+ _elem61 = apache.airavata.model.appcatalog.appinterface.ttypes.InputDataObjectType()
+ _elem61.read(iprot)
+ self.nodeInputs.append(_elem61)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.nodeOutputs = []
+ (_etype65, _size62) = iprot.readListBegin()
+ for _i66 in xrange(_size62):
+ _elem67 = apache.airavata.model.appcatalog.appinterface.ttypes.OutputDataObjectType()
+ _elem67.read(iprot)
+ self.nodeOutputs.append(_elem67)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRUCT:
+ self.workflowNodeStatus = WorkflowNodeStatus()
+ self.workflowNodeStatus.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.LIST:
+ self.taskDetailsList = []
+ (_etype71, _size68) = iprot.readListBegin()
+ for _i72 in xrange(_size68):
+ _elem73 = TaskDetails()
+ _elem73.read(iprot)
+ self.taskDetailsList.append(_elem73)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.LIST:
+ self.errors = []
+ (_etype77, _size74) = iprot.readListBegin()
+ for _i78 in xrange(_size74):
+ _elem79 = ErrorDetails()
+ _elem79.read(iprot)
+ self.errors.append(_elem79)
+ 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('WorkflowNodeDetails')
+ if self.nodeInstanceId is not None:
+ oprot.writeFieldBegin('nodeInstanceId', TType.STRING, 1)
+ oprot.writeString(self.nodeInstanceId)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 2)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.nodeName is not None:
+ oprot.writeFieldBegin('nodeName', TType.STRING, 3)
+ oprot.writeString(self.nodeName)
+ oprot.writeFieldEnd()
+ if self.executionUnit is not None:
+ oprot.writeFieldBegin('executionUnit', TType.I32, 4)
+ oprot.writeI32(self.executionUnit)
+ oprot.writeFieldEnd()
+ if self.executionUnitData is not None:
+ oprot.writeFieldBegin('executionUnitData', TType.STRING, 5)
+ oprot.writeString(self.executionUnitData)
+ oprot.writeFieldEnd()
+ if self.nodeInputs is not None:
+ oprot.writeFieldBegin('nodeInputs', TType.LIST, 6)
+ oprot.writeListBegin(TType.STRUCT, len(self.nodeInputs))
+ for iter80 in self.nodeInputs:
+ iter80.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.nodeOutputs is not None:
+ oprot.writeFieldBegin('nodeOutputs', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.nodeOutputs))
+ for iter81 in self.nodeOutputs:
+ iter81.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.workflowNodeStatus is not None:
+ oprot.writeFieldBegin('workflowNodeStatus', TType.STRUCT, 8)
+ self.workflowNodeStatus.write(oprot)
+ oprot.writeFieldEnd()
+ if self.taskDetailsList is not None:
+ oprot.writeFieldBegin('taskDetailsList', TType.LIST, 9)
+ oprot.writeListBegin(TType.STRUCT, len(self.taskDetailsList))
+ for iter82 in self.taskDetailsList:
+ iter82.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.errors is not None:
+ oprot.writeFieldBegin('errors', TType.LIST, 10)
+ oprot.writeListBegin(TType.STRUCT, len(self.errors))
+ for iter83 in self.errors:
+ iter83.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.nodeInstanceId is None:
+ raise TProtocol.TProtocolException(message='Required field nodeInstanceId is unset!')
+ if self.nodeName is None:
+ raise TProtocol.TProtocolException(message='Required field nodeName is unset!')
+ if self.executionUnit is None:
+ raise TProtocol.TProtocolException(message='Required field executionUnit is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.nodeInstanceId)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.nodeName)
+ value = (value * 31) ^ hash(self.executionUnit)
+ value = (value * 31) ^ hash(self.executionUnitData)
+ value = (value * 31) ^ hash(self.nodeInputs)
+ value = (value * 31) ^ hash(self.nodeOutputs)
+ value = (value * 31) ^ hash(self.workflowNodeStatus)
+ value = (value * 31) ^ hash(self.taskDetailsList)
+ value = (value * 31) ^ hash(self.errors)
<TRUNCATED>
[03/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.py
new file mode 100644
index 0000000..1395950
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.py
@@ -0,0 +1,851 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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 GatewayApprovalStatus:
+ REQUESTED = 0
+ APPROVED = 1
+ ACTIVE = 2
+ DEACTIVATED = 3
+
+ _VALUES_TO_NAMES = {
+ 0: "REQUESTED",
+ 1: "APPROVED",
+ 2: "ACTIVE",
+ 3: "DEACTIVATED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "REQUESTED": 0,
+ "APPROVED": 1,
+ "ACTIVE": 2,
+ "DEACTIVATED": 3,
+ }
+
+class NotificationPriority:
+ LOW = 0
+ NORMAL = 1
+ HIGH = 2
+
+ _VALUES_TO_NAMES = {
+ 0: "LOW",
+ 1: "NORMAL",
+ 2: "HIGH",
+ }
+
+ _NAMES_TO_VALUES = {
+ "LOW": 0,
+ "NORMAL": 1,
+ "HIGH": 2,
+ }
+
+
+class Group:
+ """
+ Attributes:
+ - groupName
+ - description
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'groupName', None, None, ), # 1
+ (2, TType.STRING, 'description', None, None, ), # 2
+ )
+
+ def __init__(self, groupName=None, description=None,):
+ self.groupName = groupName
+ self.description = description
+
+ 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.groupName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.description = 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('Group')
+ if self.groupName is not None:
+ oprot.writeFieldBegin('groupName', TType.STRING, 1)
+ oprot.writeString(self.groupName)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 2)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.groupName is None:
+ raise TProtocol.TProtocolException(message='Required field groupName is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.groupName)
+ value = (value * 31) ^ hash(self.description)
+ 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 Project:
+ """
+ Attributes:
+ - projectID
+ - owner
+ - gatewayId
+ - name
+ - description
+ - creationTime
+ - sharedUsers
+ - sharedGroups
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'projectID', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'owner', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ (4, TType.STRING, 'name', None, None, ), # 4
+ (5, TType.STRING, 'description', None, None, ), # 5
+ (6, TType.I64, 'creationTime', None, None, ), # 6
+ (7, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 7
+ (8, TType.LIST, 'sharedGroups', (TType.STRING,None), None, ), # 8
+ )
+
+ def __init__(self, projectID=thrift_spec[1][4], owner=None, gatewayId=None, name=None, description=None, creationTime=None, sharedUsers=None, sharedGroups=None,):
+ self.projectID = projectID
+ self.owner = owner
+ self.gatewayId = gatewayId
+ self.name = name
+ self.description = description
+ self.creationTime = creationTime
+ self.sharedUsers = sharedUsers
+ self.sharedGroups = sharedGroups
+
+ 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.projectID = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.owner = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.description = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.sharedUsers = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = iprot.readString()
+ self.sharedUsers.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.LIST:
+ self.sharedGroups = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = iprot.readString()
+ self.sharedGroups.append(_elem11)
+ 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('Project')
+ if self.projectID is not None:
+ oprot.writeFieldBegin('projectID', TType.STRING, 1)
+ oprot.writeString(self.projectID)
+ oprot.writeFieldEnd()
+ if self.owner is not None:
+ oprot.writeFieldBegin('owner', TType.STRING, 2)
+ oprot.writeString(self.owner)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 4)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 5)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 6)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.sharedUsers is not None:
+ oprot.writeFieldBegin('sharedUsers', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
+ for iter12 in self.sharedUsers:
+ oprot.writeString(iter12)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.sharedGroups is not None:
+ oprot.writeFieldBegin('sharedGroups', TType.LIST, 8)
+ oprot.writeListBegin(TType.STRING, len(self.sharedGroups))
+ for iter13 in self.sharedGroups:
+ oprot.writeString(iter13)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.projectID is None:
+ raise TProtocol.TProtocolException(message='Required field projectID is unset!')
+ if self.owner is None:
+ raise TProtocol.TProtocolException(message='Required field owner is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.projectID)
+ value = (value * 31) ^ hash(self.owner)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.description)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.sharedUsers)
+ value = (value * 31) ^ hash(self.sharedGroups)
+ 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 User:
+ """
+ Attributes:
+ - airavataInternalUserId
+ - userName
+ - gatewayId
+ - firstName
+ - lastName
+ - email
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'airavataInternalUserId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'userName', None, None, ), # 2
+ (3, TType.STRING, 'gatewayId', None, None, ), # 3
+ (4, TType.STRING, 'firstName', None, None, ), # 4
+ (5, TType.STRING, 'lastName', None, None, ), # 5
+ (6, TType.STRING, 'email', None, None, ), # 6
+ )
+
+ def __init__(self, airavataInternalUserId=thrift_spec[1][4], userName=None, gatewayId=None, firstName=None, lastName=None, email=None,):
+ self.airavataInternalUserId = airavataInternalUserId
+ self.userName = userName
+ self.gatewayId = gatewayId
+ self.firstName = firstName
+ self.lastName = lastName
+ self.email = email
+
+ 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.airavataInternalUserId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.userName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.firstName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.lastName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.email = 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('User')
+ if self.airavataInternalUserId is not None:
+ oprot.writeFieldBegin('airavataInternalUserId', TType.STRING, 1)
+ oprot.writeString(self.airavataInternalUserId)
+ oprot.writeFieldEnd()
+ if self.userName is not None:
+ oprot.writeFieldBegin('userName', TType.STRING, 2)
+ oprot.writeString(self.userName)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.firstName is not None:
+ oprot.writeFieldBegin('firstName', TType.STRING, 4)
+ oprot.writeString(self.firstName)
+ oprot.writeFieldEnd()
+ if self.lastName is not None:
+ oprot.writeFieldBegin('lastName', TType.STRING, 5)
+ oprot.writeString(self.lastName)
+ oprot.writeFieldEnd()
+ if self.email is not None:
+ oprot.writeFieldBegin('email', TType.STRING, 6)
+ oprot.writeString(self.email)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.airavataInternalUserId is None:
+ raise TProtocol.TProtocolException(message='Required field airavataInternalUserId is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.airavataInternalUserId)
+ value = (value * 31) ^ hash(self.userName)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.firstName)
+ value = (value * 31) ^ hash(self.lastName)
+ value = (value * 31) ^ hash(self.email)
+ 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 Gateway:
+ """
+ Attributes:
+ - gatewayId
+ - gatewayApprovalStatus
+ - gatewayName
+ - domain
+ - emailAddress
+ - gatewayAcronym
+ - gatewayURL
+ - gatewayPublicAbstract
+ - reviewProposalDescription
+ - gatewayAdminFirstName
+ - gatewayAdminLastName
+ - gatewayAdminEmail
+ - identityServerUserName
+ - identityServerPasswordToken
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'gatewayId', None, None, ), # 1
+ (2, TType.I32, 'gatewayApprovalStatus', None, None, ), # 2
+ (3, TType.STRING, 'gatewayName', None, None, ), # 3
+ (4, TType.STRING, 'domain', None, None, ), # 4
+ (5, TType.STRING, 'emailAddress', None, None, ), # 5
+ (6, TType.STRING, 'gatewayAcronym', None, None, ), # 6
+ (7, TType.STRING, 'gatewayURL', None, None, ), # 7
+ (8, TType.STRING, 'gatewayPublicAbstract', None, None, ), # 8
+ (9, TType.STRING, 'reviewProposalDescription', None, None, ), # 9
+ (10, TType.STRING, 'gatewayAdminFirstName', None, None, ), # 10
+ (11, TType.STRING, 'gatewayAdminLastName', None, None, ), # 11
+ (12, TType.STRING, 'gatewayAdminEmail', None, None, ), # 12
+ (13, TType.STRING, 'identityServerUserName', None, None, ), # 13
+ (14, TType.STRING, 'identityServerPasswordToken', None, None, ), # 14
+ )
+
+ def __init__(self, gatewayId=None, gatewayApprovalStatus=None, gatewayName=None, domain=None, emailAddress=None, gatewayAcronym=None, gatewayURL=None, gatewayPublicAbstract=None, reviewProposalDescription=None, gatewayAdminFirstName=None, gatewayAdminLastName=None, gatewayAdminEmail=None, identityServerUserName=None, identityServerPasswordToken=None,):
+ self.gatewayId = gatewayId
+ self.gatewayApprovalStatus = gatewayApprovalStatus
+ self.gatewayName = gatewayName
+ self.domain = domain
+ self.emailAddress = emailAddress
+ self.gatewayAcronym = gatewayAcronym
+ self.gatewayURL = gatewayURL
+ self.gatewayPublicAbstract = gatewayPublicAbstract
+ self.reviewProposalDescription = reviewProposalDescription
+ self.gatewayAdminFirstName = gatewayAdminFirstName
+ self.gatewayAdminLastName = gatewayAdminLastName
+ self.gatewayAdminEmail = gatewayAdminEmail
+ self.identityServerUserName = identityServerUserName
+ self.identityServerPasswordToken = identityServerPasswordToken
+
+ 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.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.gatewayApprovalStatus = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.gatewayName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.domain = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.emailAddress = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.gatewayAcronym = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.gatewayURL = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.STRING:
+ self.gatewayPublicAbstract = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.STRING:
+ self.reviewProposalDescription = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 10:
+ if ftype == TType.STRING:
+ self.gatewayAdminFirstName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRING:
+ self.gatewayAdminLastName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.STRING:
+ self.gatewayAdminEmail = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.STRING:
+ self.identityServerUserName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.STRING:
+ self.identityServerPasswordToken = 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('Gateway')
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 1)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.gatewayApprovalStatus is not None:
+ oprot.writeFieldBegin('gatewayApprovalStatus', TType.I32, 2)
+ oprot.writeI32(self.gatewayApprovalStatus)
+ oprot.writeFieldEnd()
+ if self.gatewayName is not None:
+ oprot.writeFieldBegin('gatewayName', TType.STRING, 3)
+ oprot.writeString(self.gatewayName)
+ oprot.writeFieldEnd()
+ if self.domain is not None:
+ oprot.writeFieldBegin('domain', TType.STRING, 4)
+ oprot.writeString(self.domain)
+ oprot.writeFieldEnd()
+ if self.emailAddress is not None:
+ oprot.writeFieldBegin('emailAddress', TType.STRING, 5)
+ oprot.writeString(self.emailAddress)
+ oprot.writeFieldEnd()
+ if self.gatewayAcronym is not None:
+ oprot.writeFieldBegin('gatewayAcronym', TType.STRING, 6)
+ oprot.writeString(self.gatewayAcronym)
+ oprot.writeFieldEnd()
+ if self.gatewayURL is not None:
+ oprot.writeFieldBegin('gatewayURL', TType.STRING, 7)
+ oprot.writeString(self.gatewayURL)
+ oprot.writeFieldEnd()
+ if self.gatewayPublicAbstract is not None:
+ oprot.writeFieldBegin('gatewayPublicAbstract', TType.STRING, 8)
+ oprot.writeString(self.gatewayPublicAbstract)
+ oprot.writeFieldEnd()
+ if self.reviewProposalDescription is not None:
+ oprot.writeFieldBegin('reviewProposalDescription', TType.STRING, 9)
+ oprot.writeString(self.reviewProposalDescription)
+ oprot.writeFieldEnd()
+ if self.gatewayAdminFirstName is not None:
+ oprot.writeFieldBegin('gatewayAdminFirstName', TType.STRING, 10)
+ oprot.writeString(self.gatewayAdminFirstName)
+ oprot.writeFieldEnd()
+ if self.gatewayAdminLastName is not None:
+ oprot.writeFieldBegin('gatewayAdminLastName', TType.STRING, 11)
+ oprot.writeString(self.gatewayAdminLastName)
+ oprot.writeFieldEnd()
+ if self.gatewayAdminEmail is not None:
+ oprot.writeFieldBegin('gatewayAdminEmail', TType.STRING, 12)
+ oprot.writeString(self.gatewayAdminEmail)
+ oprot.writeFieldEnd()
+ if self.identityServerUserName is not None:
+ oprot.writeFieldBegin('identityServerUserName', TType.STRING, 13)
+ oprot.writeString(self.identityServerUserName)
+ oprot.writeFieldEnd()
+ if self.identityServerPasswordToken is not None:
+ oprot.writeFieldBegin('identityServerPasswordToken', TType.STRING, 14)
+ oprot.writeString(self.identityServerPasswordToken)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.gatewayApprovalStatus is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayApprovalStatus is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.gatewayApprovalStatus)
+ value = (value * 31) ^ hash(self.gatewayName)
+ value = (value * 31) ^ hash(self.domain)
+ value = (value * 31) ^ hash(self.emailAddress)
+ value = (value * 31) ^ hash(self.gatewayAcronym)
+ value = (value * 31) ^ hash(self.gatewayURL)
+ value = (value * 31) ^ hash(self.gatewayPublicAbstract)
+ value = (value * 31) ^ hash(self.reviewProposalDescription)
+ value = (value * 31) ^ hash(self.gatewayAdminFirstName)
+ value = (value * 31) ^ hash(self.gatewayAdminLastName)
+ value = (value * 31) ^ hash(self.gatewayAdminEmail)
+ value = (value * 31) ^ hash(self.identityServerUserName)
+ value = (value * 31) ^ hash(self.identityServerPasswordToken)
+ 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 Notification:
+ """
+ Attributes:
+ - notificationId
+ - gatewayId
+ - title
+ - notificationMessage
+ - creationTime
+ - publishedTime
+ - expirationTime
+ - priority
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'notificationId', None, None, ), # 1
+ (2, TType.STRING, 'gatewayId', None, None, ), # 2
+ (3, TType.STRING, 'title', None, None, ), # 3
+ (4, TType.STRING, 'notificationMessage', None, None, ), # 4
+ (5, TType.I64, 'creationTime', None, None, ), # 5
+ (6, TType.I64, 'publishedTime', None, None, ), # 6
+ (7, TType.I64, 'expirationTime', None, None, ), # 7
+ (8, TType.I32, 'priority', None, None, ), # 8
+ )
+
+ def __init__(self, notificationId=None, gatewayId=None, title=None, notificationMessage=None, creationTime=None, publishedTime=None, expirationTime=None, priority=None,):
+ self.notificationId = notificationId
+ self.gatewayId = gatewayId
+ self.title = title
+ self.notificationMessage = notificationMessage
+ self.creationTime = creationTime
+ self.publishedTime = publishedTime
+ self.expirationTime = expirationTime
+ self.priority = priority
+
+ 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.notificationId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.title = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.notificationMessage = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.I64:
+ self.creationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.I64:
+ self.publishedTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.I64:
+ self.expirationTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.I32:
+ self.priority = 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('Notification')
+ if self.notificationId is not None:
+ oprot.writeFieldBegin('notificationId', TType.STRING, 1)
+ oprot.writeString(self.notificationId)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.title is not None:
+ oprot.writeFieldBegin('title', TType.STRING, 3)
+ oprot.writeString(self.title)
+ oprot.writeFieldEnd()
+ if self.notificationMessage is not None:
+ oprot.writeFieldBegin('notificationMessage', TType.STRING, 4)
+ oprot.writeString(self.notificationMessage)
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 5)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ if self.publishedTime is not None:
+ oprot.writeFieldBegin('publishedTime', TType.I64, 6)
+ oprot.writeI64(self.publishedTime)
+ oprot.writeFieldEnd()
+ if self.expirationTime is not None:
+ oprot.writeFieldBegin('expirationTime', TType.I64, 7)
+ oprot.writeI64(self.expirationTime)
+ oprot.writeFieldEnd()
+ if self.priority is not None:
+ oprot.writeFieldBegin('priority', TType.I32, 8)
+ oprot.writeI32(self.priority)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.title is None:
+ raise TProtocol.TProtocolException(message='Required field title is unset!')
+ if self.notificationMessage is None:
+ raise TProtocol.TProtocolException(message='Required field notificationMessage is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.notificationId)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.title)
+ value = (value * 31) ^ hash(self.notificationMessage)
+ value = (value * 31) ^ hash(self.creationTime)
+ value = (value * 31) ^ hash(self.publishedTime)
+ value = (value * 31) ^ hash(self.expirationTime)
+ value = (value * 31) ^ hash(self.priority)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc
new file mode 100644
index 0000000..c9050e3
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/create-experiment.ipynb
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/create-experiment.ipynb b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/create-experiment.ipynb
new file mode 100644
index 0000000..3523a80
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/create-experiment.ipynb
@@ -0,0 +1,449 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "import sys\n",
+ "import random\n",
+ "\n",
+ "from thrift.protocol import TBinaryProtocol\n",
+ "from thrift.transport import TSocket, TTransport, TSSLSocket\n",
+ "\n",
+ "from apache.airavata.api import Airavata\n",
+ "from apache.airavata.model.experiment.ttypes import ExperimentModel\n",
+ "from apache.airavata.model.scheduling.ttypes import ComputationalResourceSchedulingModel\n",
+ "from apache.airavata.model.experiment.ttypes import UserConfigurationDataModel\n",
+ "from apache.airavata.model.status.ttypes import ExperimentState\n",
+ "from apache.airavata.model.security.ttypes import AuthzToken\n",
+ "from apache.airavata.model.application.io.ttypes import InputDataObjectType, OutputDataObjectType\n",
+ "\n",
+ "from oauthlib.oauth2 import LegacyApplicationClient\n",
+ "from requests_oauthlib import OAuth2Session\n",
+ "from oauthlib.oauth2 import BackendApplicationClient"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Getting OAuth Access Code from IDP"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "client_id = r'XXXXXXXXXXX'\n",
+ "client_secret = r'XXXXXXXXXXXX'\n",
+ "\n",
+ "client = BackendApplicationClient(client_id=client_id)\n",
+ "oauth = OAuth2Session(client=client)\n",
+ "token = oauth.fetch_token(token_url='https://idp.scigap.org:9443/oauth2/token', client_id=client_id, client_secret=client_secret)\n",
+ "authzToken = AuthzToken(token[\"access_token\"])\n",
+ "\n",
+ "claimsMap = {\"userName\":\"admin\",\"gatewayID\": \"seagrid\"}\n",
+ "authzToken.claimsMap = claimsMap\n",
+ "\n",
+ "userName = \"admin\"\n",
+ "gatewayId = \"seagrid\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Creating Airavata Client"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'0.16.0'"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "transport = TSSLSocket.TSSLSocket(\"gw56.iu.xsede.org\",9930, validate=False)\n",
+ "transport = TTransport.TBufferedTransport(transport)\n",
+ "protocol = TBinaryProtocol.TBinaryProtocol(transport)\n",
+ "airavataClient = Airavata.Client(protocol)\n",
+ "transport.open()\n",
+ "\n",
+ "#Testing the Airavata Client\n",
+ "airavataClient.getAPIVersion(authzToken)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## List User Projects"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "TestProject487543_b6ba13ff-4af5-4cf1-a5d4-9a7908cd338e\n",
+ "TestProject0398576_bb39d722-e136-41d2-89fd-a2e60e15c841\n",
+ "TestProject984752_9d011ce9-24ea-41a7-a40c-0192cbdb475f\n",
+ "TestProject81724_f4dde490-2e23-4308-b2c7-0cc2454520f0\n",
+ "TestProj5_e8b872d9-17ed-4f13-9007-40cd71df6450\n",
+ "TestProj4_ca7b95df-dd56-41b5-b112-d58b2748fc46\n",
+ "TestProj3_3ff3b1fc-70e0-4cfc-8581-b915209786a5\n",
+ "TheTestProj_397ccd77-0cb3-4c86-ba74-fb1954548085\n",
+ "TestProj_733ada60-2e88-4f52-a4f4-789c2795fc3e\n",
+ "testeroonius_61d70e07-78fc-4b82-a26b-24d37b2bd294\n",
+ "testeroonius_0e20b332-c694-4b90-9443-8403d46a1fcc\n",
+ "testeroonius_21e5f9aa-9fef-406d-9ff2-315ed7312efe\n",
+ "testeroonius_b31b789e-c61a-4eeb-828d-35edc2fcaa4b\n",
+ "testerooni_4a655ef7-b04b-4f6f-8481-216ebdb8437b\n",
+ "DefaultProject_9f56c72c-51ef-461e-bad8-6595af42b8de\n"
+ ]
+ }
+ ],
+ "source": [
+ "projects = airavataClient.getUserProjects(authzToken, gatewayId, userName, -1, 0)\n",
+ "for p in projects:\n",
+ " print(p.projectID)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "selectedProjId = \"TestProj3_3ff3b1fc-70e0-4cfc-8581-b915209786a5\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## List of Applications Available in the Gateway"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Echo_3f480d1f-ea86-4018-94bb-015423d66a1c\n",
+ "Amber_Sander_27b68571-b9c0-4bd5-bd70-e29435fa81bd\n",
+ "Gaussian_377feede-4d67-4065-984f-284d05c7d32d\n",
+ "Gromacs_c56857f1-c5d5-491b-b5ac-3f8165fdfc7a\n",
+ "Abinit_69939a97-17b8-472c-bdf3-81a41de57b74\n",
+ "AutoDock_6140eb97-af55-458d-a610-0e6cfee82487\n",
+ "CP2K_e9f82e52-dd78-4733-81ef-e163443efae5\n",
+ "CPMD_2038f63a-42a2-45df-b5fb-8916c1df8fc8\n",
+ "DDSCat_7911e731-2a8f-47fa-9ec2-e97f94ddbe7a\n",
+ "DFTB+_3b6232a4-3584-42bd-a0fb-452e56fc1c97\n",
+ "Gamess_9014bed7-f6a9-4bf6-8903-3531fce6adfe\n",
+ "Gamess_BR2_4a9a65dd-d9ea-45ff-a752-44614cf78dce\n",
+ "Gamess_Stampede_b8e90ce5-81ab-42ab-be57-304f2cdeb69e\n",
+ "Gromacs_CrayMPI_579f6463-10bb-4f06-9b6c-2e43589aaed3\n",
+ "Lammps_09de4f61-45b8-4c24-90c6-ebe718958728\n",
+ "Lammps_BR2_090f5f20-bb8e-4b96-a0fa-85cea7aec2f1\n",
+ "Molcas_89d5feb0-b1f1-437a-baef-9f353debd145\n",
+ "NWChem_e21df4ce-0c8e-422b-9e79-e0e7d56fad1f\n",
+ "Qchem_5e2f490a-25da-4631-a96d-d6f428e77ad5\n",
+ "Quantum_Espresso_fa1c5f04-bc52-4e91-8fd7-dbd1bcb1e39b\n",
+ "Tinker_Monte_1afae7f3-7c02-4fc6-8c67-8378c65a88b3\n",
+ "Abaqus_dcf7df79-5564-46db-88c4-837207882fdb\n",
+ "NEK5000_8ca957b3-6037-4535-9e02-005eb7dafd2d\n",
+ "Test-Application-Interface_39f9229d-c3b6-4251-90ec-c76265aafde8\n",
+ "Tes-App-Int_3efc89dc-d03a-4abb-af33-d7f242e9c656\n",
+ "TestAppInt1_2776c902-3200-4363-ab1e-ff99adc643cf\n",
+ "Test1_9c82fb1e-54da-42e8-87ae-6e3e1b1b8951\n",
+ "AutoDock_Vina_dcb6a898-fef3-4bed-b2d3-9aad45b42131\n",
+ "TestAppInt2_458c30d2-5f29-45b9-acd8-953315c6a730\n",
+ "Phasta_P_61030007-7243-4c6c-b13c-e7287670a847\n",
+ "Vina_Multiple_85771219-f188-48da-8dfe-422eea72c1ff\n",
+ "Vina_Optional_Ligands_a32ee927-f205-49a1-9a6f-c03e4a24aefc\n",
+ "Trinity_33a4a5ab-8d69-4477-a72d-0bd0cd7f3926\n"
+ ]
+ }
+ ],
+ "source": [
+ "appInterfaces = airavataClient.getAllApplicationInterfaces(authzToken, gatewayId)\n",
+ "for interface in appInterfaces:\n",
+ " print(interface.applicationInterfaceId)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Listing all Compute Resource with Echo App Enabled"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "selectedInterfaceId = \"Echo_3f480d1f-ea86-4018-94bb-015423d66a1c\"\n",
+ "availableCompRes = airavataClient.getAvailableAppInterfaceComputeResources(authzToken, selectedInterfaceId)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "bigred2.uits.iu.edu_ac140dca-3c88-46d8-b9ed-875d96ea6908 bigred2.uits.iu.edu\n"
+ ]
+ }
+ ],
+ "source": [
+ "for k in availableCompRes:\n",
+ " print(k + \" \" + availableCompRes[k])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "selectedCompResId = \"bigred2.uits.iu.edu_ac140dca-3c88-46d8-b9ed-875d96ea6908\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Creating the Experiment Object"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "experiment = ExperimentModel()\n",
+ "experiment.experimentName = \"Simple Echo Experiment \" + str(random.random())\n",
+ "experiment.projectId = selectedProjId\n",
+ "experiment.gatewayId = gatewayId\n",
+ "experiment.userName = userName\n",
+ "experiment.description = \"Simple Echo Experiment\"\n",
+ "experiment.executionId = selectedInterfaceId"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "echoInterface = airavataClient.getApplicationInterface(authzToken, selectedInterfaceId)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "inputs = echoInterface.applicationInputs\n",
+ "inputs[0].value = \"Hello World\"\n",
+ "\n",
+ "experiment.experimentInputs = inputs\n",
+ "experiment.experimentOutputs = echoInterface.applicationOutputs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "compResource = airavataClient.getComputeResource(authzToken, selectedCompResId)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[BatchQueue(maxJobsInQueue=0, maxNodes=128, maxRunTime=2880, maxMemory=0, queueDescription='The routing queue for all \"production\" jobs; each job is routed, based on its resource requirements, to one of the execution queues (normal, serial, or long)', maxProcessors=4096, queueName='cpu'),\n",
+ " BatchQueue(maxJobsInQueue=0, maxNodes=21824, maxRunTime=0, maxMemory=0, queueDescription='GPU queue', maxProcessors=1364, queueName='gpu')]"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "compResource.batchQueues"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "queueName = \"cpu\"\n",
+ "\n",
+ "computationalRS = ComputationalResourceSchedulingModel()\n",
+ "computationalRS.resourceHostId = selectedCompResId\n",
+ "computationalRS.totalCPUCount = 16\n",
+ "computationalRS.nodeCount = 1\n",
+ "computationalRS.numberOfThreads = 1\n",
+ "computationalRS.queueName = queueName\n",
+ "computationalRS.wallTimeLimit = 10\n",
+ "computationalRS.totalPhysicalMemory = 1\n",
+ "\n",
+ "userConfig = UserConfigurationDataModel()\n",
+ "userConfig.airavataAutoSchedule = True\n",
+ "userConfig.overrideManualScheduledParams = False\n",
+ "userConfig.computationalResourceScheduling = computationalRS\n",
+ "\n",
+ "experiment.userConfigurationData = userConfig"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Create & Launch Experiment"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Experiment Id is SimpleEchoExperiment0.666940363066_ed483ef9-f87f-402d-a25c-881b1d6cc6ac\n"
+ ]
+ }
+ ],
+ "source": [
+ "transport.open()\n",
+ "expId = airavataClient.createExperiment(authzToken, gatewayId, experiment)\n",
+ "print (\"Experiment Id is \" + expId)\n",
+ "airavataClient.launchExperiment(authzToken, expId, gatewayId)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Retreiving Experiment Status"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "LAUNCHED\n"
+ ]
+ }
+ ],
+ "source": [
+ "transport.open()\n",
+ "status = airavataClient.getExperimentStatus(authzToken, expId)\n",
+ "print(ExperimentState._VALUES_TO_NAMES[status.state])"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TSCons.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TSCons.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TSCons.py
new file mode 100644
index 0000000..da8d283
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TSCons.py
@@ -0,0 +1,35 @@
+#
+# 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.
+#
+
+from os import path
+from SCons.Builder import Builder
+
+
+def scons_env(env, add=''):
+ opath = path.dirname(path.abspath('$TARGET'))
+ lstr = 'thrift --gen cpp -o ' + opath + ' ' + add + ' $SOURCE'
+ cppbuild = Builder(action=lstr)
+ env.Append(BUILDERS={'ThriftCpp': cppbuild})
+
+
+def gen_cpp(env, dir, file):
+ scons_env(env)
+ suffixes = ['_types.h', '_types.cpp']
+ targets = map(lambda s: 'gen-cpp/' + file + s, suffixes)
+ return env.ThriftCpp(targets, dir + file + '.thrift')
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TSerialization.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TSerialization.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TSerialization.py
new file mode 100644
index 0000000..54f10e2
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TSerialization.py
@@ -0,0 +1,38 @@
+#
+# 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.
+#
+
+from lib.thrift.protocol import TBinaryProtocol
+from lib.thrift.transport import TTransport
+
+
+def serialize(thrift_object,
+ protocol_factory=TBinaryProtocol.TBinaryProtocolFactory()):
+ transport = TTransport.TMemoryBuffer()
+ protocol = protocol_factory.getProtocol(transport)
+ thrift_object.write(protocol)
+ return transport.getvalue()
+
+
+def deserialize(base,
+ buf,
+ protocol_factory=TBinaryProtocol.TBinaryProtocolFactory()):
+ transport = TTransport.TMemoryBuffer(buf)
+ protocol = protocol_factory.getProtocol(transport)
+ base.read(protocol)
+ return base
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TTornado.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TTornado.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TTornado.py
new file mode 100644
index 0000000..af309c3
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/TTornado.py
@@ -0,0 +1,153 @@
+#
+# 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.
+#
+
+from cStringIO import StringIO
+import logging
+import socket
+import struct
+
+from thrift.transport import TTransport
+from thrift.transport.TTransport import TTransportException
+
+from tornado import gen
+from tornado import iostream
+from tornado import netutil
+
+
+class TTornadoStreamTransport(TTransport.TTransportBase):
+ """a framed, buffered transport over a Tornado stream"""
+ def __init__(self, host, port, stream=None):
+ self.host = host
+ self.port = port
+ self.is_queuing_reads = False
+ self.read_queue = []
+ self.__wbuf = StringIO()
+
+ # servers provide a ready-to-go stream
+ self.stream = stream
+ if self.stream is not None:
+ self._set_close_callback()
+
+ # not the same number of parameters as TTransportBase.open
+ def open(self, callback):
+ logging.debug('socket connecting')
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
+ self.stream = iostream.IOStream(sock)
+
+ def on_close_in_connect(*_):
+ message = 'could not connect to {}:{}'.format(self.host, self.port)
+ raise TTransportException(
+ type=TTransportException.NOT_OPEN,
+ message=message)
+ self.stream.set_close_callback(on_close_in_connect)
+
+ def finish(*_):
+ self._set_close_callback()
+ callback()
+
+ self.stream.connect((self.host, self.port), callback=finish)
+
+ def _set_close_callback(self):
+ def on_close():
+ raise TTransportException(
+ type=TTransportException.END_OF_FILE,
+ message='socket closed')
+ self.stream.set_close_callback(self.close)
+
+ def close(self):
+ # don't raise if we intend to close
+ self.stream.set_close_callback(None)
+ self.stream.close()
+
+ def read(self, _):
+ # The generated code for Tornado shouldn't do individual reads -- only
+ # frames at a time
+ assert "you're doing it wrong" is True
+
+ @gen.engine
+ def readFrame(self, callback):
+ self.read_queue.append(callback)
+ logging.debug('read queue: %s', self.read_queue)
+
+ if self.is_queuing_reads:
+ # If a read is already in flight, then the while loop below should
+ # pull it from self.read_queue
+ return
+
+ self.is_queuing_reads = True
+ while self.read_queue:
+ next_callback = self.read_queue.pop()
+ result = yield gen.Task(self._readFrameFromStream)
+ next_callback(result)
+ self.is_queuing_reads = False
+
+ @gen.engine
+ def _readFrameFromStream(self, callback):
+ logging.debug('_readFrameFromStream')
+ frame_header = yield gen.Task(self.stream.read_bytes, 4)
+ frame_length, = struct.unpack('!i', frame_header)
+ logging.debug('received frame header, frame length = %i', frame_length)
+ frame = yield gen.Task(self.stream.read_bytes, frame_length)
+ logging.debug('received frame payload')
+ callback(frame)
+
+ def write(self, buf):
+ self.__wbuf.write(buf)
+
+ def flush(self, callback=None):
+ wout = self.__wbuf.getvalue()
+ wsz = len(wout)
+ # reset wbuf before write/flush to preserve state on underlying failure
+ self.__wbuf = StringIO()
+ # N.B.: Doing this string concatenation is WAY cheaper than making
+ # two separate calls to the underlying socket object. Socket writes in
+ # Python turn out to be REALLY expensive, but it seems to do a pretty
+ # good job of managing string buffer operations without excessive copies
+ buf = struct.pack("!i", wsz) + wout
+
+ logging.debug('writing frame length = %i', wsz)
+ self.stream.write(buf, callback)
+
+
+class TTornadoServer(netutil.TCPServer):
+ def __init__(self, processor, iprot_factory, oprot_factory=None,
+ *args, **kwargs):
+ super(TTornadoServer, self).__init__(*args, **kwargs)
+
+ self._processor = processor
+ self._iprot_factory = iprot_factory
+ self._oprot_factory = (oprot_factory if oprot_factory is not None
+ else iprot_factory)
+
+ def handle_stream(self, stream, address):
+ try:
+ host, port = address
+ trans = TTornadoStreamTransport(host=host, port=port, stream=stream)
+ oprot = self._oprot_factory.getProtocol(trans)
+
+ def next_pass():
+ if not trans.stream.closed():
+ self._processor.process(trans, self._iprot_factory, oprot,
+ callback=next_pass)
+
+ next_pass()
+
+ except Exception:
+ logging.exception('thrift exception in handle_stream')
+ trans.close()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.py
new file mode 100644
index 0000000..9890af7
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.py
@@ -0,0 +1,170 @@
+#
+# 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.
+#
+
+import sys
+
+
+class TType:
+ STOP = 0
+ VOID = 1
+ BOOL = 2
+ BYTE = 3
+ I08 = 3
+ DOUBLE = 4
+ I16 = 6
+ I32 = 8
+ I64 = 10
+ STRING = 11
+ UTF7 = 11
+ STRUCT = 12
+ MAP = 13
+ SET = 14
+ LIST = 15
+ UTF8 = 16
+ UTF16 = 17
+
+ _VALUES_TO_NAMES = ('STOP',
+ 'VOID',
+ 'BOOL',
+ 'BYTE',
+ 'DOUBLE',
+ None,
+ 'I16',
+ None,
+ 'I32',
+ None,
+ 'I64',
+ 'STRING',
+ 'STRUCT',
+ 'MAP',
+ 'SET',
+ 'LIST',
+ 'UTF8',
+ 'UTF16')
+
+
+class TMessageType:
+ CALL = 1
+ REPLY = 2
+ EXCEPTION = 3
+ ONEWAY = 4
+
+
+class TProcessor:
+ """Base class for procsessor, which works on two streams."""
+
+ def process(iprot, oprot):
+ pass
+
+
+class TException(Exception):
+ """Base class for all thrift exceptions."""
+
+ # BaseException.message is deprecated in Python v[2.6,3.0)
+ if (2, 6, 0) <= sys.version_info < (3, 0):
+ def _get_message(self):
+ return self._message
+
+ def _set_message(self, message):
+ self._message = message
+ message = property(_get_message, _set_message)
+
+ def __init__(self, message=None):
+ Exception.__init__(self, message)
+ self.message = message
+
+
+class TApplicationException(TException):
+ """Application level thrift exceptions."""
+
+ UNKNOWN = 0
+ UNKNOWN_METHOD = 1
+ INVALID_MESSAGE_TYPE = 2
+ WRONG_METHOD_NAME = 3
+ BAD_SEQUENCE_ID = 4
+ MISSING_RESULT = 5
+ INTERNAL_ERROR = 6
+ PROTOCOL_ERROR = 7
+ INVALID_TRANSFORM = 8
+ INVALID_PROTOCOL = 9
+ UNSUPPORTED_CLIENT_TYPE = 10
+
+ def __init__(self, type=UNKNOWN, message=None):
+ TException.__init__(self, message)
+ self.type = type
+
+ def __str__(self):
+ if self.message:
+ return self.message
+ elif self.type == self.UNKNOWN_METHOD:
+ return 'Unknown method'
+ elif self.type == self.INVALID_MESSAGE_TYPE:
+ return 'Invalid message type'
+ elif self.type == self.WRONG_METHOD_NAME:
+ return 'Wrong method name'
+ elif self.type == self.BAD_SEQUENCE_ID:
+ return 'Bad sequence ID'
+ elif self.type == self.MISSING_RESULT:
+ return 'Missing result'
+ elif self.type == self.INTERNAL_ERROR:
+ return 'Internal error'
+ elif self.type == self.PROTOCOL_ERROR:
+ return 'Protocol error'
+ elif self.type == self.INVALID_TRANSFORM:
+ return 'Invalid transform'
+ elif self.type == self.INVALID_PROTOCOL:
+ return 'Invalid protocol'
+ elif self.type == self.UNSUPPORTED_CLIENT_TYPE:
+ return 'Unsupported client type'
+ else:
+ return 'Default (unknown) TApplicationException'
+
+ def read(self, iprot):
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRING:
+ self.message = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I32:
+ self.type = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ oprot.writeStructBegin('TApplicationException')
+ if self.message is not None:
+ oprot.writeFieldBegin('message', TType.STRING, 1)
+ oprot.writeString(self.message)
+ oprot.writeFieldEnd()
+ if self.type is not None:
+ oprot.writeFieldBegin('type', TType.I32, 2)
+ oprot.writeI32(self.type)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc
new file mode 100644
index 0000000..829e502
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/Thrift.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.py
new file mode 100644
index 0000000..48d659c
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.py
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+__all__ = ['Thrift', 'TSCons']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc
new file mode 100644
index 0000000..f8f5649
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBase.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBase.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBase.py
new file mode 100644
index 0000000..6cbd5f3
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBase.py
@@ -0,0 +1,81 @@
+#
+# 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.
+#
+
+from thrift.Thrift import *
+from thrift.protocol import TBinaryProtocol
+from thrift.transport import TTransport
+
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class TBase(object):
+ __slots__ = []
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, getattr(self, key))
+ for key in self.__slots__]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ if not isinstance(other, self.__class__):
+ return False
+ for attr in self.__slots__:
+ my_val = getattr(self, attr)
+ other_val = getattr(other, attr)
+ if my_val != other_val:
+ return False
+ return True
+
+ def __ne__(self, other):
+ return not (self == other)
+
+ 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.readStruct(self, self.thrift_spec)
+
+ 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.writeStruct(self, self.thrift_spec)
+
+
+class TExceptionBase(Exception):
+ # old style class so python2.4 can raise exceptions derived from this
+ # This can't inherit from TBase because of that limitation.
+ __slots__ = []
+
+ __repr__ = TBase.__repr__.im_func
+ __eq__ = TBase.__eq__.im_func
+ __ne__ = TBase.__ne__.im_func
+ read = TBase.read.im_func
+ write = TBase.write.im_func
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.py
new file mode 100644
index 0000000..17a600f
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.py
@@ -0,0 +1,261 @@
+#
+# 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.
+#
+
+from struct import pack, unpack
+
+from thrift.protocol.TProtocol import *
+
+
+class TBinaryProtocol(TProtocolBase):
+ """Binary implementation of the Thrift protocol driver."""
+
+ # NastyHaxx. Python 2.4+ on 32-bit machines forces hex constants to be
+ # positive, converting this into a long. If we hardcode the int value
+ # instead it'll stay in 32 bit-land.
+
+ # VERSION_MASK = 0xffff0000
+ VERSION_MASK = -65536
+
+ # VERSION_1 = 0x80010000
+ VERSION_1 = -2147418112
+
+ TYPE_MASK = 0x000000ff
+
+ def __init__(self, trans, strictRead=False, strictWrite=True):
+ TProtocolBase.__init__(self, trans)
+ self.strictRead = strictRead
+ self.strictWrite = strictWrite
+
+ def writeMessageBegin(self, name, type, seqid):
+ if self.strictWrite:
+ self.writeI32(TBinaryProtocol.VERSION_1 | type)
+ self.writeString(name)
+ self.writeI32(seqid)
+ else:
+ self.writeString(name)
+ self.writeByte(type)
+ self.writeI32(seqid)
+
+ def writeMessageEnd(self):
+ pass
+
+ def writeStructBegin(self, name):
+ pass
+
+ def writeStructEnd(self):
+ pass
+
+ def writeFieldBegin(self, name, type, id):
+ self.writeByte(type)
+ self.writeI16(id)
+
+ def writeFieldEnd(self):
+ pass
+
+ def writeFieldStop(self):
+ self.writeByte(TType.STOP)
+
+ def writeMapBegin(self, ktype, vtype, size):
+ self.writeByte(ktype)
+ self.writeByte(vtype)
+ self.writeI32(size)
+
+ def writeMapEnd(self):
+ pass
+
+ def writeListBegin(self, etype, size):
+ self.writeByte(etype)
+ self.writeI32(size)
+
+ def writeListEnd(self):
+ pass
+
+ def writeSetBegin(self, etype, size):
+ self.writeByte(etype)
+ self.writeI32(size)
+
+ def writeSetEnd(self):
+ pass
+
+ def writeBool(self, bool):
+ if bool:
+ self.writeByte(1)
+ else:
+ self.writeByte(0)
+
+ def writeByte(self, byte):
+ buff = pack("!b", byte)
+ self.trans.write(buff)
+
+ def writeI16(self, i16):
+ buff = pack("!h", i16)
+ self.trans.write(buff)
+
+ def writeI32(self, i32):
+ buff = pack("!i", i32)
+ self.trans.write(buff)
+
+ def writeI64(self, i64):
+ buff = pack("!q", i64)
+ self.trans.write(buff)
+
+ def writeDouble(self, dub):
+ buff = pack("!d", dub)
+ self.trans.write(buff)
+
+ def writeString(self, str):
+ self.writeI32(len(str))
+ self.trans.write(str)
+
+ def readMessageBegin(self):
+ sz = self.readI32()
+ if sz < 0:
+ version = sz & TBinaryProtocol.VERSION_MASK
+ if version != TBinaryProtocol.VERSION_1:
+ raise TProtocolException(
+ type=TProtocolException.BAD_VERSION,
+ message='Bad version in readMessageBegin: %d' % (sz))
+ type = sz & TBinaryProtocol.TYPE_MASK
+ name = self.readString()
+ seqid = self.readI32()
+ else:
+ if self.strictRead:
+ raise TProtocolException(type=TProtocolException.BAD_VERSION,
+ message='No protocol version header')
+ name = self.trans.readAll(sz)
+ type = self.readByte()
+ seqid = self.readI32()
+ return (name, type, seqid)
+
+ def readMessageEnd(self):
+ pass
+
+ def readStructBegin(self):
+ pass
+
+ def readStructEnd(self):
+ pass
+
+ def readFieldBegin(self):
+ type = self.readByte()
+ if type == TType.STOP:
+ return (None, type, 0)
+ id = self.readI16()
+ return (None, type, id)
+
+ def readFieldEnd(self):
+ pass
+
+ def readMapBegin(self):
+ ktype = self.readByte()
+ vtype = self.readByte()
+ size = self.readI32()
+ return (ktype, vtype, size)
+
+ def readMapEnd(self):
+ pass
+
+ def readListBegin(self):
+ etype = self.readByte()
+ size = self.readI32()
+ return (etype, size)
+
+ def readListEnd(self):
+ pass
+
+ def readSetBegin(self):
+ etype = self.readByte()
+ size = self.readI32()
+ return (etype, size)
+
+ def readSetEnd(self):
+ pass
+
+ def readBool(self):
+ byte = self.readByte()
+ if byte == 0:
+ return False
+ return True
+
+ def readByte(self):
+ buff = self.trans.readAll(1)
+ val, = unpack('!b', buff)
+ return val
+
+ def readI16(self):
+ buff = self.trans.readAll(2)
+ val, = unpack('!h', buff)
+ return val
+
+ def readI32(self):
+ buff = self.trans.readAll(4)
+ val, = unpack('!i', buff)
+ return val
+
+ def readI64(self):
+ buff = self.trans.readAll(8)
+ val, = unpack('!q', buff)
+ return val
+
+ def readDouble(self):
+ buff = self.trans.readAll(8)
+ val, = unpack('!d', buff)
+ return val
+
+ def readString(self):
+ len = self.readI32()
+ str = self.trans.readAll(len)
+ return str
+
+
+class TBinaryProtocolFactory:
+ def __init__(self, strictRead=False, strictWrite=True):
+ self.strictRead = strictRead
+ self.strictWrite = strictWrite
+
+ def getProtocol(self, trans):
+ prot = TBinaryProtocol(trans, self.strictRead, self.strictWrite)
+ return prot
+
+
+class TBinaryProtocolAccelerated(TBinaryProtocol):
+ """C-Accelerated version of TBinaryProtocol.
+
+ This class does not override any of TBinaryProtocol's methods,
+ but the generated code recognizes it directly and will call into
+ our C module to do the encoding, bypassing this object entirely.
+ We inherit from TBinaryProtocol so that the normal TBinaryProtocol
+ encoding can happen if the fastbinary module doesn't work for some
+ reason. (TODO(dreiss): Make this happen sanely in more cases.)
+
+ In order to take advantage of the C module, just use
+ TBinaryProtocolAccelerated instead of TBinaryProtocol.
+
+ NOTE: This code was contributed by an external developer.
+ The internal Thrift team has reviewed and tested it,
+ but we cannot guarantee that it is production-ready.
+ Please feel free to report bugs and/or success stories
+ to the public mailing list.
+ """
+ pass
+
+
+class TBinaryProtocolAcceleratedFactory:
+ def getProtocol(self, trans):
+ return TBinaryProtocolAccelerated(trans)
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc
new file mode 100644
index 0000000..85a6486
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TBinaryProtocol.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TCompactProtocol.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TCompactProtocol.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TCompactProtocol.py
new file mode 100644
index 0000000..fcf8e62
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/thrift/protocol/TCompactProtocol.py
@@ -0,0 +1,405 @@
+#
+# 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.
+#
+
+from struct import pack, unpack
+
+from thrift.protocol.TProtocol import *
+
+
+__all__ = ['TCompactProtocol', 'TCompactProtocolFactory']
+
+CLEAR = 0
+FIELD_WRITE = 1
+VALUE_WRITE = 2
+CONTAINER_WRITE = 3
+BOOL_WRITE = 4
+FIELD_READ = 5
+CONTAINER_READ = 6
+VALUE_READ = 7
+BOOL_READ = 8
+
+
+def make_helper(v_from, container):
+ def helper(func):
+ def nested(self, *args, **kwargs):
+ assert self.state in (v_from, container), (self.state, v_from, container)
+ return func(self, *args, **kwargs)
+ return nested
+ return helper
+writer = make_helper(VALUE_WRITE, CONTAINER_WRITE)
+reader = make_helper(VALUE_READ, CONTAINER_READ)
+
+
+def makeZigZag(n, bits):
+ return (n << 1) ^ (n >> (bits - 1))
+
+
+def fromZigZag(n):
+ return (n >> 1) ^ -(n & 1)
+
+
+def writeVarint(trans, n):
+ out = []
+ while True:
+ if n & ~0x7f == 0:
+ out.append(n)
+ break
+ else:
+ out.append((n & 0xff) | 0x80)
+ n = n >> 7
+ trans.write(''.join(map(chr, out)))
+
+
+def readVarint(trans):
+ result = 0
+ shift = 0
+ while True:
+ x = trans.readAll(1)
+ byte = ord(x)
+ result |= (byte & 0x7f) << shift
+ if byte >> 7 == 0:
+ return result
+ shift += 7
+
+
+class CompactType:
+ STOP = 0x00
+ TRUE = 0x01
+ FALSE = 0x02
+ BYTE = 0x03
+ I16 = 0x04
+ I32 = 0x05
+ I64 = 0x06
+ DOUBLE = 0x07
+ BINARY = 0x08
+ LIST = 0x09
+ SET = 0x0A
+ MAP = 0x0B
+ STRUCT = 0x0C
+
+CTYPES = {TType.STOP: CompactType.STOP,
+ TType.BOOL: CompactType.TRUE, # used for collection
+ TType.BYTE: CompactType.BYTE,
+ TType.I16: CompactType.I16,
+ TType.I32: CompactType.I32,
+ TType.I64: CompactType.I64,
+ TType.DOUBLE: CompactType.DOUBLE,
+ TType.STRING: CompactType.BINARY,
+ TType.STRUCT: CompactType.STRUCT,
+ TType.LIST: CompactType.LIST,
+ TType.SET: CompactType.SET,
+ TType.MAP: CompactType.MAP
+ }
+
+TTYPES = {}
+for k, v in CTYPES.items():
+ TTYPES[v] = k
+TTYPES[CompactType.FALSE] = TType.BOOL
+del k
+del v
+
+
+class TCompactProtocol(TProtocolBase):
+ """Compact implementation of the Thrift protocol driver."""
+
+ PROTOCOL_ID = 0x82
+ VERSION = 1
+ VERSION_MASK = 0x1f
+ TYPE_MASK = 0xe0
+ TYPE_SHIFT_AMOUNT = 5
+
+ def __init__(self, trans):
+ TProtocolBase.__init__(self, trans)
+ self.state = CLEAR
+ self.__last_fid = 0
+ self.__bool_fid = None
+ self.__bool_value = None
+ self.__structs = []
+ self.__containers = []
+
+ def __writeVarint(self, n):
+ writeVarint(self.trans, n)
+
+ def writeMessageBegin(self, name, type, seqid):
+ assert self.state == CLEAR
+ self.__writeUByte(self.PROTOCOL_ID)
+ self.__writeUByte(self.VERSION | (type << self.TYPE_SHIFT_AMOUNT))
+ self.__writeVarint(seqid)
+ self.__writeString(name)
+ self.state = VALUE_WRITE
+
+ def writeMessageEnd(self):
+ assert self.state == VALUE_WRITE
+ self.state = CLEAR
+
+ def writeStructBegin(self, name):
+ assert self.state in (CLEAR, CONTAINER_WRITE, VALUE_WRITE), self.state
+ self.__structs.append((self.state, self.__last_fid))
+ self.state = FIELD_WRITE
+ self.__last_fid = 0
+
+ def writeStructEnd(self):
+ assert self.state == FIELD_WRITE
+ self.state, self.__last_fid = self.__structs.pop()
+
+ def writeFieldStop(self):
+ self.__writeByte(0)
+
+ def __writeFieldHeader(self, type, fid):
+ delta = fid - self.__last_fid
+ if 0 < delta <= 15:
+ self.__writeUByte(delta << 4 | type)
+ else:
+ self.__writeByte(type)
+ self.__writeI16(fid)
+ self.__last_fid = fid
+
+ def writeFieldBegin(self, name, type, fid):
+ assert self.state == FIELD_WRITE, self.state
+ if type == TType.BOOL:
+ self.state = BOOL_WRITE
+ self.__bool_fid = fid
+ else:
+ self.state = VALUE_WRITE
+ self.__writeFieldHeader(CTYPES[type], fid)
+
+ def writeFieldEnd(self):
+ assert self.state in (VALUE_WRITE, BOOL_WRITE), self.state
+ self.state = FIELD_WRITE
+
+ def __writeUByte(self, byte):
+ self.trans.write(pack('!B', byte))
+
+ def __writeByte(self, byte):
+ self.trans.write(pack('!b', byte))
+
+ def __writeI16(self, i16):
+ self.__writeVarint(makeZigZag(i16, 16))
+
+ def __writeSize(self, i32):
+ self.__writeVarint(i32)
+
+ def writeCollectionBegin(self, etype, size):
+ assert self.state in (VALUE_WRITE, CONTAINER_WRITE), self.state
+ if size <= 14:
+ self.__writeUByte(size << 4 | CTYPES[etype])
+ else:
+ self.__writeUByte(0xf0 | CTYPES[etype])
+ self.__writeSize(size)
+ self.__containers.append(self.state)
+ self.state = CONTAINER_WRITE
+ writeSetBegin = writeCollectionBegin
+ writeListBegin = writeCollectionBegin
+
+ def writeMapBegin(self, ktype, vtype, size):
+ assert self.state in (VALUE_WRITE, CONTAINER_WRITE), self.state
+ if size == 0:
+ self.__writeByte(0)
+ else:
+ self.__writeSize(size)
+ self.__writeUByte(CTYPES[ktype] << 4 | CTYPES[vtype])
+ self.__containers.append(self.state)
+ self.state = CONTAINER_WRITE
+
+ def writeCollectionEnd(self):
+ assert self.state == CONTAINER_WRITE, self.state
+ self.state = self.__containers.pop()
+ writeMapEnd = writeCollectionEnd
+ writeSetEnd = writeCollectionEnd
+ writeListEnd = writeCollectionEnd
+
+ def writeBool(self, bool):
+ if self.state == BOOL_WRITE:
+ if bool:
+ ctype = CompactType.TRUE
+ else:
+ ctype = CompactType.FALSE
+ self.__writeFieldHeader(ctype, self.__bool_fid)
+ elif self.state == CONTAINER_WRITE:
+ if bool:
+ self.__writeByte(CompactType.TRUE)
+ else:
+ self.__writeByte(CompactType.FALSE)
+ else:
+ raise AssertionError("Invalid state in compact protocol")
+
+ writeByte = writer(__writeByte)
+ writeI16 = writer(__writeI16)
+
+ @writer
+ def writeI32(self, i32):
+ self.__writeVarint(makeZigZag(i32, 32))
+
+ @writer
+ def writeI64(self, i64):
+ self.__writeVarint(makeZigZag(i64, 64))
+
+ @writer
+ def writeDouble(self, dub):
+ self.trans.write(pack('!d', dub))
+
+ def __writeString(self, s):
+ self.__writeSize(len(s))
+ self.trans.write(s)
+ writeString = writer(__writeString)
+
+ def readFieldBegin(self):
+ assert self.state == FIELD_READ, self.state
+ type = self.__readUByte()
+ if type & 0x0f == TType.STOP:
+ return (None, 0, 0)
+ delta = type >> 4
+ if delta == 0:
+ fid = self.__readI16()
+ else:
+ fid = self.__last_fid + delta
+ self.__last_fid = fid
+ type = type & 0x0f
+ if type == CompactType.TRUE:
+ self.state = BOOL_READ
+ self.__bool_value = True
+ elif type == CompactType.FALSE:
+ self.state = BOOL_READ
+ self.__bool_value = False
+ else:
+ self.state = VALUE_READ
+ return (None, self.__getTType(type), fid)
+
+ def readFieldEnd(self):
+ assert self.state in (VALUE_READ, BOOL_READ), self.state
+ self.state = FIELD_READ
+
+ def __readUByte(self):
+ result, = unpack('!B', self.trans.readAll(1))
+ return result
+
+ def __readByte(self):
+ result, = unpack('!b', self.trans.readAll(1))
+ return result
+
+ def __readVarint(self):
+ return readVarint(self.trans)
+
+ def __readZigZag(self):
+ return fromZigZag(self.__readVarint())
+
+ def __readSize(self):
+ result = self.__readVarint()
+ if result < 0:
+ raise TException("Length < 0")
+ return result
+
+ def readMessageBegin(self):
+ assert self.state == CLEAR
+ proto_id = self.__readUByte()
+ if proto_id != self.PROTOCOL_ID:
+ raise TProtocolException(TProtocolException.BAD_VERSION,
+ 'Bad protocol id in the message: %d' % proto_id)
+ ver_type = self.__readUByte()
+ type = (ver_type & self.TYPE_MASK) >> self.TYPE_SHIFT_AMOUNT
+ version = ver_type & self.VERSION_MASK
+ if version != self.VERSION:
+ raise TProtocolException(TProtocolException.BAD_VERSION,
+ 'Bad version: %d (expect %d)' % (version, self.VERSION))
+ seqid = self.__readVarint()
+ name = self.__readString()
+ return (name, type, seqid)
+
+ def readMessageEnd(self):
+ assert self.state == CLEAR
+ assert len(self.__structs) == 0
+
+ def readStructBegin(self):
+ assert self.state in (CLEAR, CONTAINER_READ, VALUE_READ), self.state
+ self.__structs.append((self.state, self.__last_fid))
+ self.state = FIELD_READ
+ self.__last_fid = 0
+
+ def readStructEnd(self):
+ assert self.state == FIELD_READ
+ self.state, self.__last_fid = self.__structs.pop()
+
+ def readCollectionBegin(self):
+ assert self.state in (VALUE_READ, CONTAINER_READ), self.state
+ size_type = self.__readUByte()
+ size = size_type >> 4
+ type = self.__getTType(size_type)
+ if size == 15:
+ size = self.__readSize()
+ self.__containers.append(self.state)
+ self.state = CONTAINER_READ
+ return type, size
+ readSetBegin = readCollectionBegin
+ readListBegin = readCollectionBegin
+
+ def readMapBegin(self):
+ assert self.state in (VALUE_READ, CONTAINER_READ), self.state
+ size = self.__readSize()
+ types = 0
+ if size > 0:
+ types = self.__readUByte()
+ vtype = self.__getTType(types)
+ ktype = self.__getTType(types >> 4)
+ self.__containers.append(self.state)
+ self.state = CONTAINER_READ
+ return (ktype, vtype, size)
+
+ def readCollectionEnd(self):
+ assert self.state == CONTAINER_READ, self.state
+ self.state = self.__containers.pop()
+ readSetEnd = readCollectionEnd
+ readListEnd = readCollectionEnd
+ readMapEnd = readCollectionEnd
+
+ def readBool(self):
+ if self.state == BOOL_READ:
+ return self.__bool_value == CompactType.TRUE
+ elif self.state == CONTAINER_READ:
+ return self.__readByte() == CompactType.TRUE
+ else:
+ raise AssertionError("Invalid state in compact protocol: %d" %
+ self.state)
+
+ readByte = reader(__readByte)
+ __readI16 = __readZigZag
+ readI16 = reader(__readZigZag)
+ readI32 = reader(__readZigZag)
+ readI64 = reader(__readZigZag)
+
+ @reader
+ def readDouble(self):
+ buff = self.trans.readAll(8)
+ val, = unpack('!d', buff)
+ return val
+
+ def __readString(self):
+ len = self.__readSize()
+ return self.trans.readAll(len)
+ readString = reader(__readString)
+
+ def __getTType(self, byte):
+ return TTYPES[byte & 0x0f]
+
+
+class TCompactProtocolFactory:
+ def __init__(self):
+ pass
+
+ def getProtocol(self, trans):
+ return TCompactProtocol(trans)
[05/32] airavata-sandbox git commit: adding jupyter note books for
Airavata
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.py
new file mode 100644
index 0000000..a18a061
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.py
@@ -0,0 +1,822 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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.application.io.ttypes
+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 WorkflowState:
+ CREATED = 0
+ STARTED = 1
+ EXECUTING = 2
+ COMPLETED = 3
+ FAILED = 4
+ CANCELLING = 5
+ CANCELED = 6
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "STARTED",
+ 2: "EXECUTING",
+ 3: "COMPLETED",
+ 4: "FAILED",
+ 5: "CANCELLING",
+ 6: "CANCELED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "STARTED": 1,
+ "EXECUTING": 2,
+ "COMPLETED": 3,
+ "FAILED": 4,
+ "CANCELLING": 5,
+ "CANCELED": 6,
+ }
+
+class ComponentState:
+ CREATED = 0
+ WAITING = 1
+ READY = 2
+ RUNNING = 3
+ COMPLETED = 4
+ FAILED = 5
+ CANCELED = 6
+
+ _VALUES_TO_NAMES = {
+ 0: "CREATED",
+ 1: "WAITING",
+ 2: "READY",
+ 3: "RUNNING",
+ 4: "COMPLETED",
+ 5: "FAILED",
+ 6: "CANCELED",
+ }
+
+ _NAMES_TO_VALUES = {
+ "CREATED": 0,
+ "WAITING": 1,
+ "READY": 2,
+ "RUNNING": 3,
+ "COMPLETED": 4,
+ "FAILED": 5,
+ "CANCELED": 6,
+ }
+
+
+class WorkflowModel:
+ """
+ Attributes:
+ - templateId
+ - name
+ - graph
+ - gatewayId
+ - createdUser
+ - image
+ - workflowInputs
+ - workflowOutputs
+ - creationTime
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'templateId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'name', None, None, ), # 2
+ (3, TType.STRING, 'graph', None, None, ), # 3
+ (4, TType.STRING, 'gatewayId', None, None, ), # 4
+ (5, TType.STRING, 'createdUser', None, None, ), # 5
+ (6, TType.STRING, 'image', None, None, ), # 6
+ (7, TType.LIST, 'workflowInputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.InputDataObjectType, apache.airavata.model.application.io.ttypes.InputDataObjectType.thrift_spec)), None, ), # 7
+ (8, TType.LIST, 'workflowOutputs', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 8
+ (9, TType.I64, 'creationTime', None, None, ), # 9
+ )
+
+ def __init__(self, templateId=thrift_spec[1][4], name=None, graph=None, gatewayId=None, createdUser=None, image=None, workflowInputs=None, workflowOutputs=None, creationTime=None,):
+ self.templateId = templateId
+ self.name = name
+ self.graph = graph
+ self.gatewayId = gatewayId
+ self.createdUser = createdUser
+ self.image = image
+ self.workflowInputs = workflowInputs
+ self.workflowOutputs = workflowOutputs
+ self.creationTime = creationTime
+
+ 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.templateId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.graph = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.gatewayId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.createdUser = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.image = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.LIST:
+ self.workflowInputs = []
+ (_etype3, _size0) = iprot.readListBegin()
+ for _i4 in xrange(_size0):
+ _elem5 = apache.airavata.model.application.io.ttypes.InputDataObjectType()
+ _elem5.read(iprot)
+ self.workflowInputs.append(_elem5)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 8:
+ if ftype == TType.LIST:
+ self.workflowOutputs = []
+ (_etype9, _size6) = iprot.readListBegin()
+ for _i10 in xrange(_size6):
+ _elem11 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+ _elem11.read(iprot)
+ self.workflowOutputs.append(_elem11)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 9:
+ if ftype == TType.I64:
+ self.creationTime = 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('WorkflowModel')
+ if self.templateId is not None:
+ oprot.writeFieldBegin('templateId', TType.STRING, 1)
+ oprot.writeString(self.templateId)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 2)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.graph is not None:
+ oprot.writeFieldBegin('graph', TType.STRING, 3)
+ oprot.writeString(self.graph)
+ oprot.writeFieldEnd()
+ if self.gatewayId is not None:
+ oprot.writeFieldBegin('gatewayId', TType.STRING, 4)
+ oprot.writeString(self.gatewayId)
+ oprot.writeFieldEnd()
+ if self.createdUser is not None:
+ oprot.writeFieldBegin('createdUser', TType.STRING, 5)
+ oprot.writeString(self.createdUser)
+ oprot.writeFieldEnd()
+ if self.image is not None:
+ oprot.writeFieldBegin('image', TType.STRING, 6)
+ oprot.writeString(self.image)
+ oprot.writeFieldEnd()
+ if self.workflowInputs is not None:
+ oprot.writeFieldBegin('workflowInputs', TType.LIST, 7)
+ oprot.writeListBegin(TType.STRUCT, len(self.workflowInputs))
+ for iter12 in self.workflowInputs:
+ iter12.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.workflowOutputs is not None:
+ oprot.writeFieldBegin('workflowOutputs', TType.LIST, 8)
+ oprot.writeListBegin(TType.STRUCT, len(self.workflowOutputs))
+ for iter13 in self.workflowOutputs:
+ iter13.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.creationTime is not None:
+ oprot.writeFieldBegin('creationTime', TType.I64, 9)
+ oprot.writeI64(self.creationTime)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.templateId is None:
+ raise TProtocol.TProtocolException(message='Required field templateId is unset!')
+ if self.name is None:
+ raise TProtocol.TProtocolException(message='Required field name is unset!')
+ if self.graph is None:
+ raise TProtocol.TProtocolException(message='Required field graph is unset!')
+ if self.gatewayId is None:
+ raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+ if self.createdUser is None:
+ raise TProtocol.TProtocolException(message='Required field createdUser is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.templateId)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.graph)
+ value = (value * 31) ^ hash(self.gatewayId)
+ value = (value * 31) ^ hash(self.createdUser)
+ value = (value * 31) ^ hash(self.image)
+ value = (value * 31) ^ hash(self.workflowInputs)
+ value = (value * 31) ^ hash(self.workflowOutputs)
+ value = (value * 31) ^ hash(self.creationTime)
+ 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 ComponentStatus:
+ """
+ Attributes:
+ - state
+ - reason
+ - timeofStateChange
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, 0, ), # 1
+ (2, TType.STRING, 'reason', None, None, ), # 2
+ (3, TType.I64, 'timeofStateChange', None, None, ), # 3
+ )
+
+ def __init__(self, state=thrift_spec[1][4], reason=None, timeofStateChange=None,):
+ self.state = state
+ self.reason = reason
+ self.timeofStateChange = timeofStateChange
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.reason = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.I64:
+ self.timeofStateChange = 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('ComponentStatus')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 2)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ if self.timeofStateChange is not None:
+ oprot.writeFieldBegin('timeofStateChange', TType.I64, 3)
+ oprot.writeI64(self.timeofStateChange)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.reason)
+ value = (value * 31) ^ hash(self.timeofStateChange)
+ 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 WorkflowStatus:
+ """
+ Attributes:
+ - state
+ - timeOfStateChange
+ - reason
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.I32, 'state', None, None, ), # 1
+ (2, TType.I64, 'timeOfStateChange', None, None, ), # 2
+ (3, TType.STRING, 'reason', None, None, ), # 3
+ )
+
+ def __init__(self, state=None, timeOfStateChange=None, reason=None,):
+ self.state = state
+ self.timeOfStateChange = timeOfStateChange
+ self.reason = reason
+
+ 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.I32:
+ self.state = iprot.readI32()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.I64:
+ self.timeOfStateChange = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.reason = 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('WorkflowStatus')
+ if self.state is not None:
+ oprot.writeFieldBegin('state', TType.I32, 1)
+ oprot.writeI32(self.state)
+ oprot.writeFieldEnd()
+ if self.timeOfStateChange is not None:
+ oprot.writeFieldBegin('timeOfStateChange', TType.I64, 2)
+ oprot.writeI64(self.timeOfStateChange)
+ oprot.writeFieldEnd()
+ if self.reason is not None:
+ oprot.writeFieldBegin('reason', TType.STRING, 3)
+ oprot.writeString(self.reason)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.state is None:
+ raise TProtocol.TProtocolException(message='Required field state is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.state)
+ value = (value * 31) ^ hash(self.timeOfStateChange)
+ value = (value * 31) ^ hash(self.reason)
+ 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 EdgeModel:
+ """
+ Attributes:
+ - edgeId
+ - name
+ - status
+ - description
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'edgeId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'name', None, None, ), # 2
+ (3, TType.STRUCT, 'status', (ComponentStatus, ComponentStatus.thrift_spec), None, ), # 3
+ (4, TType.STRING, 'description', None, None, ), # 4
+ )
+
+ def __init__(self, edgeId=thrift_spec[1][4], name=None, status=None, description=None,):
+ self.edgeId = edgeId
+ self.name = name
+ self.status = status
+ self.description = description
+
+ 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.edgeId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRUCT:
+ self.status = ComponentStatus()
+ self.status.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.description = 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('EdgeModel')
+ if self.edgeId is not None:
+ oprot.writeFieldBegin('edgeId', TType.STRING, 1)
+ oprot.writeString(self.edgeId)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 2)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.status is not None:
+ oprot.writeFieldBegin('status', TType.STRUCT, 3)
+ self.status.write(oprot)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 4)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.edgeId is None:
+ raise TProtocol.TProtocolException(message='Required field edgeId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.edgeId)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.status)
+ value = (value * 31) ^ hash(self.description)
+ 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 PortModel:
+ """
+ Attributes:
+ - portId
+ - name
+ - status
+ - value
+ - description
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'portId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'name', None, None, ), # 2
+ (3, TType.STRUCT, 'status', (ComponentStatus, ComponentStatus.thrift_spec), None, ), # 3
+ (4, TType.STRING, 'value', None, None, ), # 4
+ (5, TType.STRING, 'description', None, None, ), # 5
+ )
+
+ def __init__(self, portId=thrift_spec[1][4], name=None, status=None, value=None, description=None,):
+ self.portId = portId
+ self.name = name
+ self.status = status
+ self.value = value
+ self.description = description
+
+ 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.portId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRUCT:
+ self.status = ComponentStatus()
+ self.status.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.value = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.description = 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('PortModel')
+ if self.portId is not None:
+ oprot.writeFieldBegin('portId', TType.STRING, 1)
+ oprot.writeString(self.portId)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 2)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.status is not None:
+ oprot.writeFieldBegin('status', TType.STRUCT, 3)
+ self.status.write(oprot)
+ oprot.writeFieldEnd()
+ if self.value is not None:
+ oprot.writeFieldBegin('value', TType.STRING, 4)
+ oprot.writeString(self.value)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 5)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.portId is None:
+ raise TProtocol.TProtocolException(message='Required field portId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.portId)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.status)
+ value = (value * 31) ^ hash(self.value)
+ value = (value * 31) ^ hash(self.description)
+ 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 NodeModel:
+ """
+ Attributes:
+ - nodeId
+ - name
+ - applicationId
+ - applicationName
+ - status
+ - description
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'nodeId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+ (2, TType.STRING, 'name', None, None, ), # 2
+ (3, TType.STRING, 'applicationId', None, None, ), # 3
+ (4, TType.STRING, 'applicationName', None, None, ), # 4
+ (5, TType.STRUCT, 'status', (ComponentStatus, ComponentStatus.thrift_spec), None, ), # 5
+ (6, TType.STRING, 'description', None, None, ), # 6
+ )
+
+ def __init__(self, nodeId=thrift_spec[1][4], name=None, applicationId=None, applicationName=None, status=None, description=None,):
+ self.nodeId = nodeId
+ self.name = name
+ self.applicationId = applicationId
+ self.applicationName = applicationName
+ self.status = status
+ self.description = description
+
+ 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.nodeId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.name = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.applicationId = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.applicationName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRUCT:
+ self.status = ComponentStatus()
+ self.status.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.description = 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('NodeModel')
+ if self.nodeId is not None:
+ oprot.writeFieldBegin('nodeId', TType.STRING, 1)
+ oprot.writeString(self.nodeId)
+ oprot.writeFieldEnd()
+ if self.name is not None:
+ oprot.writeFieldBegin('name', TType.STRING, 2)
+ oprot.writeString(self.name)
+ oprot.writeFieldEnd()
+ if self.applicationId is not None:
+ oprot.writeFieldBegin('applicationId', TType.STRING, 3)
+ oprot.writeString(self.applicationId)
+ oprot.writeFieldEnd()
+ if self.applicationName is not None:
+ oprot.writeFieldBegin('applicationName', TType.STRING, 4)
+ oprot.writeString(self.applicationName)
+ oprot.writeFieldEnd()
+ if self.status is not None:
+ oprot.writeFieldBegin('status', TType.STRUCT, 5)
+ self.status.write(oprot)
+ oprot.writeFieldEnd()
+ if self.description is not None:
+ oprot.writeFieldBegin('description', TType.STRING, 6)
+ oprot.writeString(self.description)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.nodeId is None:
+ raise TProtocol.TProtocolException(message='Required field nodeId is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.nodeId)
+ value = (value * 31) ^ hash(self.name)
+ value = (value * 31) ^ hash(self.applicationId)
+ value = (value * 31) ^ hash(self.applicationName)
+ value = (value * 31) ^ hash(self.status)
+ value = (value * 31) ^ hash(self.description)
+ 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-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc
new file mode 100644
index 0000000..518db0a
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workflow/ttypes.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc
new file mode 100644
index 0000000..5b238c6
Binary files /dev/null and b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# 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
+from ttypes import *
+
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/__init__.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/__init__.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/75eb96c2/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/constants.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/constants.py b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/constants.py
new file mode 100644
index 0000000..f9a3855
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/create-experiment/apache/airavata/model/workspace/experiment/constants.py
@@ -0,0 +1,14 @@
+#
+# 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
+from ttypes import *
+
+DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
+DEFAULT_PROJECT_NAME = "DEFAULT"
+SINGLE_APP_NODE_NAME = "SINGLE_APP_NODE"
[30/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb
index f04ad19..748fc23 100644
--- a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/Admin User.ipynb
@@ -55,7 +55,7 @@
"collapsed": false
},
"source": [
- "##Making Sure we are connected to the right Gateway"
+ "## Making Sure we are connected to the right Gateway"
]
},
{
@@ -120,10 +120,74 @@
]
},
{
- "cell_type": "markdown",
+ "cell_type": "code",
+ "execution_count": 5,
"metadata": {
"collapsed": false
},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>Id</th>\n",
+ " <th>Name</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-1716...</td>\n",
+ " <td>alamo.uthscsa.edu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>Jureca_32098185-4396-4c11-afb7-26e991a03476</td>\n",
+ " <td>Jureca</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975e...</td>\n",
+ " <td>comet.sdsc.edu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>gordon.sdsc.edu_f9363997-4614-477f-847e-79d262...</td>\n",
+ " <td>gordon.sdsc.edu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa...</td>\n",
+ " <td>ls5.tacc.utexas.edu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b14...</td>\n",
+ " <td>stampede.tacc.xsede.org</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " Id Name\n",
+ "0 alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-1716... alamo.uthscsa.edu\n",
+ "1 Jureca_32098185-4396-4c11-afb7-26e991a03476 Jureca\n",
+ "2 comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975e... comet.sdsc.edu\n",
+ "3 gordon.sdsc.edu_f9363997-4614-477f-847e-79d262... gordon.sdsc.edu\n",
+ "4 ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aa... ls5.tacc.utexas.edu\n",
+ "5 stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b14... stampede.tacc.xsede.org"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"compute_resources = pd.DataFrame(list(airavata_cli.computer_resources().items()), columns=[\"Id\", \"Name\"])\n",
"compute_resources"
@@ -140,7 +204,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 6,
"metadata": {
"collapsed": false,
"scrolled": false
@@ -153,7 +217,7 @@
" ApplicationInterfaceDescription(applicationName='Ultrascan_Unicore', applicationInputs=[InputDataObjectType(userFriendlyDescription='', name='Input', dataStaged=False, value='', applicationArgument='', isRequired=True, standardInput=False, requiredToAddedToCommandLine=False, type=3, inputOrder=1, metaData=''), InputDataObjectType(userFriendlyDescription='', name='mgroupcount', dataStaged=False, value='-mgroupcount 1', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=2, metaData=''), InputDataObjectType(userFriendlyDescription='', name='US3INPUTARG', dataStaged=False, value='', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True, type=0, inputOrder=4, metaData=''), InputDataObjectType(userFriendlyDescription='', name='walltime', dataStaged=False, value='-walltime 60', applicationArgument='', isRequired=False, standardInput=False, requiredToAddedToCommandLine=True,
type=0, inputOrder=3, metaData='')], applicationInterfaceId='Ultrascan_Unicore_0e7f8522-6d75-41ba-8b09-0021e728679a', applicationDescription='Unicore Service', applicationOutputs=[OutputDataObjectType(dataMovement=True, name='Ultrascan-Unicore-Standard-Error', value='', applicationArgument='', isRequired=False, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=5), OutputDataObjectType(dataMovement=True, name='Ultrascan-Unicore-Standard-Out', value='', applicationArgument='', isRequired=False, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=4), OutputDataObjectType(dataMovement=True, name='US3OUT', value='analysis-results.tar', applicationArgument='', isRequired=True, searchQuery='', location='', requiredToAddedToCommandLine=False, outputStreaming=False, type=0)], applicationModules=['Ultrascan_Unicore_2471953d-5d87-4ffc-b0e6-b06c86c6206d'])]"
]
},
- "execution_count": 5,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
@@ -164,7 +228,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 7,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -177,7 +241,7 @@
" ApplicationModule(appModuleName='Ultrascan_Unicore', appModuleVersion='', appModuleId='Ultrascan_Unicore_2471953d-5d87-4ffc-b0e6-b06c86c6206d', appModuleDescription='Ultrascan Unicore Application')]"
]
},
- "execution_count": 6,
+ "execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
@@ -197,7 +261,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 8,
"metadata": {
"collapsed": true
},
@@ -220,30 +284,19 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 9,
"metadata": {
"collapsed": false
},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "ExperimentStatistics(failedExperiments=[ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610916000L, experimentId='US3-AIRA_bfe0ab01-db1f-4ccc-b3a0-e4e3e4224b29', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924612000L, experimentId='US3-AIRA_a51470cc-5f0c-4c45-a116-5fa711345522', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Prod
uction', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924600000L, experimentId='US3-AIRA_9756a388-3852-4a8c-9bdb-301077047bb0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924593000L, experimentId='US3-AIRA_1f52b8ac-a8b9-43c8-b384-b5bee596155a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='U
ltrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924588000L, experimentId='US3-AIRA_060ad115-36b1-468d-a794-992987493daf', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924575000L, experimentId='US3-AIRA_2c06f10a-b7be-4424-950c-3cb39aaa2bf0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46',
gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924566000L, experimentId='US3-AIRA_36f421e3-8903-4736-b9a4-57e6d02decf4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1465924558000L, experimentId='US3-AIRA_a438405d-7269-470c-b2d9-8deda405b48e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3
be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Francesca_Mattiroli_ae62c051-bc52-d0e4-f939-42b618137445', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_ae79215b-e5e2-45c7-bf9b-c7f196396c02', creationTime=1463341562000L, experimentId='US3-AIRA_f685a836-18bb-4404-a40a-528fb2e83d29', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1462970130000L, experimentId='US3-AIRA_60c739dd-12da-4731-a883-a6fa8c070467', executionId='Ultrascan_0ed937f6-26af-4c54-8064
-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Shaoxiong_Tian_f3c15677-e1d3-c894-7539-005f6df5e1b6', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_ca187139-f813-411d-9d0e-9ee5350f1a35', creationTime=1462922274000L, experimentId='US3-AIRA_6b2016fb-a2b5-43fb-a123-a756df9db348', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Shaoxiong_Tian_f3c15677-e1d3-c894-7539-005f6df5e1b6', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_ca187139-f813-411d-9d0e-9ee5350f1a35', creationTime=1462916575000L, experimentId='US3-AIRA_5971eb9a-03a8-4846-84e9-b99c4cd483fd', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be0
82411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1462496689000L, experimentId='US3-AIRA_79d8b7b6-55e6-4822-8573-2ac67e1a20e2', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Ero2016', name='Clone of Clone of Clone of Clone of U1', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='May_04_Experiments_91d005c6-e13b-40d0-9c61-a6d66dec8e93', creationTime=1462393184000L, experimentId='CloneofCloneofCloneofCloneofU1_c37f11bf-bc0a-4ab8-9d56-64fbea0fa6ee', executionId='Ultrascan_0ed937f6-26a
f-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=''), ExperimentSummaryModel(userName='Ero2016', name='Clone of U1', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='May_04_Experiments_91d005c6-e13b-40d0-9c61-a6d66dec8e93', creationTime=1462390867000L, experimentId='CloneofU1_954250be-e631-43be-b8e6-a6cbec286242', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=''), ExperimentSummaryModel(userName='Ero2016', name='U1', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='May_04_Experiments_91d005c6-e13b-40d0-9c61-a6d66dec8e93', creationTime=1462388494000L, experimentId='U1_386304ea-6d85-4dd7-8744-3867ca750cbf', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED
', description=' '), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1459545884000L, experimentId='US3-AIRA_59ba02e1-29b5-4267-b70b-4b1cc5d9ee04', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Akash_Bhattacharya_65724131-4b32-bec4-5974-aa29b945deaf', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_68d470e1-a74d-4cea-ab2f-5a87eed9ff6b', creationTime=1459544795000L, experimentId='US3-AIRA_0e989684-49f5-462c-b6eb-2db1740b61c7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentSt
atus='FAILED', description=None), ExperimentSummaryModel(userName='Uma_Muthurajan_912a2d20-e858-a4b4-fdbf-6cdf8ec8e182', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_3bbbc30b-4936-4371-bbaa-7b7901f46b48', creationTime=1459503200000L, experimentId='US3-AIRA_875a91d9-b752-45c7-a6a7-93b2901dfd6c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459451669000L, experimentId='US3-AIRA_84f7b4b5-5dc6-4370-9321-2aa3db57bb31', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), E
xperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459450891000L, experimentId='US3-AIRA_91ea15ef-e237-4926-a840-b4234bbe5cb4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459450662000L, experimentId='US3-AIRA_0660e466-5d99-4e0e-9aa2-ed3358eebd8d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusU
pdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459450589000L, experimentId='US3-AIRA_c7c1a4c2-2b3b-4fc9-996b-2da987c28436', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a975ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459447657000L, experimentId='US3-AIRA_9c9348e1-763c-48f7-b69e-b78d58c165fa', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_1234', name='US3-AIRA', statusUpdateTime=None, resourceHostId='comet.sdsc.edu_f24b0bba-5230-498d-97e2-46a9
75ee035b', projectId='Default_Project_49a64632-b918-4223-b9f7-b4e76a68973d', creationTime=1459447398000L, experimentId='US3-AIRA_a226ec5d-f0c9-4c43-8ddc-7c53749a5f8c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458670372000L, experimentId='US3-Test_f861d80f-f252-40e9-b50e-e96b731af8e7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Suresh_Marru_a5115922-f317-d754-9d72-8654071a5b59', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_649c
553e-ebb3-460d-8891-0854d8c99135', creationTime=1458658752000L, experimentId='US3-ADEV_6922cf63-034f-4bea-b842-267e98ca4d8a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_84f540d7-3276-8894-a544-fae60062b41c', name='US3-ADEV', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='Default_Project_d8841361-30e0-4f66-8310-ca642c426d76', creationTime=1458580364000L, experimentId='US3-ADEV_5edf1006-0482-4fa2-8d99-89a0dffee4f5', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_84f540d7-3276-8894-a544-fae60062b41c', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_d88
41361-30e0-4f66-8310-ca642c426d76', creationTime=1458580336000L, experimentId='US3-ADEV_84f329cf-6c17-41ef-bff5-1793fba4e41a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_84f540d7-3276-8894-a544-fae60062b41c', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_d8841361-30e0-4f66-8310-ca642c426d76', creationTime=1458580315000L, experimentId='US3-ADEV_40d796f4-005e-49ec-8b5e-9f459ccb5c5c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Ero2016', name='Clone of Test_Exp1', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='03/20/2016_ab65c93a-6bc4-4673-9388-4fa24e242245
', creationTime=1458571200000L, experimentId='CloneofTest_Exp1_89cf18ed-a990-4ce1-b777-5123181464a2', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=''), ExperimentSummaryModel(userName='Ero2016', name='Test_Exp1', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='03/20/2016_ab65c93a-6bc4-4673-9388-4fa24e242245', creationTime=1458571065000L, experimentId='Test_Exp1_4bd1f42f-37d6-4a99-9cf3-7b250aba37f6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=' '), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='stampede.tacc.xsede.org_bf7958ae-f9d4-468b-b146-a201fb89bf12', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458427226000L, experimentId='US3-Test_907959e1-ee18-4efc-
ae33-c85e60c5efed', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458427119000L, experimentId='US3-Test_8a1b01ca-f06f-4d99-8469-2a8c7cfad31a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458427003000L, experimentId='US3-Test_1c439038-378a-47bc-ab48-0ade6829bb95', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gat
ewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458411616000L, experimentId='US3-Test_ba9411a0-09db-4a72-afdc-97ee1513a9ab', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_84f540d7-3276-8894-a544-fae60062b41c', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_d8841361-30e0-4f66-8310-ca642c426d76', creationTime=1458333932000L, experimentId='US3-ADEV_bc0e1edf-fbb6-4852-bcdb-dcafd0f51193', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStat
us='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321712000L, experimentId='US3-Test_3616a162-9b9d-4a15-bff5-8b939a8b5e0f', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321710000L, experimentId='US3-Test_a1ebe37b-e20e-4e52-b023-24e13cbbf4ba', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-T
est', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321707000L, experimentId='US3-Test_2e2568c4-cba4-478e-aadf-38ae977f37b6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321704000L, experimentId='US3-Test_bcfbfd7b-24e1-40ac-84e2-799b9aae4fce', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-b
dd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321702000L, experimentId='US3-Test_45510860-3a0c-46ea-bdaf-11041286b69e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321698000L, experimentId='US3-Test_be111960-d779-4bdd-aca2-39e37173a8a8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320',
creationTime=1458321695000L, experimentId='US3-Test_78b700b7-f4d4-4271-9e6e-b0c7644e4d41', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321693000L, experimentId='US3-Test_12e9a448-45f7-43e5-b5ac-aac3dd3568f4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321690000L, experimentId='US3-Test_b9ceb01a-b051-43a6-9bd7-5dda71e30
6b9', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321687000L, experimentId='US3-Test_1208cfb3-e35c-4292-baed-4144e0bd8c7e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458321684000L, experimentId='US3-Test_52d19085-2561-4d16-a7d0-fbcae7bde02b', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultras
can_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458307861000L, experimentId='US3-Test_4c9a9b91-c981-4991-93fd-6e443122ede4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458266120000L, experimentId='US3-ADEV_18729c6f-71b9-4f9e-9cf1-cdbf870ad7cf', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED',
description=None), ExperimentSummaryModel(userName='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458255972000L, experimentId='US3-Test_f381b939-4457-4085-bc50-6956bc9e0b88', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458253080000L, experimentId='US3-ADEV_fc7a0840-11ac-47e2-acf9-de3545718279', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(
userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458248599000L, experimentId='US3-ADEV_aff13af2-91cf-4f52-b692-9abf403f6c2a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458247957000L, experimentId='US3-ADEV_fd8c9fbd-1ad8-4ceb-bc0c-d38772da42a4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(use
rName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458246583000L, experimentId='US3-ADEV_97562db9-6837-4ba5-8ece-0c947402b946', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName='Gary_Gorbet_b7351760-f666-dac4-5554-1c4c9bdf4f83', name='US3-ADEV', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_af7ca9ff-ce79-46d3-af11-93b6b254e73c', creationTime=1458246010000L, experimentId='US3-ADEV_a0a3189d-5343-4f2b-a493-8de237d792ad', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None), ExperimentSummaryModel(userName
='smarru', name='US3-Test', statusUpdateTime=None, resourceHostId='alamo.uthscsa.edu_4793b5cc-b991-4e43-b82d-17163b64ef29', projectId='Default_Project_7e2208a8-ba23-405e-b4e8-ec4b595c0320', creationTime=1458228228000L, experimentId='US3-Test_b21c5c21-5374-4b4b-9a65-a380927957f5', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='FAILED', description=None)], completedExperiments=[ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468618483000L, experimentId='US3-AIRA_36f4788f-240b-4119-aaed-18926be8165c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_
098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468616186000L, experimentId='US3-AIRA_408946e3-6104-48b3-a9dc-27ec03f45cb2', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468615898000L, experimentId='US3-AIRA_270ed9fe-f0f9-4c00-936f-72c994cb2125', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel
_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468612459000L, experimentId='US3-AIRA_c23effff-bf70-4d77-968a-5982919eb3a0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468612433000L, experimentId='US3-AIRA_2e65cd86-b4f2-4514-99c2-68c6cec880f4', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(use
rName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468612337000L, experimentId='US3-AIRA_22795aa0-20fe-43f9-9b1e-846c86b6cdb7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610911000L, experimentId='US3-AIRA_7e7faabc-405d-423f-8ed8-86015eff4cec', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummar
yModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610906000L, experimentId='US3-AIRA_d6cba9b9-4d47-400a-acda-dbe34497bc33', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610902000L, experimentId='US3-AIRA_35fd35da-9928-4640-8409-b0bb5d7ea9c9', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), Experimen
tSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610412000L, experimentId='US3-AIRA_689af84c-f35a-4794-8d93-374dbf04495a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610407000L, experimentId='US3-AIRA_70ed5d21-06d4-4b14-9644-a617b29d1a37', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), Ex
perimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610400000L, experimentId='US3-AIRA_fe34c64d-98ad-4234-bdc9-58912ecc8b96', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610396000L, experimentId='US3-AIRA_f62adf04-433a-4dee-9c0e-238ea9bfbe66', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=No
ne), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468610205000L, experimentId='US3-AIRA_07bcc317-9d7c-462c-8345-5106f4b1af9c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468609413000L, experimentId='US3-AIRA_1431a2d9-2eec-41f3-9fcd-c6d4308dd3bb', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', descrip
tion=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468609364000L, experimentId='US3-AIRA_44938538-4755-4fb8-b381-1ac57e238cbf', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604424000L, experimentId='US3-AIRA_689ed852-d66f-4113-b96f-c80144ec19a5', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED
', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604255000L, experimentId='US3-AIRA_d321187a-3261-4c88-b0db-e893c122f071', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604226000L, experimentId='US3-AIRA_4f26c65d-10e7-4992-a6cb-c203e858fdef', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStat
us='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604193000L, experimentId='US3-AIRA_19e20c84-b955-40c6-a2e3-0397757fd645', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468604151000L, experimentId='US3-AIRA_bb1807df-d9bf-42b1-bd9e-6eaf4349eed0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', e
xperimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468601894000L, experimentId='US3-AIRA_06f41a25-dbfa-4d65-b5cf-9fde477ef8fe', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599454000L, experimentId='US3-AIRA_400516b8-9168-44f9-8b66-9b061b230744', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_P
roduction', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599449000L, experimentId='US3-AIRA_8c295d53-9882-4d6e-940f-5d22032d8d5d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599444000L, experimentId='US3-AIRA_9c09c0f0-46f6-4373-b1a0-d9d1f98f2598', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId
='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599440000L, experimentId='US3-AIRA_14981e50-3231-4082-b75e-d08d5c0a72d6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468599436000L, experimentId='US3-AIRA_9dd660c4-7336-40f2-9332-2d607723e1a8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e4
6', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598408000L, experimentId='US3-AIRA_95d6556c-85ab-44ae-9e0c-24fd2d3c3b3d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598403000L, experimentId='US3-AIRA_361f0b66-631b-4944-aeaa-cad18e4c0318', executionId='Ultrascan_0ed937f6-26af-4c54-806
4-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598397000L, experimentId='US3-AIRA_a743552d-a24b-4155-a2b7-ece3ecd07496', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598393000L, experimentId='US3-AIRA_e22ef29a-3e66-47b6-9565-9b3a3a0c93eb', executionId='Ultrascan_0ed937f6-
26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598390000L, experimentId='US3-AIRA_cc16161a-dc74-4afa-8394-178f8f78a330', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598204000L, experimentId='US3-AIRA_b922331e-bfea-4a0f-8bb1-89ac05f43444', executionId='Ultras
can_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598199000L, experimentId='US3-AIRA_b2a709e3-cb76-4571-a3ac-7c3c31fb7e38', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598195000L, experimentId='US3-AIRA_f33153a2-a2af-42df-8950-c409bd816ef3', execut
ionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598191000L, experimentId='US3-AIRA_b5dbf59c-e59b-47cd-9dec-eebfaaeaf481', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468598188000L, experimentId='US3-AIRA_0df1e1aa-c0ed-4618-bd0b-34745c98
4e21', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468597273000L, experimentId='US3-AIRA_0b5dc791-eb6b-435e-9934-ee5d08f3c645', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468597270000L, experimentId='US3-AIRA_02424cbc-c198-4ddd-af2b-9
f418e3d485d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468597266000L, experimentId='US3-AIRA_b8cdfe35-a61b-4858-9e08-61b49c0b5c8e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468597261000L, experimentId='US3-AIRA_dfece700-f27f-42be
-aaf1-7b793f79e2df', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468540422000L, experimentId='US3-AIRA_a05e51be-8652-4dc6-aac9-03de2b417c82', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468540385000L, experimentId='US3-AIRA_e3dfb
d4b-4f4f-43c1-b3a8-e440aa9f926b', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468540346000L, experimentId='US3-AIRA_bcda009f-0d3d-40d6-af64-d2e7fd1560db', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468528060000L, experimentId='U
S3-AIRA_dc95f385-9c85-4bb6-8a43-c8d5c669f72d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468527995000L, experimentId='US3-AIRA_1d89633e-6f12-4f99-bbe4-67826d375573', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468527960000L, ex
perimentId='US3-AIRA_8a15af51-4165-4b05-a133-195bcbd7b2fa', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468527896000L, experimentId='US3-AIRA_e7015598-43a6-491e-a885-33be47e70ee5', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=14685
27856000L, experimentId='US3-AIRA_57f479ac-8216-4c0c-9456-d1558003b6c7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468527576000L, experimentId='US3-AIRA_49dc66bf-8686-4b00-b19e-ffaf3d41e3e7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTim
e=1468527571000L, experimentId='US3-AIRA_e19886fd-bb39-410d-8fdb-cc7a260af49f', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468527567000L, experimentId='US3-AIRA_95fcafec-92d1-464f-9626-94aed161c4d9', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', crea
tionTime=1468527564000L, experimentId='US3-AIRA_448d3a53-57e4-4d07-8168-bbc3a5a310f2', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468525461000L, experimentId='US3-AIRA_5832682b-b83f-48df-bf20-11145b40b81c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76
', creationTime=1468525456000L, experimentId='US3-AIRA_67681ac9-a675-44a2-8d83-5dfb86ccf43e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468525451000L, experimentId='US3-AIRA_3ca2543c-c4f8-4623-a603-d4dd138ea598', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366d
b32bd76', creationTime=1468525448000L, experimentId='US3-AIRA_f5a2c105-d8f9-4835-aefe-bca5b8548af9', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468522640000L, experimentId='US3-AIRA_79e9255d-d448-4a2a-9c90-d89ce11af845', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae7
6-8366db32bd76', creationTime=1468522630000L, experimentId='US3-AIRA_7ee94d4c-c64a-4e1c-a560-0221732d5d6c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468522618000L, experimentId='US3-AIRA_674fdf44-b88e-46a8-bc82-02e453978ff8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4
532-ae76-8366db32bd76', creationTime=1468522603000L, experimentId='US3-AIRA_150d91d6-9dbd-429f-825e-3ec98fd8df73', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468522282000L, experimentId='US3-AIRA_ebdd4299-8adb-4792-8843-8e037ab97ef8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e
1dede8-0925-47e6-b61c-966051287d37', creationTime=1468521671000L, experimentId='US3-AIRA_02308b49-bc1a-4956-8d69-65edc8f33d14', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468521477000L, experimentId='US3-AIRA_191cb1dd-cef4-4767-8093-525fc2a37667', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Defau
lt_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468520547000L, experimentId='US3-AIRA_bc7ac81d-adce-4912-ba4f-e4bd84ae830c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468520459000L, experimentId='US3-AIRA_ae4e1a1f-c7c3-4918-b927-94c0b9f60f92', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', pro
jectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468520359000L, experimentId='US3-AIRA_fd2c3457-1c1f-4545-a5f9-90454264f9da', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519283000L, experimentId='US3-AIRA_ec100087-9407-4960-9a0b-5cd77139fbe6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f
8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519147000L, experimentId='US3-AIRA_cb6512e5-b4fd-43a8-9b5b-3afa37eba212', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519115000L, experimentId='US3-AIRA_a7f62d62-82b6-49bb-9456-b3ff5899f91c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f
74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519041000L, experimentId='US3-AIRA_66f121ee-5a48-45c1-a962-105d5307683e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468519014000L, experimentId='US3-AIRA_a00ddc5e-49a6-459c-8a3d-18a1a061fded', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd
67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468512271000L, experimentId='US3-AIRA_c3a8cd3f-a120-4c9c-9f21-91aa13665416', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468512244000L, experimentId='US3-AIRA_18295d19-5e3c-47c1-aeeb-5b1a31b903aa', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.u
texas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468512001000L, experimentId='US3-AIRA_daf97da2-8772-4567-96be-3bac3793bbae', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511997000L, experimentId='US3-AIRA_b7e642b0-419e-46a5-a231-f995747ba8d1', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostI
d='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511769000L, experimentId='US3-AIRA_06afba20-0c36-4344-919c-8fe43de5e2a6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511728000L, experimentId='US3-AIRA_9b396838-7893-4844-a569-f247f67fae65', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None,
resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511692000L, experimentId='US3-AIRA_1b1806f9-2513-440d-9b36-c1fe00cd965a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511657000L, experimentId='US3-AIRA_fbb618da-23f5-4c86-9898-866feeea621c', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpda
teTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468511625000L, experimentId='US3-AIRA_cb618df0-f0ce-42f6-862c-636b9979003e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468511287000L, experimentId='US3-AIRA_9e76ea93-db46-4ece-9e43-22490541f7de', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', sta
tusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468511282000L, experimentId='US3-AIRA_e3959aad-ce01-4ce2-9c35-afae4edc12f8', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468511278000L, experimentId='US3-AIRA_ac88b8af-5359-4d2c-8e74-9c0a122c351a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIR
A', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468511274000L, experimentId='US3-AIRA_3cfbad94-b7d9-4a9d-b819-1809fabd9c73', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510422000L, experimentId='US3-AIRA_1feea8ed-45f0-40f5-9a67-5e67a840bbb0', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed',
name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510416000L, experimentId='US3-AIRA_e3bc8bce-e854-4b0a-9ca2-b5dc513736a6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510411000L, experimentId='US3-AIRA_7b76426c-f994-4bed-8e04-eb048b8e3266', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-11
47783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510407000L, experimentId='US3-AIRA_c7061d63-4e37-4fd4-b132-f2294a6417aa', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468510402000L, experimentId='US3-AIRA_63d73ec8-59fc-426e-80f0-b4eb56018bd3', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4
-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509534000L, experimentId='US3-AIRA_da2ceb24-b48b-4e65-9798-346c9662e1c6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509528000L, experimentId='US3-AIRA_b655a9b4-21a5-4737-ad9f-61300fbe63fb', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_
550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509522000L, experimentId='US3-AIRA_e512726d-838a-4f24-952f-a1c7df75c031', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509519000L, experimentId='US3-AIRA_97ca0744-2889-4811-aa74-0cc498827056', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Dan
iel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509514000L, experimentId='US3-AIRA_92fc260f-802f-4bde-b1a1-231a72949a06', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509298000L, experimentId='US3-AIRA_20566854-0426-47c0-94a2-2900b6b32512', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(
userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509292000L, experimentId='US3-AIRA_acfefd54-25f8-409b-aef0-1b6439cc38d6', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509287000L, experimentId='US3-AIRA_b6695bd8-c812-42a4-99cf-abbaace99b9e', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), Experiment
SummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509283000L, experimentId='US3-AIRA_607411fc-e47a-44d5-a6e1-d9124a2813cb', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Daniel_Krzizike_550162c5-88f4-5624-cd19-1147783ec5ed', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_4e1dede8-0925-47e6-b61c-966051287d37', creationTime=1468509279000L, experimentId='US3-AIRA_269487a0-d9ab-47df-b702-3033e4fd55ed', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None
), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507580000L, experimentId='US3-AIRA_9c680c60-a955-46cc-8765-e7153402800a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507569000L, experimentId='US3-AIRA_f0f564e4-d7ec-44b8-90a1-536edf0fc2a7', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', descripti
on=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507564000L, experimentId='US3-AIRA_b0c2ca2e-6a81-4547-b78e-e921b0edd789', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507559000L, experimentId='US3-AIRA_f17f6449-634b-415b-8143-2896ba66b29d', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', de
scription=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507142000L, experimentId='US3-AIRA_8d5e9a54-c9fe-4081-b26f-6798a930faed', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507136000L, experimentId='US3-AIRA_7a3860e3-ca17-413c-aa3c-c10ee8c7819a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLET
ED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507131000L, experimentId='US3-AIRA_99fcff92-3a19-41b0-a741-2497bc81f893', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468507126000L, experimentId='US3-AIRA_9448e030-8cb3-4dbc-99ec-b5ff257d39e3', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='
COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468506776000L, experimentId='US3-AIRA_e2a99554-5673-4226-a124-0cad1fa5401a', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentStatus='COMPLETED', description=None), ExperimentSummaryModel(userName='Paul_Willard_098ba7b6-274c-9fb4-4915-f7ecc0c7cc1f', name='US3-AIRA', statusUpdateTime=None, resourceHostId='ls5.tacc.utexas.edu_6dd67b08-30e5-4f74-bdd6-aad1f8310ecf', projectId='Default_Project_b884d629-32bf-4532-ae76-8366db32bd76', creationTime=1468506769000L, experimentId='US3-AIRA_1e3d3cb7-5223-4ef2-9275-8b06c518c443', executionId='Ultrascan_0ed937f6-26af-4c54-8064-3be082411e46', gatewayId='Ultrascan_Production', experimentS
tatus='COMPLETED', d
<TRUNCATED>
[28/32] airavata-sandbox git commit: Added_Apache
Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/2352c0ff/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.py b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.py
new file mode 100644
index 0000000..b7813c6
--- /dev/null
+++ b/Interacting_with_Airavata_using_ipython_Notebook/Admin-User/apache/airavata/api/Airavata.py
@@ -0,0 +1,38230 @@
+#
+# 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
+from ttypes import *
+from thrift.Thrift import TProcessor
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+ from thrift.protocol import fastbinary
+except:
+ fastbinary = None
+
+
+class Iface:
+ def getAPIVersion(self, authzToken):
+ """
+ Fetch Apache Airavata API version
+
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def addGateway(self, authzToken, gateway):
+ """
+ Parameters:
+ - authzToken
+ - gateway
+ """
+ pass
+
+ def updateGateway(self, authzToken, gatewayId, updatedGateway):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ - updatedGateway
+ """
+ pass
+
+ def getGateway(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def deleteGateway(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getAllGateways(self, authzToken):
+ """
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def isGatewayExist(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def generateAndRegisterSSHKeys(self, authzToken, gatewayId, userName):
+ """
+ Generate and Register SSH Key Pair with Airavata Credential Store.
+
+ @param gatewayId
+ The identifier for the requested gateway.
+
+ @param userName
+ The User for which the credential should be registered. For community accounts, this user is the name of the
+ community user name. For computational resources, this user name need not be the same user name on resoruces.
+
+ @return airavataCredStoreToken
+ An SSH Key pair is generated and stored in the credential store and associated with users or community account
+ belonging to a gateway.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ """
+ pass
+
+ def getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - airavataCredStoreToken
+ - gatewayId
+ """
+ pass
+
+ def getAllUserSSHPubKeys(self, authzToken, userName):
+ """
+ Parameters:
+ - authzToken
+ - userName
+ """
+ pass
+
+ def createProject(self, authzToken, gatewayId, project):
+ """
+ Creates a Project with basic metadata.
+ A Project is a container of experiments.
+
+ @param gatewayId
+ The identifier for the requested gateway.
+
+ @param Project
+ The Project Object described in the workspace_model
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - project
+ """
+ pass
+
+ def updateProject(self, authzToken, projectId, updatedProject):
+ """
+ Update a Project
+
+
+ Parameters:
+ - authzToken
+ - projectId
+ - updatedProject
+ """
+ pass
+
+ def getProject(self, authzToken, projectId):
+ """
+ Get a Project by ID
+
+
+ Parameters:
+ - authzToken
+ - projectId
+ """
+ pass
+
+ def deleteProject(self, authzToken, projectId):
+ """
+ Parameters:
+ - authzToken
+ - projectId
+ """
+ pass
+
+ def getUserProjects(self, authzToken, gatewayId, userName, limit, offset):
+ """
+ * Get all Project by user with pagination. Results will be ordered based
+ * on creation time DESC
+ *
+ * @param gatewayId
+ * The identifier for the requested gateway.
+ * @param userName
+ * The identifier of the user
+ * @param limit
+ * The amount results to be fetched
+ * @param offset
+ * The starting point of the results to be fetched
+ *
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - limit
+ - offset
+ """
+ pass
+
+ def searchProjectsByProjectName(self, authzToken, gatewayId, userName, projectName, limit, offset):
+ """
+ Get all Project for user by project name with pagination.Results will be ordered based
+ on creation time DESC
+
+ @param gatewayId
+ The identifier for the requested gateway.
+ @param userName
+ The identifier of the user
+ @param projectName
+ The name of the project on which the results to be fetched
+ @param limit
+ The amount results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - projectName
+ - limit
+ - offset
+ """
+ pass
+
+ def searchProjectsByProjectDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+ """
+ Search and get all Projects for user by project description with pagination. Results
+ will be ordered based on creation time DESC
+
+ @param gatewayId
+ The identifier for the requested gateway.
+ @param userName
+ The identifier of the user
+ @param description
+ The description to be matched
+ @param limit
+ The amount results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - description
+ - limit
+ - offset
+ """
+ pass
+
+ def searchExperimentsByName(self, authzToken, gatewayId, userName, expName, limit, offset):
+ """
+ Search Experiments by experiment name with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param gatewayId
+ Identifier of the requested gateway
+ @param userName
+ Username of the requested user
+ @param expName
+ Experiment name to be matched
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - expName
+ - limit
+ - offset
+ """
+ pass
+
+ def searchExperimentsByDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+ """
+ Search Experiments by experiment name with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param gatewayId
+ Identifier of the requested gateway
+ @param userName
+ Username of the requested user
+ @param description
+ Experiment description to be matched
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - description
+ - limit
+ - offset
+ """
+ pass
+
+ def searchExperimentsByApplication(self, authzToken, gatewayId, userName, applicationId, limit, offset):
+ """
+ Search Experiments by application id with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param gatewayId
+ Identifier of the requested gateway
+ @param userName
+ Username of the requested user
+ @param applicationId
+ Application id to be matched
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - applicationId
+ - limit
+ - offset
+ """
+ pass
+
+ def searchExperimentsByStatus(self, authzToken, gatewayId, userName, experimentState, limit, offset):
+ """
+ Search Experiments by experiment status with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param gatewayId
+ Identifier of the requested gateway
+ @param userName
+ Username of the requested user
+ @param experimentState
+ Experiement state to be matched
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - experimentState
+ - limit
+ - offset
+ """
+ pass
+
+ def searchExperimentsByCreationTime(self, authzToken, gatewayId, userName, fromTime, toTime, limit, offset):
+ """
+ Search Experiments by experiment creation time with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param gatewayId
+ Identifier of the requested gateway
+ @param userName
+ Username of the requested user
+ @param fromTime
+ Start time of the experiments creation time
+ @param toTime
+ End time of the experiement creation time
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - fromTime
+ - toTime
+ - limit
+ - offset
+ """
+ pass
+
+ def searchExperiments(self, authzToken, gatewayId, userName, filters, limit, offset):
+ """
+ Search Experiments by using multiple filter criteria with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param gatewayId
+ Identifier of the requested gateway
+ @param userName
+ Username of the requested user
+ @param filters
+ map of multiple filter criteria.
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - filters
+ - limit
+ - offset
+ """
+ pass
+
+ def getExperimentStatistics(self, authzToken, gatewayId, fromTime, toTime):
+ """
+ Get Experiment Statisitics for the given gateway for a specific time period
+ @param gatewayId
+ Identifier of the requested gateway
+ @param fromTime
+ Starting date time
+ @param toTime
+ Ending data time
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - fromTime
+ - toTime
+ """
+ pass
+
+ def getExperimentsInProject(self, authzToken, projectId, limit, offset):
+ """
+ Get Experiments within project with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param projectId
+ Identifier of the project
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - projectId
+ - limit
+ - offset
+ """
+ pass
+
+ def getUserExperiments(self, authzToken, gatewayId, userName, limit, offset):
+ """
+ Get experiments by user with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param gatewayId
+ Identifier of the requesting gateway
+ @param userName
+ Username of the requested user
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - limit
+ - offset
+ """
+ pass
+
+ def createExperiment(self, authzToken, gatewayId, experiment):
+ """
+ Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
+ but inferred from the authentication header. This experiment is just a persistent place holder. The client
+ has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except
+ registering the experiment in a persistent store.
+
+ @param basicExperimentMetadata
+ The create experiment will require the basic experiment metadata like the name and description, intended user,
+ the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment
+ the ExperimentMetadata is a required field.
+
+ @return
+ The server-side generated.airavata.registry.core.experiment.globally unique identifier.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - experiment
+ """
+ pass
+
+ def deleteExperiment(self, authzToken, experimentId):
+ """
+ If the experiment is not already launched experiment can be deleted.
+
+ @param authzToken
+ @param experiementId
+
+ @return boolean identifier for the success or failure of the deletion operation
+
+
+ Parameters:
+ - authzToken
+ - experimentId
+ """
+ pass
+
+ def getExperiment(self, authzToken, airavataExperimentId):
+ """
+ Fetch previously created experiment metadata.
+
+ @param airavataExperimentId
+ The identifier for the requested experiment. This is returned during the create experiment step.
+
+ @return experimentMetada
+ This method will return the previously stored experiment metadata.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def updateExperiment(self, authzToken, airavataExperimentId, experiment):
+ """
+ Configure a previously created experiment with required inputs, scheduling and other quality of service
+ parameters. This method only updates the experiment object within the registry. The experiment has to be launched
+ to make it actionable by the server.
+
+ @param airavataExperimentId
+ The identifier for the requested experiment. This is returned during the create experiment step.
+
+ @param experimentConfigurationData
+ The configuration information of the experiment with application input parameters, computational resource scheduling
+ information, special input output handling and additional quality of service parameters.
+
+ @return
+ This method call does not have a return value.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - experiment
+ """
+ pass
+
+ def updateExperimentConfiguration(self, authzToken, airavataExperimentId, userConfiguration):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - userConfiguration
+ """
+ pass
+
+ def updateResourceScheduleing(self, authzToken, airavataExperimentId, resourceScheduling):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - resourceScheduling
+ """
+ pass
+
+ def validateExperiment(self, authzToken, airavataExperimentId):
+ """
+ *
+ * Validate experiment configuration. A true in general indicates, the experiment is ready to be launched.
+ *
+ * @param experimentID
+ * @return sucess/failure
+ *
+ *
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def launchExperiment(self, authzToken, airavataExperimentId, gatewayId):
+ """
+ Launch a previously created and configured experiment. Airavata Server will then start processing the request and appropriate
+ notifications and intermediate and output data will be subsequently available for this experiment.
+
+ @param airavataExperimentId
+ The identifier for the requested experiment. This is returned during the create experiment step.
+
+ @return
+ This method call does not have a return value.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - gatewayId
+ """
+ pass
+
+ def getExperimentStatus(self, authzToken, airavataExperimentId):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getExperimentOutputs(self, authzToken, airavataExperimentId):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getIntermediateOutputs(self, authzToken, airavataExperimentId):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getJobStatuses(self, authzToken, airavataExperimentId):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def getJobDetails(self, authzToken, airavataExperimentId):
+ """
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ """
+ pass
+
+ def cloneExperiment(self, authzToken, existingExperimentID, newExperimentName):
+ """
+ Clone an specified experiment with a new name. A copy of the experiment configuration is made and is persisted with new metadata.
+ The client has to subsequently update this configuration if needed and launch the cloned experiment.
+
+ @param newExperimentName
+ experiment name that should be used in the cloned experiment
+
+ @param updatedExperiment
+ Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
+ the basic experiment metadata like the name and description, intended user, the gateway identifier and if the experiment
+ should be shared public by default.
+
+ @return
+ The server-side generated.airavata.registry.core.experiment.globally unique identifier for the newly cloned experiment.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - existingExperimentID
+ - newExperimentName
+ """
+ pass
+
+ def terminateExperiment(self, authzToken, airavataExperimentId, gatewayId):
+ """
+ Terminate a running experiment.
+
+ @param airavataExperimentId
+ The identifier for the requested experiment. This is returned during the create experiment step.
+
+ @return
+ This method call does not have a return value.
+
+ @throws org.apache.airavata.model.error.InvalidRequestException
+ For any incorrect forming of the request itself.
+
+ @throws org.apache.airavata.model.error.ExperimentNotFoundException
+ If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
+
+ @throws org.apache.airavata.model.error.AiravataClientException
+ The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
+
+ UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
+ step, then Airavata Registry will not have a provenance area setup. The client has to follow
+ gateway registration steps and retry this request.
+
+ AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
+ For now this is a place holder.
+
+ INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
+ is implemented, the authorization will be more substantial.
+
+ @throws org.apache.airavata.model.error.AiravataSystemException
+ This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
+ rather an Airavata Administrator will be notified to take corrective action.
+
+
+ Parameters:
+ - authzToken
+ - airavataExperimentId
+ - gatewayId
+ """
+ pass
+
+ def registerApplicationModule(self, authzToken, gatewayId, applicationModule):
+ """
+ Register a Application Module.
+
+ @param applicationModule
+ Application Module Object created from the datamodel.
+
+ @return appModuleId
+ Returns a server-side generated airavata appModule globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - applicationModule
+ """
+ pass
+
+ def getApplicationModule(self, authzToken, appModuleId):
+ """
+ Fetch a Application Module.
+
+ @param appModuleId
+ The identifier for the requested application module
+
+ @return applicationModule
+ Returns a application Module Object.
+
+
+ Parameters:
+ - authzToken
+ - appModuleId
+ """
+ pass
+
+ def updateApplicationModule(self, authzToken, appModuleId, applicationModule):
+ """
+ Update a Application Module.
+
+ @param appModuleId
+ The identifier for the requested application module to be updated.
+
+ @param applicationModule
+ Application Module Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - appModuleId
+ - applicationModule
+ """
+ pass
+
+ def getAllAppModules(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def deleteApplicationModule(self, authzToken, appModuleId):
+ """
+ Delete a Application Module.
+
+ @param appModuleId
+ The identifier for the requested application module to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - appModuleId
+ """
+ pass
+
+ def registerApplicationDeployment(self, authzToken, gatewayId, applicationDeployment):
+ """
+ Register a Application Deployment.
+
+ @param applicationModule
+ Application Module Object created from the datamodel.
+
+ @return appDeploymentId
+ Returns a server-side generated airavata appDeployment globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - applicationDeployment
+ """
+ pass
+
+ def getApplicationDeployment(self, authzToken, appDeploymentId):
+ """
+ Fetch a Application Deployment.
+
+ @param appDeploymentId
+ The identifier for the requested application module
+
+ @return applicationDeployment
+ Returns a application Deployment Object.
+
+
+ Parameters:
+ - authzToken
+ - appDeploymentId
+ """
+ pass
+
+ def updateApplicationDeployment(self, authzToken, appDeploymentId, applicationDeployment):
+ """
+ Update a Application Deployment.
+
+ @param appDeploymentId
+ The identifier for the requested application deployment to be updated.
+
+ @param appDeployment
+ Application Deployment Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - appDeploymentId
+ - applicationDeployment
+ """
+ pass
+
+ def deleteApplicationDeployment(self, authzToken, appDeploymentId):
+ """
+ Delete a Application deployment.
+
+ @param appDeploymentId
+ The identifier for the requested application deployment to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - appDeploymentId
+ """
+ pass
+
+ def getAllApplicationDeployments(self, authzToken, gatewayId):
+ """
+ Fetch all Application Deployment Descriptions.
+
+ @return list<applicationDeployment.
+ Returns the list of all application Deployment Objects.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getAppModuleDeployedResources(self, authzToken, appModuleId):
+ """
+ Fetch a list of Deployed Compute Hosts.
+
+ @param appModuleId
+ The identifier for the requested application module
+
+ @return list<string>
+ Returns a list of Deployed Resources.
+
+
+ Parameters:
+ - authzToken
+ - appModuleId
+ """
+ pass
+
+ def registerApplicationInterface(self, authzToken, gatewayId, applicationInterface):
+ """
+ Register a Application Interface.
+
+ @param applicationModule
+ Application Module Object created from the datamodel.
+
+ @return appInterfaceId
+ Returns a server-side generated airavata application interface globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - applicationInterface
+ """
+ pass
+
+ def getApplicationInterface(self, authzToken, appInterfaceId):
+ """
+ Fetch a Application Interface.
+
+ @param appInterfaceId
+ The identifier for the requested application module
+
+ @return applicationInterface
+ Returns a application Interface Object.
+
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def updateApplicationInterface(self, authzToken, appInterfaceId, applicationInterface):
+ """
+ Update a Application Interface.
+
+ @param appInterfaceId
+ The identifier for the requested application deployment to be updated.
+
+ @param appInterface
+ Application Interface Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ - applicationInterface
+ """
+ pass
+
+ def deleteApplicationInterface(self, authzToken, appInterfaceId):
+ """
+ Delete a Application Interface.
+
+ @param appInterfaceId
+ The identifier for the requested application interface to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def getAllApplicationInterfaceNames(self, authzToken, gatewayId):
+ """
+ Fetch name and id of Application Interface documents.
+
+
+ @return map<applicationId, applicationInterfaceNames>
+ Returns a list of application interfaces with corresponsing id's
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getAllApplicationInterfaces(self, authzToken, gatewayId):
+ """
+ Fetch all Application Interface documents.
+
+
+ @return map<applicationId, applicationInterfaceNames>
+ Returns a list of application interfaces documents
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getApplicationInputs(self, authzToken, appInterfaceId):
+ """
+ Fetch the list of Application Inputs.
+
+ @param appInterfaceId
+ The identifier for the requested application interface
+
+ @return list<application_interface_model.InputDataObjectType>
+ Returns a list of application inputs.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def getApplicationOutputs(self, authzToken, appInterfaceId):
+ """
+ Fetch the list of Application Outputs.
+
+ @param appInterfaceId
+ The identifier for the requested application interface
+
+ @return list<application_interface_model.OutputDataObjectType>
+ Returns a list of application outputs.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def getAvailableAppInterfaceComputeResources(self, authzToken, appInterfaceId):
+ """
+ Fetch a list of all deployed Compute Hosts for a given application interfaces.
+
+ @param appInterfaceId
+ The identifier for the requested application interface
+
+ @return map<computeResourceId, computeResourceName>
+ A map of registered compute resource id's and their corresponding hostnames.
+ Deployments of each modules listed within the interfaces will be listed.
+
+
+ Parameters:
+ - authzToken
+ - appInterfaceId
+ """
+ pass
+
+ def registerComputeResource(self, authzToken, computeResourceDescription):
+ """
+ Register a Compute Resource.
+
+ @param computeResourceDescription
+ Compute Resource Object created from the datamodel.
+
+ @return computeResourceId
+ Returns a server-side generated airavata compute resource globally unique identifier.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceDescription
+ """
+ pass
+
+ def getComputeResource(self, authzToken, computeResourceId):
+ """
+ Fetch the given Compute Resource.
+
+ @param computeResourceId
+ The identifier for the requested compute resource
+
+ @return computeResourceDescription
+ Compute Resource Object created from the datamodel..
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ """
+ pass
+
+ def getAllComputeResourceNames(self, authzToken):
+ """
+ Fetch all registered Compute Resources.
+
+ @return A map of registered compute resource id's and thier corresponding hostnames.
+ Compute Resource Object created from the datamodel..
+
+
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def updateComputeResource(self, authzToken, computeResourceId, computeResourceDescription):
+ """
+ Update a Compute Resource.
+
+ @param computeResourceId
+ The identifier for the requested compute resource to be updated.
+
+ @param computeResourceDescription
+ Compute Resource Object created from the datamodel.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - computeResourceDescription
+ """
+ pass
+
+ def deleteComputeResource(self, authzToken, computeResourceId):
+ """
+ Delete a Compute Resource.
+
+ @param computeResourceId
+ The identifier for the requested compute resource to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ """
+ pass
+
+ def addLocalSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, localSubmission):
+ """
+ Add a Local Job Submission details to a compute resource
+ App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param localSubmission
+ The LOCALSubmission object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - localSubmission
+ """
+ pass
+
+ def updateLocalSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, localSubmission):
+ """
+ Update the given Local Job Submission details
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be updated.
+
+ @param localSubmission
+ The LOCALSubmission object to be updated.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - localSubmission
+ """
+ pass
+
+ def getLocalJobSubmission(self, authzToken, jobSubmissionId):
+ """
+ This method returns localJobSubmission object
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be retrieved.
+ @return LOCALSubmission instance
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionId
+ """
+ pass
+
+ def addSSHJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, sshJobSubmission):
+ """
+ Add a SSH Job Submission details to a compute resource
+ App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param sshJobSubmission
+ The SSHJobSubmission object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - sshJobSubmission
+ """
+ pass
+
+ def addSSHForkJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, sshJobSubmission):
+ """
+ Add a SSH_FORK Job Submission details to a compute resource
+ App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param sshJobSubmission
+ The SSHJobSubmission object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - sshJobSubmission
+ """
+ pass
+
+ def getSSHJobSubmission(self, authzToken, jobSubmissionId):
+ """
+ This method returns SSHJobSubmission object
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be retrieved.
+ @return SSHJobSubmission instance
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionId
+ """
+ pass
+
+ def addUNICOREJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, unicoreJobSubmission):
+ """
+ Add a UNICORE Job Submission details to a compute resource
+ App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param unicoreJobSubmission
+ The UnicoreJobSubmission object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - unicoreJobSubmission
+ """
+ pass
+
+ def getUnicoreJobSubmission(self, authzToken, jobSubmissionId):
+ """
+ * This method returns UnicoreJobSubmission object
+ * @param jobSubmissionInterfaceId
+ * The identifier of the JobSubmission Interface to be retrieved.
+ * @return UnicoreJobSubmission instance
+ *
+
+ Parameters:
+ - authzToken
+ - jobSubmissionId
+ """
+ pass
+
+ def addCloudJobSubmissionDetails(self, authzToken, computeResourceId, priorityOrder, cloudSubmission):
+ """
+ * Add a Cloud Job Submission details to a compute resource
+ * App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
+ *
+ * @param computeResourceId
+ * The identifier of the compute resource to which JobSubmission protocol to be added
+ *
+ * @param priorityOrder
+ * Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+ *
+ * @param sshJobSubmission
+ * The SSHJobSubmission object to be added to the resource.
+ *
+ * @return status
+ * Returns the unique job submission id.
+ *
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - cloudSubmission
+ """
+ pass
+
+ def getCloudJobSubmission(self, authzToken, jobSubmissionId):
+ """
+ * This method returns cloudJobSubmission object
+ * @param jobSubmissionInterfaceI
+ * The identifier of the JobSubmission Interface to be retrieved.
+ * @return CloudJobSubmission instance
+ *
+
+ Parameters:
+ - authzToken
+ - jobSubmissionId
+ """
+ pass
+
+ def updateSSHJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, sshJobSubmission):
+ """
+ Update the given SSH Job Submission details
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be updated.
+
+ @param sshJobSubmission
+ The SSHJobSubmission object to be updated.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - sshJobSubmission
+ """
+ pass
+
+ def updateCloudJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, sshJobSubmission):
+ """
+ Update the cloud Job Submission details
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be updated.
+
+ @param cloudJobSubmission
+ The CloudJobSubmission object to be updated.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - sshJobSubmission
+ """
+ pass
+
+ def updateUnicoreJobSubmissionDetails(self, authzToken, jobSubmissionInterfaceId, unicoreJobSubmission):
+ """
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - unicoreJobSubmission
+ """
+ pass
+
+ def addLocalDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, localDataMovement):
+ """
+ Add a Local data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param localDataMovement
+ The LOCALDataMovement object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - localDataMovement
+ """
+ pass
+
+ def updateLocalDataMovementDetails(self, authzToken, dataMovementInterfaceId, localDataMovement):
+ """
+ Update the given Local data movement details
+
+ @param dataMovementInterfaceId
+ The identifier of the data movement Interface to be updated.
+
+ @param localDataMovement
+ The LOCALDataMovement object to be updated.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - localDataMovement
+ """
+ pass
+
+ def getLocalDataMovement(self, authzToken, dataMovementId):
+ """
+ * This method returns local datamovement object
+ * @param dataMovementId
+ * The identifier of the datamovement Interface to be retrieved.
+ * @return LOCALDataMovement instance
+ *
+
+ Parameters:
+ - authzToken
+ - dataMovementId
+ """
+ pass
+
+ def addSCPDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, scpDataMovement):
+ """
+ Add a SCP data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param scpDataMovement
+ The SCPDataMovement object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - scpDataMovement
+ """
+ pass
+
+ def updateSCPDataMovementDetails(self, authzToken, dataMovementInterfaceId, scpDataMovement):
+ """
+ Update the given scp data movement details
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param dataMovementInterfaceId
+ The identifier of the data movement Interface to be updated.
+
+ @param scpDataMovement
+ The SCPDataMovement object to be updated.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - scpDataMovement
+ """
+ pass
+
+ def getSCPDataMovement(self, authzToken, dataMovementId):
+ """
+ * This method returns SCP datamovement object
+ * @param dataMovementId
+ * The identifier of the datamovement Interface to be retrieved.
+ * @return SCPDataMovement instance
+ *
+
+ Parameters:
+ - authzToken
+ - dataMovementId
+ """
+ pass
+
+ def addUnicoreDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, unicoreDataMovement):
+ """
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - unicoreDataMovement
+ """
+ pass
+
+ def updateUnicoreDataMovementDetails(self, authzToken, dataMovementInterfaceId, unicoreDataMovement):
+ """
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - unicoreDataMovement
+ """
+ pass
+
+ def getUnicoreDataMovement(self, authzToken, dataMovementId):
+ """
+ Parameters:
+ - authzToken
+ - dataMovementId
+ """
+ pass
+
+ def addGridFTPDataMovementDetails(self, authzToken, computeResourceId, priorityOrder, gridFTPDataMovement):
+ """
+ Add a GridFTP data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param computeResourceId
+ The identifier of the compute resource to which JobSubmission protocol to be added
+
+ @param priorityOrder
+ Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
+
+ @param gridFTPDataMovement
+ The GridFTPDataMovement object to be added to the resource.
+
+ @return status
+ Returns the unique job submission id.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - priorityOrder
+ - gridFTPDataMovement
+ """
+ pass
+
+ def updateGridFTPDataMovementDetails(self, authzToken, dataMovementInterfaceId, gridFTPDataMovement):
+ """
+ Update the given GridFTP data movement details to a compute resource
+ App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
+
+ @param dataMovementInterfaceId
+ The identifier of the data movement Interface to be updated.
+
+ @param gridFTPDataMovement
+ The GridFTPDataMovement object to be updated.
+
+ @return status
+ Returns a success/failure of the updation.
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - gridFTPDataMovement
+ """
+ pass
+
+ def getGridFTPDataMovement(self, authzToken, dataMovementId):
+ """
+ * This method returns GridFTP datamovement object
+ * @param dataMovementId
+ * The identifier of the datamovement Interface to be retrieved.
+ * @return GridFTPDataMovement instance
+ *
+
+ Parameters:
+ - authzToken
+ - dataMovementId
+ """
+ pass
+
+ def changeJobSubmissionPriority(self, authzToken, jobSubmissionInterfaceId, newPriorityOrder):
+ """
+ Change the priority of a given job submisison interface
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be changed
+
+ @param priorityOrder
+ The new priority of the job manager interface.
+
+ @return status
+ Returns a success/failure of the change.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionInterfaceId
+ - newPriorityOrder
+ """
+ pass
+
+ def changeDataMovementPriority(self, authzToken, dataMovementInterfaceId, newPriorityOrder):
+ """
+ Change the priority of a given data movement interface
+
+ @param dataMovementInterfaceId
+ The identifier of the DataMovement Interface to be changed
+
+ @param priorityOrder
+ The new priority of the data movement interface.
+
+ @return status
+ Returns a success/failure of the change.
+
+
+ Parameters:
+ - authzToken
+ - dataMovementInterfaceId
+ - newPriorityOrder
+ """
+ pass
+
+ def changeJobSubmissionPriorities(self, authzToken, jobSubmissionPriorityMap):
+ """
+ Change the priorities of a given set of job submission interfaces
+
+ @param jobSubmissionPriorityMap
+ A Map of identifiers of the JobSubmission Interfaces and thier associated priorities to be set.
+
+ @return status
+ Returns a success/failure of the changes.
+
+
+ Parameters:
+ - authzToken
+ - jobSubmissionPriorityMap
+ """
+ pass
+
+ def changeDataMovementPriorities(self, authzToken, dataMovementPriorityMap):
+ """
+ Change the priorities of a given set of data movement interfaces
+
+ @param dataMovementPriorityMap
+ A Map of identifiers of the DataMovement Interfaces and thier associated priorities to be set.
+
+ @return status
+ Returns a success/failure of the changes.
+
+
+ Parameters:
+ - authzToken
+ - dataMovementPriorityMap
+ """
+ pass
+
+ def deleteJobSubmissionInterface(self, authzToken, computeResourceId, jobSubmissionInterfaceId):
+ """
+ Delete a given job submisison interface
+
+ @param jobSubmissionInterfaceId
+ The identifier of the JobSubmission Interface to be changed
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - jobSubmissionInterfaceId
+ """
+ pass
+
+ def deleteDataMovementInterface(self, authzToken, computeResourceId, dataMovementInterfaceId):
+ """
+ Delete a given data movement interface
+
+ @param dataMovementInterfaceId
+ The identifier of the DataMovement Interface to be changed
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - dataMovementInterfaceId
+ """
+ pass
+
+ def registerResourceJobManager(self, authzToken, resourceJobManager):
+ """
+ Parameters:
+ - authzToken
+ - resourceJobManager
+ """
+ pass
+
+ def updateResourceJobManager(self, authzToken, resourceJobManagerId, updatedResourceJobManager):
+ """
+ Parameters:
+ - authzToken
+ - resourceJobManagerId
+ - updatedResourceJobManager
+ """
+ pass
+
+ def getResourceJobManager(self, authzToken, resourceJobManagerId):
+ """
+ Parameters:
+ - authzToken
+ - resourceJobManagerId
+ """
+ pass
+
+ def deleteResourceJobManager(self, authzToken, resourceJobManagerId):
+ """
+ Parameters:
+ - authzToken
+ - resourceJobManagerId
+ """
+ pass
+
+ def deleteBatchQueue(self, authzToken, computeResourceId, queueName):
+ """
+ Parameters:
+ - authzToken
+ - computeResourceId
+ - queueName
+ """
+ pass
+
+ def registerGatewayResourceProfile(self, authzToken, gatewayResourceProfile):
+ """
+ Register a Gateway Resource Profile.
+
+ @param gatewayResourceProfile
+ Gateway Resource Profile Object.
+ The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding
+ resource profile.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - gatewayResourceProfile
+ """
+ pass
+
+ def getGatewayResourceProfile(self, authzToken, gatewayID):
+ """
+ Fetch the given Gateway Resource Profile.
+
+ @param gatewayID
+ The identifier for the requested gateway resource
+
+ @return gatewayResourceProfile
+ Gateway Resource Profile Object.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ """
+ pass
+
+ def updateGatewayResourceProfile(self, authzToken, gatewayID, gatewayResourceProfile):
+ """
+ Update a Gateway Resource Profile.
+
+ @param gatewayID
+ The identifier for the requested gateway resource to be updated.
+
+ @param gatewayResourceProfile
+ Gateway Resource Profile Object.
+
+ @return status
+ Returns a success/failure of the update.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - gatewayResourceProfile
+ """
+ pass
+
+ def deleteGatewayResourceProfile(self, authzToken, gatewayID):
+ """
+ Delete the given Gateway Resource Profile.
+
+ @param gatewayID
+ The identifier for the requested gateway resource to be deleted.
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ """
+ pass
+
+ def addGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId, computeResourcePreference):
+ """
+ Add a Compute Resource Preference to a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be added.
+
+ @param computeResourceId
+ Preferences related to a particular compute resource
+
+ @param computeResourcePreference
+ The ComputeResourcePreference object to be added to the resource profile.
+
+ @return status
+ Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+ Instead an update should be used.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - computeResourceId
+ - computeResourcePreference
+ """
+ pass
+
+ def addGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+ """
+ Parameters:
+ - authzToken
+ - gatewayID
+ - dataMoveId
+ - dataStoragePreference
+ """
+ pass
+
+ def getGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
+ """
+ Fetch a Compute Resource Preference of a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be requested
+
+ @param computeResourceId
+ Preferences related to a particular compute resource
+
+ @return computeResourcePreference
+ Returns the ComputeResourcePreference object.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - computeResourceId
+ """
+ pass
+
+ def getGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayID
+ - dataMoveId
+ """
+ pass
+
+ def getAllGatewayComputeResourcePreferences(self, authzToken, gatewayID):
+ """
+ Fetch all Compute Resource Preferences of a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be requested
+
+ @return computeResourcePreference
+ Returns the ComputeResourcePreference object.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ """
+ pass
+
+ def getAllGatewayDataStoragePreferences(self, authzToken, gatewayID):
+ """
+ Parameters:
+ - authzToken
+ - gatewayID
+ """
+ pass
+
+ def getAllGatewayResourceProfiles(self, authzToken):
+ """
+ Fetch all gateway profiles registered
+
+
+ Parameters:
+ - authzToken
+ """
+ pass
+
+ def updateGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId, computeResourcePreference):
+ """
+ Update a Compute Resource Preference to a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be updated.
+
+ @param computeResourceId
+ Preferences related to a particular compute resource
+
+ @param computeResourcePreference
+ The ComputeResourcePreference object to be updated to the resource profile.
+
+ @return status
+ Returns a success/failure of the updation.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - computeResourceId
+ - computeResourcePreference
+ """
+ pass
+
+ def updateGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId, dataStoragePreference):
+ """
+ Parameters:
+ - authzToken
+ - gatewayID
+ - dataMoveId
+ - dataStoragePreference
+ """
+ pass
+
+ def deleteGatewayComputeResourcePreference(self, authzToken, gatewayID, computeResourceId):
+ """
+ Delete the Compute Resource Preference of a registered gateway profile.
+
+ @param gatewayID
+ The identifier for the gateway profile to be deleted.
+
+ @param computeResourceId
+ Preferences related to a particular compute resource
+
+ @return status
+ Returns a success/failure of the deletion.
+
+
+ Parameters:
+ - authzToken
+ - gatewayID
+ - computeResourceId
+ """
+ pass
+
+ def deleteGatewayDataStoragePreference(self, authzToken, gatewayID, dataMoveId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayID
+ - dataMoveId
+ """
+ pass
+
+ def getAllWorkflows(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ pass
+
+ def getWorkflow(self, authzToken, workflowTemplateId):
+ """
+ Parameters:
+ - authzToken
+ - workflowTemplateId
+ """
+ pass
+
+ def deleteWorkflow(self, authzToken, workflowTemplateId):
+ """
+ Parameters:
+ - authzToken
+ - workflowTemplateId
+ """
+ pass
+
+ def registerWorkflow(self, authzToken, gatewayId, workflow):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ - workflow
+ """
+ pass
+
+ def updateWorkflow(self, authzToken, workflowTemplateId, workflow):
+ """
+ Parameters:
+ - authzToken
+ - workflowTemplateId
+ - workflow
+ """
+ pass
+
+ def getWorkflowTemplateId(self, authzToken, workflowName):
+ """
+ Parameters:
+ - authzToken
+ - workflowName
+ """
+ pass
+
+ def isWorkflowExistWithName(self, authzToken, workflowName):
+ """
+ Parameters:
+ - authzToken
+ - workflowName
+ """
+ pass
+
+
+class Client(Iface):
+ def __init__(self, iprot, oprot=None):
+ self._iprot = self._oprot = iprot
+ if oprot is not None:
+ self._oprot = oprot
+ self._seqid = 0
+
+ def getAPIVersion(self, authzToken):
+ """
+ Fetch Apache Airavata API version
+
+ Parameters:
+ - authzToken
+ """
+ self.send_getAPIVersion(authzToken)
+ return self.recv_getAPIVersion()
+
+ def send_getAPIVersion(self, authzToken):
+ self._oprot.writeMessageBegin('getAPIVersion', TMessageType.CALL, self._seqid)
+ args = getAPIVersion_args()
+ args.authzToken = authzToken
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getAPIVersion(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getAPIVersion_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getAPIVersion failed: unknown result");
+
+ def addGateway(self, authzToken, gateway):
+ """
+ Parameters:
+ - authzToken
+ - gateway
+ """
+ self.send_addGateway(authzToken, gateway)
+ return self.recv_addGateway()
+
+ def send_addGateway(self, authzToken, gateway):
+ self._oprot.writeMessageBegin('addGateway', TMessageType.CALL, self._seqid)
+ args = addGateway_args()
+ args.authzToken = authzToken
+ args.gateway = gateway
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_addGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = addGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "addGateway failed: unknown result");
+
+ def updateGateway(self, authzToken, gatewayId, updatedGateway):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ - updatedGateway
+ """
+ self.send_updateGateway(authzToken, gatewayId, updatedGateway)
+ self.recv_updateGateway()
+
+ def send_updateGateway(self, authzToken, gatewayId, updatedGateway):
+ self._oprot.writeMessageBegin('updateGateway', TMessageType.CALL, self._seqid)
+ args = updateGateway_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.updatedGateway = updatedGateway
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_updateGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = updateGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ return
+
+ def getGateway(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ self.send_getGateway(authzToken, gatewayId)
+ return self.recv_getGateway()
+
+ def send_getGateway(self, authzToken, gatewayId):
+ self._oprot.writeMessageBegin('getGateway', TMessageType.CALL, self._seqid)
+ args = getGateway_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getGateway failed: unknown result");
+
+ def deleteGateway(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ self.send_deleteGateway(authzToken, gatewayId)
+ return self.recv_deleteGateway()
+
+ def send_deleteGateway(self, authzToken, gatewayId):
+ self._oprot.writeMessageBegin('deleteGateway', TMessageType.CALL, self._seqid)
+ args = deleteGateway_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_deleteGateway(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = deleteGateway_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGateway failed: unknown result");
+
+ def getAllGateways(self, authzToken):
+ """
+ Parameters:
+ - authzToken
+ """
+ self.send_getAllGateways(authzToken)
+ return self.recv_getAllGateways()
+
+ def send_getAllGateways(self, authzToken):
+ self._oprot.writeMessageBegin('getAllGateways', TMessageType.CALL, self._seqid)
+ args = getAllGateways_args()
+ args.authzToken = authzToken
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getAllGateways(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getAllGateways_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGateways failed: unknown result");
+
+ def isGatewayExist(self, authzToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - gatewayId
+ """
+ self.send_isGatewayExist(authzToken, gatewayId)
+ return self.recv_isGatewayExist()
+
+ def send_isGatewayExist(self, authzToken, gatewayId):
+ self._oprot.writeMessageBegin('isGatewayExist', TMessageType.CALL, self._seqid)
+ args = isGatewayExist_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_isGatewayExist(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = isGatewayExist_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "isGatewayExist failed: unknown result");
+
+ def generateAndRegisterSSHKeys(self, authzToken, gatewayId, userName):
+ """
+ Generate and Register SSH Key Pair with Airavata Credential Store.
+
+ @param gatewayId
+ The identifier for the requested gateway.
+
+ @param userName
+ The User for which the credential should be registered. For community accounts, this user is the name of the
+ community user name. For computational resources, this user name need not be the same user name on resoruces.
+
+ @return airavataCredStoreToken
+ An SSH Key pair is generated and stored in the credential store and associated with users or community account
+ belonging to a gateway.
+
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ """
+ self.send_generateAndRegisterSSHKeys(authzToken, gatewayId, userName)
+ return self.recv_generateAndRegisterSSHKeys()
+
+ def send_generateAndRegisterSSHKeys(self, authzToken, gatewayId, userName):
+ self._oprot.writeMessageBegin('generateAndRegisterSSHKeys', TMessageType.CALL, self._seqid)
+ args = generateAndRegisterSSHKeys_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.userName = userName
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_generateAndRegisterSSHKeys(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = generateAndRegisterSSHKeys_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "generateAndRegisterSSHKeys failed: unknown result");
+
+ def getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+ """
+ Parameters:
+ - authzToken
+ - airavataCredStoreToken
+ - gatewayId
+ """
+ self.send_getSSHPubKey(authzToken, airavataCredStoreToken, gatewayId)
+ return self.recv_getSSHPubKey()
+
+ def send_getSSHPubKey(self, authzToken, airavataCredStoreToken, gatewayId):
+ self._oprot.writeMessageBegin('getSSHPubKey', TMessageType.CALL, self._seqid)
+ args = getSSHPubKey_args()
+ args.authzToken = authzToken
+ args.airavataCredStoreToken = airavataCredStoreToken
+ args.gatewayId = gatewayId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getSSHPubKey(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getSSHPubKey_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getSSHPubKey failed: unknown result");
+
+ def getAllUserSSHPubKeys(self, authzToken, userName):
+ """
+ Parameters:
+ - authzToken
+ - userName
+ """
+ self.send_getAllUserSSHPubKeys(authzToken, userName)
+ return self.recv_getAllUserSSHPubKeys()
+
+ def send_getAllUserSSHPubKeys(self, authzToken, userName):
+ self._oprot.writeMessageBegin('getAllUserSSHPubKeys', TMessageType.CALL, self._seqid)
+ args = getAllUserSSHPubKeys_args()
+ args.authzToken = authzToken
+ args.userName = userName
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getAllUserSSHPubKeys(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getAllUserSSHPubKeys_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllUserSSHPubKeys failed: unknown result");
+
+ def createProject(self, authzToken, gatewayId, project):
+ """
+ Creates a Project with basic metadata.
+ A Project is a container of experiments.
+
+ @param gatewayId
+ The identifier for the requested gateway.
+
+ @param Project
+ The Project Object described in the workspace_model
+
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - project
+ """
+ self.send_createProject(authzToken, gatewayId, project)
+ return self.recv_createProject()
+
+ def send_createProject(self, authzToken, gatewayId, project):
+ self._oprot.writeMessageBegin('createProject', TMessageType.CALL, self._seqid)
+ args = createProject_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.project = project
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_createProject(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = createProject_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "createProject failed: unknown result");
+
+ def updateProject(self, authzToken, projectId, updatedProject):
+ """
+ Update a Project
+
+
+ Parameters:
+ - authzToken
+ - projectId
+ - updatedProject
+ """
+ self.send_updateProject(authzToken, projectId, updatedProject)
+ self.recv_updateProject()
+
+ def send_updateProject(self, authzToken, projectId, updatedProject):
+ self._oprot.writeMessageBegin('updateProject', TMessageType.CALL, self._seqid)
+ args = updateProject_args()
+ args.authzToken = authzToken
+ args.projectId = projectId
+ args.updatedProject = updatedProject
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_updateProject(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = updateProject_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.pnfe is not None:
+ raise result.pnfe
+ if result.ae is not None:
+ raise result.ae
+ return
+
+ def getProject(self, authzToken, projectId):
+ """
+ Get a Project by ID
+
+
+ Parameters:
+ - authzToken
+ - projectId
+ """
+ self.send_getProject(authzToken, projectId)
+ return self.recv_getProject()
+
+ def send_getProject(self, authzToken, projectId):
+ self._oprot.writeMessageBegin('getProject', TMessageType.CALL, self._seqid)
+ args = getProject_args()
+ args.authzToken = authzToken
+ args.projectId = projectId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getProject(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getProject_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.pnfe is not None:
+ raise result.pnfe
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getProject failed: unknown result");
+
+ def deleteProject(self, authzToken, projectId):
+ """
+ Parameters:
+ - authzToken
+ - projectId
+ """
+ self.send_deleteProject(authzToken, projectId)
+ return self.recv_deleteProject()
+
+ def send_deleteProject(self, authzToken, projectId):
+ self._oprot.writeMessageBegin('deleteProject', TMessageType.CALL, self._seqid)
+ args = deleteProject_args()
+ args.authzToken = authzToken
+ args.projectId = projectId
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_deleteProject(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = deleteProject_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.pnfe is not None:
+ raise result.pnfe
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteProject failed: unknown result");
+
+ def getUserProjects(self, authzToken, gatewayId, userName, limit, offset):
+ """
+ * Get all Project by user with pagination. Results will be ordered based
+ * on creation time DESC
+ *
+ * @param gatewayId
+ * The identifier for the requested gateway.
+ * @param userName
+ * The identifier of the user
+ * @param limit
+ * The amount results to be fetched
+ * @param offset
+ * The starting point of the results to be fetched
+ *
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - limit
+ - offset
+ """
+ self.send_getUserProjects(authzToken, gatewayId, userName, limit, offset)
+ return self.recv_getUserProjects()
+
+ def send_getUserProjects(self, authzToken, gatewayId, userName, limit, offset):
+ self._oprot.writeMessageBegin('getUserProjects', TMessageType.CALL, self._seqid)
+ args = getUserProjects_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.userName = userName
+ args.limit = limit
+ args.offset = offset
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_getUserProjects(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = getUserProjects_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "getUserProjects failed: unknown result");
+
+ def searchProjectsByProjectName(self, authzToken, gatewayId, userName, projectName, limit, offset):
+ """
+ Get all Project for user by project name with pagination.Results will be ordered based
+ on creation time DESC
+
+ @param gatewayId
+ The identifier for the requested gateway.
+ @param userName
+ The identifier of the user
+ @param projectName
+ The name of the project on which the results to be fetched
+ @param limit
+ The amount results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - projectName
+ - limit
+ - offset
+ """
+ self.send_searchProjectsByProjectName(authzToken, gatewayId, userName, projectName, limit, offset)
+ return self.recv_searchProjectsByProjectName()
+
+ def send_searchProjectsByProjectName(self, authzToken, gatewayId, userName, projectName, limit, offset):
+ self._oprot.writeMessageBegin('searchProjectsByProjectName', TMessageType.CALL, self._seqid)
+ args = searchProjectsByProjectName_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.userName = userName
+ args.projectName = projectName
+ args.limit = limit
+ args.offset = offset
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_searchProjectsByProjectName(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = searchProjectsByProjectName_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "searchProjectsByProjectName failed: unknown result");
+
+ def searchProjectsByProjectDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+ """
+ Search and get all Projects for user by project description with pagination. Results
+ will be ordered based on creation time DESC
+
+ @param gatewayId
+ The identifier for the requested gateway.
+ @param userName
+ The identifier of the user
+ @param description
+ The description to be matched
+ @param limit
+ The amount results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - description
+ - limit
+ - offset
+ """
+ self.send_searchProjectsByProjectDesc(authzToken, gatewayId, userName, description, limit, offset)
+ return self.recv_searchProjectsByProjectDesc()
+
+ def send_searchProjectsByProjectDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+ self._oprot.writeMessageBegin('searchProjectsByProjectDesc', TMessageType.CALL, self._seqid)
+ args = searchProjectsByProjectDesc_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.userName = userName
+ args.description = description
+ args.limit = limit
+ args.offset = offset
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_searchProjectsByProjectDesc(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = searchProjectsByProjectDesc_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "searchProjectsByProjectDesc failed: unknown result");
+
+ def searchExperimentsByName(self, authzToken, gatewayId, userName, expName, limit, offset):
+ """
+ Search Experiments by experiment name with pagination. Results will be sorted
+ based on creation time DESC
+
+ @param gatewayId
+ Identifier of the requested gateway
+ @param userName
+ Username of the requested user
+ @param expName
+ Experiment name to be matched
+ @param limit
+ Amount of results to be fetched
+ @param offset
+ The starting point of the results to be fetched
+
+ Parameters:
+ - authzToken
+ - gatewayId
+ - userName
+ - expName
+ - limit
+ - offset
+ """
+ self.send_searchExperimentsByName(authzToken, gatewayId, userName, expName, limit, offset)
+ return self.recv_searchExperimentsByName()
+
+ def send_searchExperimentsByName(self, authzToken, gatewayId, userName, expName, limit, offset):
+ self._oprot.writeMessageBegin('searchExperimentsByName', TMessageType.CALL, self._seqid)
+ args = searchExperimentsByName_args()
+ args.authzToken = authzToken
+ args.gatewayId = gatewayId
+ args.userName = userName
+ args.expName = expName
+ args.limit = limit
+ args.offset = offset
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_searchExperimentsByName(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = searchExperimentsByName_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.ire is not None:
+ raise result.ire
+ if result.ace is not None:
+ raise result.ace
+ if result.ase is not None:
+ raise result.ase
+ if result.ae is not None:
+ raise result.ae
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "searchExperimentsByName failed: unknown result");
+
+ def searchExperimentsByDesc(self, authzToken, gatewayId, userName, description, limit, offset):
+ """
+ Search Experiments by experiment name with pagi
<TRUNCATED>