You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2017/09/21 17:00:05 UTC

[35/54] [abbrv] [partial] airavata-django-portal git commit: Moving admin_view JS into django app and moving django project back

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/apache/airavata/model/workspace/ttypes.py
----------------------------------------------------------------------
diff --git a/apache/airavata/model/workspace/ttypes.py b/apache/airavata/model/workspace/ttypes.py
new file mode 100644
index 0000000..c37b7b7
--- /dev/null
+++ b/apache/airavata/model/workspace/ttypes.py
@@ -0,0 +1,873 @@
+#
+# Autogenerated by Thrift Compiler (0.10.0)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
+import apache.airavata.model.commons.ttypes
+
+from thrift.transport import TTransport
+
+
+class GatewayApprovalStatus(object):
+    REQUESTED = 0
+    APPROVED = 1
+    ACTIVE = 2
+    DEACTIVATED = 3
+    CANCELLED = 4
+    DENIED = 5
+    CREATED = 6
+    DEPLOYED = 7
+
+    _VALUES_TO_NAMES = {
+        0: "REQUESTED",
+        1: "APPROVED",
+        2: "ACTIVE",
+        3: "DEACTIVATED",
+        4: "CANCELLED",
+        5: "DENIED",
+        6: "CREATED",
+        7: "DEPLOYED",
+    }
+
+    _NAMES_TO_VALUES = {
+        "REQUESTED": 0,
+        "APPROVED": 1,
+        "ACTIVE": 2,
+        "DEACTIVATED": 3,
+        "CANCELLED": 4,
+        "DENIED": 5,
+        "CREATED": 6,
+        "DEPLOYED": 7,
+    }
+
+
+class NotificationPriority(object):
+    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(object):
+    """
+    Attributes:
+     - groupName
+     - description
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'groupName', 'UTF8', None, ),  # 1
+        (2, TType.STRING, 'description', 'UTF8', None, ),  # 2
+    )
+
+    def __init__(self, groupName=None, description=None,):
+        self.groupName = groupName
+        self.description = description
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.groupName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.description = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('Group')
+        if self.groupName is not None:
+            oprot.writeFieldBegin('groupName', TType.STRING, 1)
+            oprot.writeString(self.groupName.encode('utf-8') if sys.version_info[0] == 2 else self.groupName)
+            oprot.writeFieldEnd()
+        if self.description is not None:
+            oprot.writeFieldBegin('description', TType.STRING, 2)
+            oprot.writeString(self.description.encode('utf-8') if sys.version_info[0] == 2 else self.description)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.groupName is None:
+            raise TProtocolException(message='Required field groupName is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class Project(object):
+    """
+    Attributes:
+     - projectID
+     - owner
+     - gatewayId
+     - name
+     - description
+     - creationTime
+     - sharedUsers
+     - sharedGroups
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'projectID', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
+        (2, TType.STRING, 'owner', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'name', 'UTF8', None, ),  # 4
+        (5, TType.STRING, 'description', 'UTF8', None, ),  # 5
+        (6, TType.I64, 'creationTime', None, None, ),  # 6
+        (7, TType.LIST, 'sharedUsers', (TType.STRING, 'UTF8', False), None, ),  # 7
+        (8, TType.LIST, 'sharedGroups', (TType.STRING, 'UTF8', False), 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._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.projectID = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.owner = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.name = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.STRING:
+                    self.description = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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 range(_size0):
+                        _elem5 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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 range(_size6):
+                        _elem11 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('Project')
+        if self.projectID is not None:
+            oprot.writeFieldBegin('projectID', TType.STRING, 1)
+            oprot.writeString(self.projectID.encode('utf-8') if sys.version_info[0] == 2 else self.projectID)
+            oprot.writeFieldEnd()
+        if self.owner is not None:
+            oprot.writeFieldBegin('owner', TType.STRING, 2)
+            oprot.writeString(self.owner.encode('utf-8') if sys.version_info[0] == 2 else self.owner)
+            oprot.writeFieldEnd()
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.name is not None:
+            oprot.writeFieldBegin('name', TType.STRING, 4)
+            oprot.writeString(self.name.encode('utf-8') if sys.version_info[0] == 2 else self.name)
+            oprot.writeFieldEnd()
+        if self.description is not None:
+            oprot.writeFieldBegin('description', TType.STRING, 5)
+            oprot.writeString(self.description.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else 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.encode('utf-8') if sys.version_info[0] == 2 else iter13)
+            oprot.writeListEnd()
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.projectID is None:
+            raise TProtocolException(message='Required field projectID is unset!')
+        if self.owner is None:
+            raise TProtocolException(message='Required field owner is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.name is None:
+            raise TProtocolException(message='Required field name is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class User(object):
+    """
+    Attributes:
+     - airavataInternalUserId
+     - userName
+     - gatewayId
+     - firstName
+     - lastName
+     - email
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'airavataInternalUserId', 'UTF8', "DO_NOT_SET_AT_CLIENTS", ),  # 1
+        (2, TType.STRING, 'userName', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'firstName', 'UTF8', None, ),  # 4
+        (5, TType.STRING, 'lastName', 'UTF8', None, ),  # 5
+        (6, TType.STRING, 'email', 'UTF8', 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._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.airavataInternalUserId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.userName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.firstName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.STRING:
+                    self.lastName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRING:
+                    self.email = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('User')
+        if self.airavataInternalUserId is not None:
+            oprot.writeFieldBegin('airavataInternalUserId', TType.STRING, 1)
+            oprot.writeString(self.airavataInternalUserId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataInternalUserId)
+            oprot.writeFieldEnd()
+        if self.userName is not None:
+            oprot.writeFieldBegin('userName', TType.STRING, 2)
+            oprot.writeString(self.userName.encode('utf-8') if sys.version_info[0] == 2 else self.userName)
+            oprot.writeFieldEnd()
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.firstName is not None:
+            oprot.writeFieldBegin('firstName', TType.STRING, 4)
+            oprot.writeString(self.firstName.encode('utf-8') if sys.version_info[0] == 2 else self.firstName)
+            oprot.writeFieldEnd()
+        if self.lastName is not None:
+            oprot.writeFieldBegin('lastName', TType.STRING, 5)
+            oprot.writeString(self.lastName.encode('utf-8') if sys.version_info[0] == 2 else self.lastName)
+            oprot.writeFieldEnd()
+        if self.email is not None:
+            oprot.writeFieldBegin('email', TType.STRING, 6)
+            oprot.writeString(self.email.encode('utf-8') if sys.version_info[0] == 2 else self.email)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.airavataInternalUserId is None:
+            raise TProtocolException(message='Required field airavataInternalUserId is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class Gateway(object):
+    """
+    Attributes:
+     - airavataInternalGatewayId
+     - gatewayId
+     - gatewayApprovalStatus
+     - gatewayName
+     - domain
+     - emailAddress
+     - gatewayAcronym
+     - gatewayURL
+     - gatewayPublicAbstract
+     - reviewProposalDescription
+     - gatewayAdminFirstName
+     - gatewayAdminLastName
+     - gatewayAdminEmail
+     - identityServerUserName
+     - identityServerPasswordToken
+     - declinedReason
+     - oauthClientId
+     - oauthClientSecret
+     - requestCreationTime
+     - requesterUsername
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'airavataInternalGatewayId', 'UTF8', None, ),  # 1
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.I32, 'gatewayApprovalStatus', None, None, ),  # 3
+        (4, TType.STRING, 'gatewayName', 'UTF8', None, ),  # 4
+        (5, TType.STRING, 'domain', 'UTF8', None, ),  # 5
+        (6, TType.STRING, 'emailAddress', 'UTF8', None, ),  # 6
+        (7, TType.STRING, 'gatewayAcronym', 'UTF8', None, ),  # 7
+        (8, TType.STRING, 'gatewayURL', 'UTF8', None, ),  # 8
+        (9, TType.STRING, 'gatewayPublicAbstract', 'UTF8', None, ),  # 9
+        (10, TType.STRING, 'reviewProposalDescription', 'UTF8', None, ),  # 10
+        (11, TType.STRING, 'gatewayAdminFirstName', 'UTF8', None, ),  # 11
+        (12, TType.STRING, 'gatewayAdminLastName', 'UTF8', None, ),  # 12
+        (13, TType.STRING, 'gatewayAdminEmail', 'UTF8', None, ),  # 13
+        (14, TType.STRING, 'identityServerUserName', 'UTF8', None, ),  # 14
+        (15, TType.STRING, 'identityServerPasswordToken', 'UTF8', None, ),  # 15
+        (16, TType.STRING, 'declinedReason', 'UTF8', None, ),  # 16
+        (17, TType.STRING, 'oauthClientId', 'UTF8', None, ),  # 17
+        (18, TType.STRING, 'oauthClientSecret', 'UTF8', None, ),  # 18
+        (19, TType.I64, 'requestCreationTime', None, None, ),  # 19
+        (20, TType.STRING, 'requesterUsername', 'UTF8', None, ),  # 20
+    )
+
+    def __init__(self, airavataInternalGatewayId=None, 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, declinedReason=None, oauthClientId=None, oauthClientSecret=None, requestCreationTime=None, requesterUsername=None,):
+        self.airavataInternalGatewayId = airavataInternalGatewayId
+        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
+        self.declinedReason = declinedReason
+        self.oauthClientId = oauthClientId
+        self.oauthClientSecret = oauthClientSecret
+        self.requestCreationTime = requestCreationTime
+        self.requesterUsername = requesterUsername
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.airavataInternalGatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.I32:
+                    self.gatewayApprovalStatus = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.gatewayName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.STRING:
+                    self.domain = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRING:
+                    self.emailAddress = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 7:
+                if ftype == TType.STRING:
+                    self.gatewayAcronym = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 8:
+                if ftype == TType.STRING:
+                    self.gatewayURL = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 9:
+                if ftype == TType.STRING:
+                    self.gatewayPublicAbstract = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 10:
+                if ftype == TType.STRING:
+                    self.reviewProposalDescription = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 11:
+                if ftype == TType.STRING:
+                    self.gatewayAdminFirstName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 12:
+                if ftype == TType.STRING:
+                    self.gatewayAdminLastName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 13:
+                if ftype == TType.STRING:
+                    self.gatewayAdminEmail = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 14:
+                if ftype == TType.STRING:
+                    self.identityServerUserName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 15:
+                if ftype == TType.STRING:
+                    self.identityServerPasswordToken = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 16:
+                if ftype == TType.STRING:
+                    self.declinedReason = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 17:
+                if ftype == TType.STRING:
+                    self.oauthClientId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 18:
+                if ftype == TType.STRING:
+                    self.oauthClientSecret = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 19:
+                if ftype == TType.I64:
+                    self.requestCreationTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 20:
+                if ftype == TType.STRING:
+                    self.requesterUsername = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('Gateway')
+        if self.airavataInternalGatewayId is not None:
+            oprot.writeFieldBegin('airavataInternalGatewayId', TType.STRING, 1)
+            oprot.writeString(self.airavataInternalGatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.airavataInternalGatewayId)
+            oprot.writeFieldEnd()
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.gatewayApprovalStatus is not None:
+            oprot.writeFieldBegin('gatewayApprovalStatus', TType.I32, 3)
+            oprot.writeI32(self.gatewayApprovalStatus)
+            oprot.writeFieldEnd()
+        if self.gatewayName is not None:
+            oprot.writeFieldBegin('gatewayName', TType.STRING, 4)
+            oprot.writeString(self.gatewayName.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayName)
+            oprot.writeFieldEnd()
+        if self.domain is not None:
+            oprot.writeFieldBegin('domain', TType.STRING, 5)
+            oprot.writeString(self.domain.encode('utf-8') if sys.version_info[0] == 2 else self.domain)
+            oprot.writeFieldEnd()
+        if self.emailAddress is not None:
+            oprot.writeFieldBegin('emailAddress', TType.STRING, 6)
+            oprot.writeString(self.emailAddress.encode('utf-8') if sys.version_info[0] == 2 else self.emailAddress)
+            oprot.writeFieldEnd()
+        if self.gatewayAcronym is not None:
+            oprot.writeFieldBegin('gatewayAcronym', TType.STRING, 7)
+            oprot.writeString(self.gatewayAcronym.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayAcronym)
+            oprot.writeFieldEnd()
+        if self.gatewayURL is not None:
+            oprot.writeFieldBegin('gatewayURL', TType.STRING, 8)
+            oprot.writeString(self.gatewayURL.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayURL)
+            oprot.writeFieldEnd()
+        if self.gatewayPublicAbstract is not None:
+            oprot.writeFieldBegin('gatewayPublicAbstract', TType.STRING, 9)
+            oprot.writeString(self.gatewayPublicAbstract.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayPublicAbstract)
+            oprot.writeFieldEnd()
+        if self.reviewProposalDescription is not None:
+            oprot.writeFieldBegin('reviewProposalDescription', TType.STRING, 10)
+            oprot.writeString(self.reviewProposalDescription.encode('utf-8') if sys.version_info[0] == 2 else self.reviewProposalDescription)
+            oprot.writeFieldEnd()
+        if self.gatewayAdminFirstName is not None:
+            oprot.writeFieldBegin('gatewayAdminFirstName', TType.STRING, 11)
+            oprot.writeString(self.gatewayAdminFirstName.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayAdminFirstName)
+            oprot.writeFieldEnd()
+        if self.gatewayAdminLastName is not None:
+            oprot.writeFieldBegin('gatewayAdminLastName', TType.STRING, 12)
+            oprot.writeString(self.gatewayAdminLastName.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayAdminLastName)
+            oprot.writeFieldEnd()
+        if self.gatewayAdminEmail is not None:
+            oprot.writeFieldBegin('gatewayAdminEmail', TType.STRING, 13)
+            oprot.writeString(self.gatewayAdminEmail.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayAdminEmail)
+            oprot.writeFieldEnd()
+        if self.identityServerUserName is not None:
+            oprot.writeFieldBegin('identityServerUserName', TType.STRING, 14)
+            oprot.writeString(self.identityServerUserName.encode('utf-8') if sys.version_info[0] == 2 else self.identityServerUserName)
+            oprot.writeFieldEnd()
+        if self.identityServerPasswordToken is not None:
+            oprot.writeFieldBegin('identityServerPasswordToken', TType.STRING, 15)
+            oprot.writeString(self.identityServerPasswordToken.encode('utf-8') if sys.version_info[0] == 2 else self.identityServerPasswordToken)
+            oprot.writeFieldEnd()
+        if self.declinedReason is not None:
+            oprot.writeFieldBegin('declinedReason', TType.STRING, 16)
+            oprot.writeString(self.declinedReason.encode('utf-8') if sys.version_info[0] == 2 else self.declinedReason)
+            oprot.writeFieldEnd()
+        if self.oauthClientId is not None:
+            oprot.writeFieldBegin('oauthClientId', TType.STRING, 17)
+            oprot.writeString(self.oauthClientId.encode('utf-8') if sys.version_info[0] == 2 else self.oauthClientId)
+            oprot.writeFieldEnd()
+        if self.oauthClientSecret is not None:
+            oprot.writeFieldBegin('oauthClientSecret', TType.STRING, 18)
+            oprot.writeString(self.oauthClientSecret.encode('utf-8') if sys.version_info[0] == 2 else self.oauthClientSecret)
+            oprot.writeFieldEnd()
+        if self.requestCreationTime is not None:
+            oprot.writeFieldBegin('requestCreationTime', TType.I64, 19)
+            oprot.writeI64(self.requestCreationTime)
+            oprot.writeFieldEnd()
+        if self.requesterUsername is not None:
+            oprot.writeFieldBegin('requesterUsername', TType.STRING, 20)
+            oprot.writeString(self.requesterUsername.encode('utf-8') if sys.version_info[0] == 2 else self.requesterUsername)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.gatewayApprovalStatus is None:
+            raise TProtocolException(message='Required field gatewayApprovalStatus is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class Notification(object):
+    """
+    Attributes:
+     - notificationId
+     - gatewayId
+     - title
+     - notificationMessage
+     - creationTime
+     - publishedTime
+     - expirationTime
+     - priority
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'notificationId', 'UTF8', None, ),  # 1
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'title', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'notificationMessage', 'UTF8', 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._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.notificationId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.title = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.notificationMessage = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else 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._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('Notification')
+        if self.notificationId is not None:
+            oprot.writeFieldBegin('notificationId', TType.STRING, 1)
+            oprot.writeString(self.notificationId.encode('utf-8') if sys.version_info[0] == 2 else self.notificationId)
+            oprot.writeFieldEnd()
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.title is not None:
+            oprot.writeFieldBegin('title', TType.STRING, 3)
+            oprot.writeString(self.title.encode('utf-8') if sys.version_info[0] == 2 else self.title)
+            oprot.writeFieldEnd()
+        if self.notificationMessage is not None:
+            oprot.writeFieldBegin('notificationMessage', TType.STRING, 4)
+            oprot.writeString(self.notificationMessage.encode('utf-8') if sys.version_info[0] == 2 else 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 TProtocolException(message='Required field gatewayId is unset!')
+        if self.title is None:
+            raise TProtocolException(message='Required field title is unset!')
+        if self.notificationMessage is None:
+            raise TProtocolException(message='Required field notificationMessage is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/credential_store_data_models/__init__.py
----------------------------------------------------------------------
diff --git a/credential_store_data_models/__init__.py b/credential_store_data_models/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/credential_store_data_models/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/credential_store_data_models/constants.py
----------------------------------------------------------------------
diff --git a/credential_store_data_models/constants.py b/credential_store_data_models/constants.py
new file mode 100644
index 0000000..2b09fa9
--- /dev/null
+++ b/credential_store_data_models/constants.py
@@ -0,0 +1,13 @@
+#
+# Autogenerated by Thrift Compiler (0.10.0)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
+from .ttypes import *
+DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/credential_store_data_models/ttypes.py
----------------------------------------------------------------------
diff --git a/credential_store_data_models/ttypes.py b/credential_store_data_models/ttypes.py
new file mode 100644
index 0000000..7d6cadf
--- /dev/null
+++ b/credential_store_data_models/ttypes.py
@@ -0,0 +1,729 @@
+#
+# Autogenerated by Thrift Compiler (0.10.0)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
+from thrift.protocol.TProtocol import TProtocolException
+import sys
+
+from thrift.transport import TTransport
+
+
+class CredentialOwnerType(object):
+    GATEWAY = 0
+    USER = 1
+
+    _VALUES_TO_NAMES = {
+        0: "GATEWAY",
+        1: "USER",
+    }
+
+    _NAMES_TO_VALUES = {
+        "GATEWAY": 0,
+        "USER": 1,
+    }
+
+
+class SummaryType(object):
+    """
+    Data Types supported in Airavata. The primitive data types
+
+    """
+    SSH = 0
+    PASSWD = 1
+    CERT = 2
+
+    _VALUES_TO_NAMES = {
+        0: "SSH",
+        1: "PASSWD",
+        2: "CERT",
+    }
+
+    _NAMES_TO_VALUES = {
+        "SSH": 0,
+        "PASSWD": 1,
+        "CERT": 2,
+    }
+
+
+class SSHCredential(object):
+    """
+    Attributes:
+     - gatewayId
+     - username
+     - passphrase
+     - publicKey
+     - privateKey
+     - persistedTime
+     - token
+     - description
+     - credentialOwnerType
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 1
+        (2, TType.STRING, 'username', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'passphrase', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'publicKey', 'UTF8', None, ),  # 4
+        (5, TType.STRING, 'privateKey', 'UTF8', None, ),  # 5
+        (6, TType.I64, 'persistedTime', None, None, ),  # 6
+        (7, TType.STRING, 'token', 'UTF8', None, ),  # 7
+        (8, TType.STRING, 'description', 'UTF8', None, ),  # 8
+        (9, TType.I32, 'credentialOwnerType', None, 0, ),  # 9
+    )
+
+    def __init__(self, gatewayId=None, username=None, passphrase=None, publicKey=None, privateKey=None, persistedTime=None, token=None, description=None, credentialOwnerType=thrift_spec[9][4],):
+        self.gatewayId = gatewayId
+        self.username = username
+        self.passphrase = passphrase
+        self.publicKey = publicKey
+        self.privateKey = privateKey
+        self.persistedTime = persistedTime
+        self.token = token
+        self.description = description
+        self.credentialOwnerType = credentialOwnerType
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.username = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.passphrase = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.publicKey = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.STRING:
+                    self.privateKey = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.I64:
+                    self.persistedTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 7:
+                if ftype == TType.STRING:
+                    self.token = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 8:
+                if ftype == TType.STRING:
+                    self.description = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 9:
+                if ftype == TType.I32:
+                    self.credentialOwnerType = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('SSHCredential')
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 1)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.username is not None:
+            oprot.writeFieldBegin('username', TType.STRING, 2)
+            oprot.writeString(self.username.encode('utf-8') if sys.version_info[0] == 2 else self.username)
+            oprot.writeFieldEnd()
+        if self.passphrase is not None:
+            oprot.writeFieldBegin('passphrase', TType.STRING, 3)
+            oprot.writeString(self.passphrase.encode('utf-8') if sys.version_info[0] == 2 else self.passphrase)
+            oprot.writeFieldEnd()
+        if self.publicKey is not None:
+            oprot.writeFieldBegin('publicKey', TType.STRING, 4)
+            oprot.writeString(self.publicKey.encode('utf-8') if sys.version_info[0] == 2 else self.publicKey)
+            oprot.writeFieldEnd()
+        if self.privateKey is not None:
+            oprot.writeFieldBegin('privateKey', TType.STRING, 5)
+            oprot.writeString(self.privateKey.encode('utf-8') if sys.version_info[0] == 2 else self.privateKey)
+            oprot.writeFieldEnd()
+        if self.persistedTime is not None:
+            oprot.writeFieldBegin('persistedTime', TType.I64, 6)
+            oprot.writeI64(self.persistedTime)
+            oprot.writeFieldEnd()
+        if self.token is not None:
+            oprot.writeFieldBegin('token', TType.STRING, 7)
+            oprot.writeString(self.token.encode('utf-8') if sys.version_info[0] == 2 else self.token)
+            oprot.writeFieldEnd()
+        if self.description is not None:
+            oprot.writeFieldBegin('description', TType.STRING, 8)
+            oprot.writeString(self.description.encode('utf-8') if sys.version_info[0] == 2 else self.description)
+            oprot.writeFieldEnd()
+        if self.credentialOwnerType is not None:
+            oprot.writeFieldBegin('credentialOwnerType', TType.I32, 9)
+            oprot.writeI32(self.credentialOwnerType)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.username is None:
+            raise TProtocolException(message='Required field username is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class CredentialSummary(object):
+    """
+    Attributes:
+     - type
+     - gatewayId
+     - username
+     - publicKey
+     - persistedTime
+     - token
+     - description
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.I32, 'type', None, None, ),  # 1
+        (2, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'username', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'publicKey', 'UTF8', None, ),  # 4
+        (5, TType.I64, 'persistedTime', None, None, ),  # 5
+        (6, TType.STRING, 'token', 'UTF8', None, ),  # 6
+        (7, TType.STRING, 'description', 'UTF8', None, ),  # 7
+    )
+
+    def __init__(self, type=None, gatewayId=None, username=None, publicKey=None, persistedTime=None, token=None, description=None,):
+        self.type = type
+        self.gatewayId = gatewayId
+        self.username = username
+        self.publicKey = publicKey
+        self.persistedTime = persistedTime
+        self.token = token
+        self.description = description
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.I32:
+                    self.type = iprot.readI32()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.username = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.publicKey = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.I64:
+                    self.persistedTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRING:
+                    self.token = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 7:
+                if ftype == TType.STRING:
+                    self.description = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('CredentialSummary')
+        if self.type is not None:
+            oprot.writeFieldBegin('type', TType.I32, 1)
+            oprot.writeI32(self.type)
+            oprot.writeFieldEnd()
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.username is not None:
+            oprot.writeFieldBegin('username', TType.STRING, 3)
+            oprot.writeString(self.username.encode('utf-8') if sys.version_info[0] == 2 else self.username)
+            oprot.writeFieldEnd()
+        if self.publicKey is not None:
+            oprot.writeFieldBegin('publicKey', TType.STRING, 4)
+            oprot.writeString(self.publicKey.encode('utf-8') if sys.version_info[0] == 2 else self.publicKey)
+            oprot.writeFieldEnd()
+        if self.persistedTime is not None:
+            oprot.writeFieldBegin('persistedTime', TType.I64, 5)
+            oprot.writeI64(self.persistedTime)
+            oprot.writeFieldEnd()
+        if self.token is not None:
+            oprot.writeFieldBegin('token', TType.STRING, 6)
+            oprot.writeString(self.token.encode('utf-8') if sys.version_info[0] == 2 else self.token)
+            oprot.writeFieldEnd()
+        if self.description is not None:
+            oprot.writeFieldBegin('description', TType.STRING, 7)
+            oprot.writeString(self.description.encode('utf-8') if sys.version_info[0] == 2 else self.description)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.type is None:
+            raise TProtocolException(message='Required field type is unset!')
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.username is None:
+            raise TProtocolException(message='Required field username is unset!')
+        if self.token is None:
+            raise TProtocolException(message='Required field token is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class CommunityUser(object):
+    """
+    Attributes:
+     - gatewayName
+     - username
+     - userEmail
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'gatewayName', 'UTF8', None, ),  # 1
+        (2, TType.STRING, 'username', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'userEmail', 'UTF8', None, ),  # 3
+    )
+
+    def __init__(self, gatewayName=None, username=None, userEmail=None,):
+        self.gatewayName = gatewayName
+        self.username = username
+        self.userEmail = userEmail
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.gatewayName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.username = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.userEmail = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('CommunityUser')
+        if self.gatewayName is not None:
+            oprot.writeFieldBegin('gatewayName', TType.STRING, 1)
+            oprot.writeString(self.gatewayName.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayName)
+            oprot.writeFieldEnd()
+        if self.username is not None:
+            oprot.writeFieldBegin('username', TType.STRING, 2)
+            oprot.writeString(self.username.encode('utf-8') if sys.version_info[0] == 2 else self.username)
+            oprot.writeFieldEnd()
+        if self.userEmail is not None:
+            oprot.writeFieldBegin('userEmail', TType.STRING, 3)
+            oprot.writeString(self.userEmail.encode('utf-8') if sys.version_info[0] == 2 else self.userEmail)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.gatewayName is None:
+            raise TProtocolException(message='Required field gatewayName is unset!')
+        if self.username is None:
+            raise TProtocolException(message='Required field username is unset!')
+        if self.userEmail is None:
+            raise TProtocolException(message='Required field userEmail is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class CertificateCredential(object):
+    """
+    Attributes:
+     - communityUser
+     - x509Cert
+     - notAfter
+     - privateKey
+     - lifeTime
+     - notBefore
+     - persistedTime
+     - token
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRUCT, 'communityUser', (CommunityUser, CommunityUser.thrift_spec), None, ),  # 1
+        (2, TType.STRING, 'x509Cert', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'notAfter', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'privateKey', 'UTF8', None, ),  # 4
+        (5, TType.I64, 'lifeTime', None, None, ),  # 5
+        (6, TType.STRING, 'notBefore', 'UTF8', None, ),  # 6
+        (7, TType.I64, 'persistedTime', None, None, ),  # 7
+        (8, TType.STRING, 'token', 'UTF8', None, ),  # 8
+    )
+
+    def __init__(self, communityUser=None, x509Cert=None, notAfter=None, privateKey=None, lifeTime=None, notBefore=None, persistedTime=None, token=None,):
+        self.communityUser = communityUser
+        self.x509Cert = x509Cert
+        self.notAfter = notAfter
+        self.privateKey = privateKey
+        self.lifeTime = lifeTime
+        self.notBefore = notBefore
+        self.persistedTime = persistedTime
+        self.token = token
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRUCT:
+                    self.communityUser = CommunityUser()
+                    self.communityUser.read(iprot)
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.x509Cert = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.notAfter = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.privateKey = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.I64:
+                    self.lifeTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRING:
+                    self.notBefore = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 7:
+                if ftype == TType.I64:
+                    self.persistedTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 8:
+                if ftype == TType.STRING:
+                    self.token = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('CertificateCredential')
+        if self.communityUser is not None:
+            oprot.writeFieldBegin('communityUser', TType.STRUCT, 1)
+            self.communityUser.write(oprot)
+            oprot.writeFieldEnd()
+        if self.x509Cert is not None:
+            oprot.writeFieldBegin('x509Cert', TType.STRING, 2)
+            oprot.writeString(self.x509Cert.encode('utf-8') if sys.version_info[0] == 2 else self.x509Cert)
+            oprot.writeFieldEnd()
+        if self.notAfter is not None:
+            oprot.writeFieldBegin('notAfter', TType.STRING, 3)
+            oprot.writeString(self.notAfter.encode('utf-8') if sys.version_info[0] == 2 else self.notAfter)
+            oprot.writeFieldEnd()
+        if self.privateKey is not None:
+            oprot.writeFieldBegin('privateKey', TType.STRING, 4)
+            oprot.writeString(self.privateKey.encode('utf-8') if sys.version_info[0] == 2 else self.privateKey)
+            oprot.writeFieldEnd()
+        if self.lifeTime is not None:
+            oprot.writeFieldBegin('lifeTime', TType.I64, 5)
+            oprot.writeI64(self.lifeTime)
+            oprot.writeFieldEnd()
+        if self.notBefore is not None:
+            oprot.writeFieldBegin('notBefore', TType.STRING, 6)
+            oprot.writeString(self.notBefore.encode('utf-8') if sys.version_info[0] == 2 else self.notBefore)
+            oprot.writeFieldEnd()
+        if self.persistedTime is not None:
+            oprot.writeFieldBegin('persistedTime', TType.I64, 7)
+            oprot.writeI64(self.persistedTime)
+            oprot.writeFieldEnd()
+        if self.token is not None:
+            oprot.writeFieldBegin('token', TType.STRING, 8)
+            oprot.writeString(self.token.encode('utf-8') if sys.version_info[0] == 2 else self.token)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.communityUser is None:
+            raise TProtocolException(message='Required field communityUser is unset!')
+        if self.x509Cert is None:
+            raise TProtocolException(message='Required field x509Cert is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
+class PasswordCredential(object):
+    """
+    Attributes:
+     - gatewayId
+     - portalUserName
+     - loginUserName
+     - password
+     - description
+     - persistedTime
+     - token
+    """
+
+    thrift_spec = (
+        None,  # 0
+        (1, TType.STRING, 'gatewayId', 'UTF8', None, ),  # 1
+        (2, TType.STRING, 'portalUserName', 'UTF8', None, ),  # 2
+        (3, TType.STRING, 'loginUserName', 'UTF8', None, ),  # 3
+        (4, TType.STRING, 'password', 'UTF8', None, ),  # 4
+        (5, TType.STRING, 'description', 'UTF8', None, ),  # 5
+        (6, TType.I64, 'persistedTime', None, None, ),  # 6
+        (7, TType.STRING, 'token', 'UTF8', None, ),  # 7
+    )
+
+    def __init__(self, gatewayId=None, portalUserName=None, loginUserName=None, password=None, description=None, persistedTime=None, token=None,):
+        self.gatewayId = gatewayId
+        self.portalUserName = portalUserName
+        self.loginUserName = loginUserName
+        self.password = password
+        self.description = description
+        self.persistedTime = persistedTime
+        self.token = token
+
+    def read(self, iprot):
+        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
+            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
+            return
+        iprot.readStructBegin()
+        while True:
+            (fname, ftype, fid) = iprot.readFieldBegin()
+            if ftype == TType.STOP:
+                break
+            if fid == 1:
+                if ftype == TType.STRING:
+                    self.gatewayId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 2:
+                if ftype == TType.STRING:
+                    self.portalUserName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 3:
+                if ftype == TType.STRING:
+                    self.loginUserName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 4:
+                if ftype == TType.STRING:
+                    self.password = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 5:
+                if ftype == TType.STRING:
+                    self.description = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.I64:
+                    self.persistedTime = iprot.readI64()
+                else:
+                    iprot.skip(ftype)
+            elif fid == 7:
+                if ftype == TType.STRING:
+                    self.token = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
+            else:
+                iprot.skip(ftype)
+            iprot.readFieldEnd()
+        iprot.readStructEnd()
+
+    def write(self, oprot):
+        if oprot._fast_encode is not None and self.thrift_spec is not None:
+            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
+            return
+        oprot.writeStructBegin('PasswordCredential')
+        if self.gatewayId is not None:
+            oprot.writeFieldBegin('gatewayId', TType.STRING, 1)
+            oprot.writeString(self.gatewayId.encode('utf-8') if sys.version_info[0] == 2 else self.gatewayId)
+            oprot.writeFieldEnd()
+        if self.portalUserName is not None:
+            oprot.writeFieldBegin('portalUserName', TType.STRING, 2)
+            oprot.writeString(self.portalUserName.encode('utf-8') if sys.version_info[0] == 2 else self.portalUserName)
+            oprot.writeFieldEnd()
+        if self.loginUserName is not None:
+            oprot.writeFieldBegin('loginUserName', TType.STRING, 3)
+            oprot.writeString(self.loginUserName.encode('utf-8') if sys.version_info[0] == 2 else self.loginUserName)
+            oprot.writeFieldEnd()
+        if self.password is not None:
+            oprot.writeFieldBegin('password', TType.STRING, 4)
+            oprot.writeString(self.password.encode('utf-8') if sys.version_info[0] == 2 else self.password)
+            oprot.writeFieldEnd()
+        if self.description is not None:
+            oprot.writeFieldBegin('description', TType.STRING, 5)
+            oprot.writeString(self.description.encode('utf-8') if sys.version_info[0] == 2 else self.description)
+            oprot.writeFieldEnd()
+        if self.persistedTime is not None:
+            oprot.writeFieldBegin('persistedTime', TType.I64, 6)
+            oprot.writeI64(self.persistedTime)
+            oprot.writeFieldEnd()
+        if self.token is not None:
+            oprot.writeFieldBegin('token', TType.STRING, 7)
+            oprot.writeString(self.token.encode('utf-8') if sys.version_info[0] == 2 else self.token)
+            oprot.writeFieldEnd()
+        oprot.writeFieldStop()
+        oprot.writeStructEnd()
+
+    def validate(self):
+        if self.gatewayId is None:
+            raise TProtocolException(message='Required field gatewayId is unset!')
+        if self.portalUserName is None:
+            raise TProtocolException(message='Required field portalUserName is unset!')
+        if self.loginUserName is None:
+            raise TProtocolException(message='Required field loginUserName is unset!')
+        if self.password is None:
+            raise TProtocolException(message='Required field password is unset!')
+        return
+
+    def __repr__(self):
+        L = ['%s=%r' % (key, value)
+             for key, value in self.__dict__.items()]
+        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+    def __eq__(self, other):
+        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/__init__.py
----------------------------------------------------------------------
diff --git a/django_airavata/__init__.py b/django_airavata/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/__init__.py
----------------------------------------------------------------------
diff --git a/django_airavata/apps/__init__.py b/django_airavata/apps/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/.babelrc
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/.babelrc b/django_airavata/apps/admin/.babelrc
new file mode 100644
index 0000000..c06df4d
--- /dev/null
+++ b/django_airavata/apps/admin/.babelrc
@@ -0,0 +1,18 @@
+{
+  "presets": [
+    ["env", {
+      "modules": false,
+      "targets": {
+        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
+      }
+    }],
+    "stage-2"
+  ],
+  "plugins": ["transform-runtime"],
+  "env": {
+    "test": {
+      "presets": ["env", "stage-2"],
+      "plugins": ["istanbul"]
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/.editorconfig
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/.editorconfig b/django_airavata/apps/admin/.editorconfig
new file mode 100644
index 0000000..9d08a1a
--- /dev/null
+++ b/django_airavata/apps/admin/.editorconfig
@@ -0,0 +1,9 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/.gitignore
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/.gitignore b/django_airavata/apps/admin/.gitignore
new file mode 100644
index 0000000..1622bc4
--- /dev/null
+++ b/django_airavata/apps/admin/.gitignore
@@ -0,0 +1,13 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/.postcssrc.js
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/.postcssrc.js b/django_airavata/apps/admin/.postcssrc.js
new file mode 100644
index 0000000..09948d6
--- /dev/null
+++ b/django_airavata/apps/admin/.postcssrc.js
@@ -0,0 +1,8 @@
+// https://github.com/michael-ciniawsky/postcss-load-config
+
+module.exports = {
+  "plugins": {
+    // to edit target browsers: use "browserslist" field in package.json
+    "autoprefixer": {}
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/README.md
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/README.md b/django_airavata/apps/admin/README.md
new file mode 100644
index 0000000..f88cd6a
--- /dev/null
+++ b/django_airavata/apps/admin/README.md
@@ -0,0 +1,21 @@
+# admin-airavata
+
+> A Vue.js project
+
+## Build Setup
+
+``` bash
+# install dependencies
+npm install
+
+# serve with hot reload at localhost:8080
+npm run dev
+
+# build for production with minification
+npm run build
+
+# build for production and view the bundle analyzer report
+npm run build --report
+```
+
+For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/__init__.py
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/__init__.py b/django_airavata/apps/admin/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/admin.py
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/admin.py b/django_airavata/apps/admin/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/django_airavata/apps/admin/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/apps.py
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/apps.py b/django_airavata/apps/admin/apps.py
new file mode 100644
index 0000000..009277b
--- /dev/null
+++ b/django_airavata/apps/admin/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class AdminConfig(AppConfig):
+    name = 'django_airavata.apps.admin'

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/index.html
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/index.html b/django_airavata/apps/admin/index.html
new file mode 100644
index 0000000..7478ddc
--- /dev/null
+++ b/django_airavata/apps/admin/index.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<head>
+  <link rel="stylesheet" type="text/css" href="/static/css/main.css">
+  <link rel="stylesheet" type="text/css" href="/static/css/admin.css">
+  <link rel="stylesheet" type="text/css"
+        href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css">
+  <link rel="stylesheet" type="text/css"
+        href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<header class="c-header">
+  <div class="c-header__logo">
+    <svg aria-labelledby="iu-logo" xmlns="http://www.w3.org/2000/svg" width="70" height="70" viewBox="0 0 70 70">
+      <title id="iu-logo">IU logo</title>
+      <polygon
+        points="40.96 18.44 40.96 21.84 43.52 21.84 43.52 40.51 38.41 40.51 38.41 15.9 40.96 15.9 40.96 12.5 29.04 12.5 29.04 15.9 31.58 15.9 31.58 40.51 26.48 40.51 26.48 21.84 29.04 21.84 29.04 18.44 17.09 18.44 17.09 21.84 19.65 21.84 19.65 43.79 23.72 48.15 31.58 48.15 31.58 53.26 29.04 53.26 29.04 57.5 40.96 57.5 40.96 53.26 38.41 53.26 38.41 48.15 45.93 48.15 50.33 43.79 50.33 21.84 52.91 21.84 52.91 18.44 40.96 18.44"
+        fill="#fff"/>
+    </svg>
+  </div>
+  <div class="c-header__title"><a href="#0">IU Cybergateway</a></div>
+  <div class="c-header__controls">
+    <div class="dropdown">
+      <a href="#0" class="dropdown-toggle text-dark" id="dropdownMenuButton" data-toggle="dropdown"
+         aria-haspopup="true" aria-expanded="false">
+        <i class="fa fa-user mr-2"></i> Bert Macklin
+      </a>
+      <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+        <a class="dropdown-item" href="#">User settings</a>
+        <a class="dropdown-item" href="#">Logout <i class="fa fa-sign-out"></i></a>
+      </div>
+    </div>
+  </div>
+</header>
+
+<body>
+<div class="stage">
+  <nav class="c-nav">
+    <a href="#0" class="c-nav__item is-active" data-toggle="tooltip" data-placement="right" title="Dashboard">
+      <i class="fa fa-dashboard"></i>
+      <span class="sr-only">Dashboard</span>
+    </a>
+    <a href="#0" class="c-nav__item" data-toggle="tooltip" data-placement="right" title="Experiments">
+      <i class="fa fa-flask"></i>
+      <span class="sr-only">Dashboard</span>
+    </a>
+    <a href="#0" class="c-nav__item" data-toggle="tooltip" data-placement="right" title="Projects">
+      <i class="fa fa-folder-open"></i>
+      <span class="sr-only">Dashboard</span>
+    </a>
+    <a href="#0" class="c-nav__item" data-toggle="tooltip" data-placement="right" title="Storage">
+      <i class="fa fa-floppy-o"></i>
+      <span class="sr-only">Dashboard</span>
+    </a>
+    <a href="#0" class="c-nav__item" data-toggle="tooltip" data-placement="right" title="Admin Dashboard">
+      <i class="fa fa-wrench"></i>
+      <span class="sr-only">Admin Dashboard</span>
+    </a>
+  </nav>
+  <div id="app">
+
+  </div>
+</div>
+
+
+
+
+</body>
+
+<script>
+  if(AiravataApp){
+    AiravataApp.initializeApacheAiravataDashboard('AdminDashboard');
+  }
+</script>
+
+
+
+

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/migrations/__init__.py
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/migrations/__init__.py b/django_airavata/apps/admin/migrations/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/airavata-django-portal/blob/d8d7c37a/django_airavata/apps/admin/models.py
----------------------------------------------------------------------
diff --git a/django_airavata/apps/admin/models.py b/django_airavata/apps/admin/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/django_airavata/apps/admin/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.