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 2019/11/15 19:54:53 UTC

[airavata] branch develop updated (adb4408 -> a675926)

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git.


    from adb4408  Merge remote-tracking branch 'origin/master' into develop
     add cd54deb  Adding Delta gateway to production
     add 1ecbef9  Adding Delta gateway to production
     add 07740da  Added delta gateway host server to the list
     add 000ac9b  Updated the vars.yml for Delta gateway
     add 672f23d  Updated the vars.yml for Delta gateway
     add 1ba1ef2  Updated the vault.yml for Delta gateway
     add 10a843d  Updated the vault.yml for Delta gateway
     add 058c090  increaased the file size for Distant reader
     add c33ed35  Ansible: fixing Delta configuration
     add 050f4b8  AIRAVATA-3274 Run webserver setup only once per server
     add 91a575e  Ansible: fixing delta config
     add 74020d8  Added the SSH key for gateway storage
     add 0383e92  enabled SSL certification
     add 8326c08  Added CILogon to Delta gateway
     add 1813951  Added CILogon to Delta gateway
     new b07d1d0  AIRAVATA-3268 Add overrideFilename to app input model
     new a675926  Merge branch 'airavata-3268' into develop

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../lib/airavata/model/application/io/ttypes.py    |  16 ++-
 .../resources/lib/airavata/model/group/ttypes.py   |   3 +
 .../resources/lib/airavata/model/sharing/ttypes.py |  15 ++-
 .../model/application/io/InputDataObjectType.java  | 115 ++++++++++++++++++++-
 dev-tools/ansible/django.yml                       |  19 ++--
 .../scigap/production/host_vars/delta/vars.yml     |  55 ++++++++++
 .../scigap/production/host_vars/delta/vault.yml    |  15 +++
 .../production/host_vars/distantreader/vars.yml    |   1 +
 .../ansible/inventories/scigap/production/hosts    |   4 +
 .../init/03-appcatalog-migrations.sql              |   3 +
 .../init/04-expcatalog-migrations.sql              |   4 +
 .../appcatalog/ApplicationInputEntity.java         |  11 ++
 .../entities/expcatalog/ExperimentInputEntity.java |  13 ++-
 .../entities/expcatalog/ProcessInputEntity.java    |  13 ++-
 .../src/main/resources/appcatalog-derby.sql        |   1 +
 .../src/main/resources/appcatalog-mysql.sql        |   1 +
 .../src/main/resources/expcatalog-derby.sql        |   2 +
 .../src/main/resources/expcatalog-mysql.sql        |   2 +
 .../expcatalog/ExperimentRepositoryTest.java       |   4 +
 .../DeltaScripts/appCatalog_schema_delta.sql       |   3 +
 .../experimentCatalog_schema_delta.sql             |   4 +
 .../application_io_models.thrift                   |   5 +-
 22 files changed, 294 insertions(+), 15 deletions(-)
 create mode 100644 dev-tools/ansible/inventories/scigap/production/host_vars/delta/vars.yml
 create mode 100644 dev-tools/ansible/inventories/scigap/production/host_vars/delta/vault.yml
 create mode 100644 modules/ide-integration/src/main/resources/database_scripts/init/03-appcatalog-migrations.sql
 create mode 100644 modules/ide-integration/src/main/resources/database_scripts/init/04-expcatalog-migrations.sql


[airavata] 02/02: Merge branch 'airavata-3268' into develop

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit a67592603a4c23319d6ac861cbad5b31d86907db
Merge: adb4408 b07d1d0
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Fri Nov 15 14:54:09 2019 -0500

    Merge branch 'airavata-3268' into develop

 .../lib/airavata/model/application/io/ttypes.py    |  16 ++-
 .../resources/lib/airavata/model/group/ttypes.py   |   3 +
 .../resources/lib/airavata/model/sharing/ttypes.py |  15 ++-
 .../model/application/io/InputDataObjectType.java  | 115 ++++++++++++++++++++-
 dev-tools/ansible/django.yml                       |  19 ++--
 .../scigap/production/host_vars/delta/vars.yml     |  55 ++++++++++
 .../scigap/production/host_vars/delta/vault.yml    |  15 +++
 .../production/host_vars/distantreader/vars.yml    |   1 +
 .../ansible/inventories/scigap/production/hosts    |   4 +
 .../init/03-appcatalog-migrations.sql              |   3 +
 .../init/04-expcatalog-migrations.sql              |   4 +
 .../appcatalog/ApplicationInputEntity.java         |  11 ++
 .../entities/expcatalog/ExperimentInputEntity.java |  13 ++-
 .../entities/expcatalog/ProcessInputEntity.java    |  13 ++-
 .../src/main/resources/appcatalog-derby.sql        |   1 +
 .../src/main/resources/appcatalog-mysql.sql        |   1 +
 .../src/main/resources/expcatalog-derby.sql        |   2 +
 .../src/main/resources/expcatalog-mysql.sql        |   2 +
 .../expcatalog/ExperimentRepositoryTest.java       |   4 +
 .../DeltaScripts/appCatalog_schema_delta.sql       |   3 +
 .../experimentCatalog_schema_delta.sql             |   4 +
 .../application_io_models.thrift                   |   5 +-
 22 files changed, 294 insertions(+), 15 deletions(-)


[airavata] 01/02: AIRAVATA-3268 Add overrideFilename to app input model

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit b07d1d03df3fc68097ba49a41baf0559b688fc95
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Fri Nov 15 14:52:42 2019 -0500

    AIRAVATA-3268 Add overrideFilename to app input model
---
 .../lib/airavata/model/application/io/ttypes.py    |  16 ++-
 .../resources/lib/airavata/model/group/ttypes.py   |   3 +
 .../resources/lib/airavata/model/sharing/ttypes.py |  15 ++-
 .../model/application/io/InputDataObjectType.java  | 115 ++++++++++++++++++++-
 .../init/03-appcatalog-migrations.sql              |   3 +
 .../init/04-expcatalog-migrations.sql              |   4 +
 .../appcatalog/ApplicationInputEntity.java         |  11 ++
 .../entities/expcatalog/ExperimentInputEntity.java |  13 ++-
 .../entities/expcatalog/ProcessInputEntity.java    |  13 ++-
 .../src/main/resources/appcatalog-derby.sql        |   1 +
 .../src/main/resources/appcatalog-mysql.sql        |   1 +
 .../src/main/resources/expcatalog-derby.sql        |   2 +
 .../src/main/resources/expcatalog-mysql.sql        |   2 +
 .../expcatalog/ExperimentRepositoryTest.java       |   4 +
 .../DeltaScripts/appCatalog_schema_delta.sql       |   3 +
 .../experimentCatalog_schema_delta.sql             |   4 +
 .../application_io_models.thrift                   |   5 +-
 17 files changed, 206 insertions(+), 9 deletions(-)

diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/application/io/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/application/io/ttypes.py
index 8c9017a..17f1760 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/application/io/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/application/io/ttypes.py
@@ -74,6 +74,8 @@ class InputDataObjectType(object):
     metaData:
       Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
 
+    overrideFilename:
+      Rename input file to given value when staging to compute resource.
 
     Attributes:
      - name
@@ -89,6 +91,7 @@ class InputDataObjectType(object):
      - dataStaged
      - storageResourceId
      - isReadOnly
+     - overrideFilename
     """
 
     thrift_spec = (
@@ -106,9 +109,10 @@ class InputDataObjectType(object):
         (11, TType.BOOL, 'dataStaged', None, None, ),  # 11
         (12, TType.STRING, 'storageResourceId', 'UTF8', None, ),  # 12
         (13, TType.BOOL, 'isReadOnly', None, None, ),  # 13
+        (14, TType.STRING, 'overrideFilename', 'UTF8', None, ),  # 14
     )
 
-    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, isReadOnly=None,):
+    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, isReadOnly=None, overrideFilename=None,):
         self.name = name
         self.value = value
         self.type = type
@@ -122,6 +126,7 @@ class InputDataObjectType(object):
         self.dataStaged = dataStaged
         self.storageResourceId = storageResourceId
         self.isReadOnly = isReadOnly
+        self.overrideFilename = overrideFilename
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -197,6 +202,11 @@ class InputDataObjectType(object):
                     self.isReadOnly = iprot.readBool()
                 else:
                     iprot.skip(ftype)
+            elif fid == 14:
+                if ftype == TType.STRING:
+                    self.overrideFilename = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -259,6 +269,10 @@ class InputDataObjectType(object):
             oprot.writeFieldBegin('isReadOnly', TType.BOOL, 13)
             oprot.writeBool(self.isReadOnly)
             oprot.writeFieldEnd()
+        if self.overrideFilename is not None:
+            oprot.writeFieldBegin('overrideFilename', TType.STRING, 14)
+            oprot.writeString(self.overrideFilename.encode('utf-8') if sys.version_info[0] == 2 else self.overrideFilename)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
index 3be6af0..8bce444 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/group/ttypes.py
@@ -48,17 +48,20 @@ class ResourcePermissionType(object):
     WRITE = 0
     READ = 1
     OWNER = 2
+    MANAGE_SHARING = 3
 
     _VALUES_TO_NAMES = {
         0: "WRITE",
         1: "READ",
         2: "OWNER",
+        3: "MANAGE_SHARING",
     }
 
     _NAMES_TO_VALUES = {
         "WRITE": 0,
         "READ": 1,
         "OWNER": 2,
+        "MANAGE_SHARING": 3,
     }
 
 
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/sharing/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/sharing/ttypes.py
index 1f2f0e9..661367f 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/sharing/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/airavata/model/sharing/ttypes.py
@@ -190,6 +190,7 @@ class Domain(object):
     <li>description : A short description for the domain</li>
     <li>createdTime : Will be set by the system</li>
     <li>updatedTime : Will be set by the system</li>
+    <li>initialUserGroupId : New users will automatically be added to this group</li>
 
 
     Attributes:
@@ -198,6 +199,7 @@ class Domain(object):
      - description
      - createdTime
      - updatedTime
+     - initialUserGroupId
     """
 
     thrift_spec = (
@@ -207,14 +209,16 @@ class Domain(object):
         (3, TType.STRING, 'description', 'UTF8', None, ),  # 3
         (4, TType.I64, 'createdTime', None, None, ),  # 4
         (5, TType.I64, 'updatedTime', None, None, ),  # 5
+        (6, TType.STRING, 'initialUserGroupId', 'UTF8', None, ),  # 6
     )
 
-    def __init__(self, domainId=thrift_spec[1][4], name=None, description=None, createdTime=None, updatedTime=None,):
+    def __init__(self, domainId=thrift_spec[1][4], name=None, description=None, createdTime=None, updatedTime=None, initialUserGroupId=None,):
         self.domainId = domainId
         self.name = name
         self.description = description
         self.createdTime = createdTime
         self.updatedTime = updatedTime
+        self.initialUserGroupId = initialUserGroupId
 
     def read(self, iprot):
         if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
@@ -250,6 +254,11 @@ class Domain(object):
                     self.updatedTime = iprot.readI64()
                 else:
                     iprot.skip(ftype)
+            elif fid == 6:
+                if ftype == TType.STRING:
+                    self.initialUserGroupId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
+                else:
+                    iprot.skip(ftype)
             else:
                 iprot.skip(ftype)
             iprot.readFieldEnd()
@@ -280,6 +289,10 @@ class Domain(object):
             oprot.writeFieldBegin('updatedTime', TType.I64, 5)
             oprot.writeI64(self.updatedTime)
             oprot.writeFieldEnd()
+        if self.initialUserGroupId is not None:
+            oprot.writeFieldBegin('initialUserGroupId', TType.STRING, 6)
+            oprot.writeString(self.initialUserGroupId.encode('utf-8') if sys.version_info[0] == 2 else self.initialUserGroupId)
+            oprot.writeFieldEnd()
         oprot.writeFieldStop()
         oprot.writeStructEnd()
 
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index 48f45d8..3157f7c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -49,6 +49,8 @@ package org.apache.airavata.model.application.io;
  * metaData:
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
+ * overrideFilename:
+ *   Rename input file to given value when staging to compute resource.
  */
 @javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
@@ -67,6 +69,7 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
   private static final org.apache.thrift.protocol.TField DATA_STAGED_FIELD_DESC = new org.apache.thrift.protocol.TField("dataStaged", org.apache.thrift.protocol.TType.BOOL, (short)11);
   private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)12);
   private static final org.apache.thrift.protocol.TField IS_READ_ONLY_FIELD_DESC = new org.apache.thrift.protocol.TField("isReadOnly", org.apache.thrift.protocol.TType.BOOL, (short)13);
+  private static final org.apache.thrift.protocol.TField OVERRIDE_FILENAME_FIELD_DESC = new org.apache.thrift.protocol.TField("overrideFilename", org.apache.thrift.protocol.TType.STRING, (short)14);
 
   private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new InputDataObjectTypeStandardSchemeFactory();
   private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new InputDataObjectTypeTupleSchemeFactory();
@@ -84,6 +87,7 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
   private boolean dataStaged; // optional
   private java.lang.String storageResourceId; // optional
   private boolean isReadOnly; // optional
+  private java.lang.String overrideFilename; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -103,7 +107,8 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
     REQUIRED_TO_ADDED_TO_COMMAND_LINE((short)10, "requiredToAddedToCommandLine"),
     DATA_STAGED((short)11, "dataStaged"),
     STORAGE_RESOURCE_ID((short)12, "storageResourceId"),
-    IS_READ_ONLY((short)13, "isReadOnly");
+    IS_READ_ONLY((short)13, "isReadOnly"),
+    OVERRIDE_FILENAME((short)14, "overrideFilename");
 
     private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -144,6 +149,8 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
           return STORAGE_RESOURCE_ID;
         case 13: // IS_READ_ONLY
           return IS_READ_ONLY;
+        case 14: // OVERRIDE_FILENAME
+          return OVERRIDE_FILENAME;
         default:
           return null;
       }
@@ -191,7 +198,7 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
   private static final int __DATASTAGED_ISSET_ID = 4;
   private static final int __ISREADONLY_ISSET_ID = 5;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.STANDARD_INPUT,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.META_DATA,_Fields.INPUT_ORDER,_Fields.IS_REQUIRED,_Fields.REQUIRED_TO_ADDED_TO_COMMAND_LINE,_Fields.DATA_STAGED,_Fields.STORAGE_RESOURCE_ID,_Fields.IS_READ_ONLY};
+  private static final _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.STANDARD_INPUT,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.META_DATA,_Fields.INPUT_ORDER,_Fields.IS_REQUIRED,_Fields.REQUIRED_TO_ADDED_TO_COMMAND_LINE,_Fields.DATA_STAGED,_Fields.STORAGE_RESOURCE_ID,_Fields.IS_READ_ONLY,_Fields.OVERRIDE_FILENAME};
   public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -221,6 +228,8 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.IS_READ_ONLY, new org.apache.thrift.meta_data.FieldMetaData("isReadOnly", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.OVERRIDE_FILENAME, new org.apache.thrift.meta_data.FieldMetaData("overrideFilename", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InputDataObjectType.class, metaDataMap);
   }
@@ -267,6 +276,9 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
       this.storageResourceId = other.storageResourceId;
     }
     this.isReadOnly = other.isReadOnly;
+    if (other.isSetOverrideFilename()) {
+      this.overrideFilename = other.overrideFilename;
+    }
   }
 
   public InputDataObjectType deepCopy() {
@@ -294,6 +306,7 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
     this.storageResourceId = null;
     setIsReadOnlyIsSet(false);
     this.isReadOnly = false;
+    this.overrideFilename = null;
   }
 
   public java.lang.String getName() {
@@ -597,6 +610,29 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
     __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __ISREADONLY_ISSET_ID, value);
   }
 
+  public java.lang.String getOverrideFilename() {
+    return this.overrideFilename;
+  }
+
+  public void setOverrideFilename(java.lang.String overrideFilename) {
+    this.overrideFilename = overrideFilename;
+  }
+
+  public void unsetOverrideFilename() {
+    this.overrideFilename = null;
+  }
+
+  /** Returns true if field overrideFilename is set (has been assigned a value) and false otherwise */
+  public boolean isSetOverrideFilename() {
+    return this.overrideFilename != null;
+  }
+
+  public void setOverrideFilenameIsSet(boolean value) {
+    if (!value) {
+      this.overrideFilename = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, java.lang.Object value) {
     switch (field) {
     case NAME:
@@ -703,6 +739,14 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
       }
       break;
 
+    case OVERRIDE_FILENAME:
+      if (value == null) {
+        unsetOverrideFilename();
+      } else {
+        setOverrideFilename((java.lang.String)value);
+      }
+      break;
+
     }
   }
 
@@ -747,6 +791,9 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
     case IS_READ_ONLY:
       return isIsReadOnly();
 
+    case OVERRIDE_FILENAME:
+      return getOverrideFilename();
+
     }
     throw new java.lang.IllegalStateException();
   }
@@ -784,6 +831,8 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
       return isSetStorageResourceId();
     case IS_READ_ONLY:
       return isSetIsReadOnly();
+    case OVERRIDE_FILENAME:
+      return isSetOverrideFilename();
     }
     throw new java.lang.IllegalStateException();
   }
@@ -920,6 +969,15 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
         return false;
     }
 
+    boolean this_present_overrideFilename = true && this.isSetOverrideFilename();
+    boolean that_present_overrideFilename = true && that.isSetOverrideFilename();
+    if (this_present_overrideFilename || that_present_overrideFilename) {
+      if (!(this_present_overrideFilename && that_present_overrideFilename))
+        return false;
+      if (!this.overrideFilename.equals(that.overrideFilename))
+        return false;
+    }
+
     return true;
   }
 
@@ -979,6 +1037,10 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
     if (isSetIsReadOnly())
       hashCode = hashCode * 8191 + ((isReadOnly) ? 131071 : 524287);
 
+    hashCode = hashCode * 8191 + ((isSetOverrideFilename()) ? 131071 : 524287);
+    if (isSetOverrideFilename())
+      hashCode = hashCode * 8191 + overrideFilename.hashCode();
+
     return hashCode;
   }
 
@@ -1120,6 +1182,16 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
         return lastComparison;
       }
     }
+    lastComparison = java.lang.Boolean.valueOf(isSetOverrideFilename()).compareTo(other.isSetOverrideFilename());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOverrideFilename()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overrideFilename, other.overrideFilename);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -1243,6 +1315,16 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
       sb.append(this.isReadOnly);
       first = false;
     }
+    if (isSetOverrideFilename()) {
+      if (!first) sb.append(", ");
+      sb.append("overrideFilename:");
+      if (this.overrideFilename == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.overrideFilename);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -1396,6 +1478,14 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 14: // OVERRIDE_FILENAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.overrideFilename = iprot.readString();
+              struct.setOverrideFilenameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -1486,6 +1576,13 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
         oprot.writeBool(struct.isReadOnly);
         oprot.writeFieldEnd();
       }
+      if (struct.overrideFilename != null) {
+        if (struct.isSetOverrideFilename()) {
+          oprot.writeFieldBegin(OVERRIDE_FILENAME_FIELD_DESC);
+          oprot.writeString(struct.overrideFilename);
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -1541,7 +1638,10 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
       if (struct.isSetIsReadOnly()) {
         optionals.set(11);
       }
-      oprot.writeBitSet(optionals, 12);
+      if (struct.isSetOverrideFilename()) {
+        optionals.set(12);
+      }
+      oprot.writeBitSet(optionals, 13);
       if (struct.isSetValue()) {
         oprot.writeString(struct.value);
       }
@@ -1578,6 +1678,9 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
       if (struct.isSetIsReadOnly()) {
         oprot.writeBool(struct.isReadOnly);
       }
+      if (struct.isSetOverrideFilename()) {
+        oprot.writeString(struct.overrideFilename);
+      }
     }
 
     @Override
@@ -1585,7 +1688,7 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
       org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
       struct.name = iprot.readString();
       struct.setNameIsSet(true);
-      java.util.BitSet incoming = iprot.readBitSet(12);
+      java.util.BitSet incoming = iprot.readBitSet(13);
       if (incoming.get(0)) {
         struct.value = iprot.readString();
         struct.setValueIsSet(true);
@@ -1634,6 +1737,10 @@ public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObj
         struct.isReadOnly = iprot.readBool();
         struct.setIsReadOnlyIsSet(true);
       }
+      if (incoming.get(12)) {
+        struct.overrideFilename = iprot.readString();
+        struct.setOverrideFilenameIsSet(true);
+      }
     }
   }
 
diff --git a/modules/ide-integration/src/main/resources/database_scripts/init/03-appcatalog-migrations.sql b/modules/ide-integration/src/main/resources/database_scripts/init/03-appcatalog-migrations.sql
new file mode 100644
index 0000000..4022bf3
--- /dev/null
+++ b/modules/ide-integration/src/main/resources/database_scripts/init/03-appcatalog-migrations.sql
@@ -0,0 +1,3 @@
+use app_catalog;
+
+ALTER TABLE APPLICATION_INPUT ADD COLUMN OVERRIDE_FILENAME VARCHAR(255);
diff --git a/modules/ide-integration/src/main/resources/database_scripts/init/04-expcatalog-migrations.sql b/modules/ide-integration/src/main/resources/database_scripts/init/04-expcatalog-migrations.sql
new file mode 100644
index 0000000..067e449
--- /dev/null
+++ b/modules/ide-integration/src/main/resources/database_scripts/init/04-expcatalog-migrations.sql
@@ -0,0 +1,4 @@
+use experiment_catalog;
+
+ALTER TABLE EXPERIMENT_INPUT ADD COLUMN OVERRIDE_FILENAME VARCHAR(255);
+ALTER TABLE PROCESS_INPUT ADD COLUMN OVERRIDE_FILENAME VARCHAR(255);
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ApplicationInputEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ApplicationInputEntity.java
index d9db823..6061a9a 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ApplicationInputEntity.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/appcatalog/ApplicationInputEntity.java
@@ -79,6 +79,9 @@ public class ApplicationInputEntity implements Serializable {
 	@Column(name = "IS_READ_ONLY")
 	private boolean isReadOnly;
 
+	@Column(name = "OVERRIDE_FILENAME")
+	private String overrideFilename;
+
 	@ManyToOne(targetEntity = ApplicationInterfaceEntity.class)
 	@JoinColumn(name = "INTERFACE_ID", nullable = false, updatable = false)
 	@ForeignKey(deleteAction = ForeignKeyAction.CASCADE)
@@ -192,6 +195,14 @@ public class ApplicationInputEntity implements Serializable {
 		this.isReadOnly = isReadOnly;
 	}
 
+	public String getOverrideFilename() {
+		return overrideFilename;
+	}
+
+	public void setOverrideFilename(String overrideFilename) {
+		this.overrideFilename = overrideFilename;
+	}
+
 	public ApplicationInterfaceEntity getApplicationInterface() {
 		return applicationInterface;
 	}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputEntity.java
index 33ad224..b934a0d 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputEntity.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ExperimentInputEntity.java
@@ -80,6 +80,9 @@ public class ExperimentInputEntity implements Serializable {
     @Column(name = "IS_READ_ONLY")
     private boolean isReadOnly;
 
+	@Column(name = "OVERRIDE_FILENAME")
+	private String overrideFilename;
+
     @ManyToOne(targetEntity = ExperimentEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
     @JoinColumn(name = "EXPERIMENT_ID", referencedColumnName = "EXPERIMENT_ID")
     private ExperimentEntity experiment;
@@ -204,4 +207,12 @@ public class ExperimentInputEntity implements Serializable {
     public void setIsReadOnly(boolean isReadOnly) {
         this.isReadOnly = isReadOnly;
     }
-}
\ No newline at end of file
+
+	public String getOverrideFilename() {
+		return overrideFilename;
+	}
+
+	public void setOverrideFilename(String overrideFilename) {
+		this.overrideFilename = overrideFilename;
+	}
+}
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessInputEntity.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessInputEntity.java
index 8c3e7de..ae31c6e 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessInputEntity.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/entities/expcatalog/ProcessInputEntity.java
@@ -80,6 +80,9 @@ public class ProcessInputEntity implements Serializable {
     @Column(name = "IS_READ_ONLY")
     private boolean isReadOnly;
 
+	@Column(name = "OVERRIDE_FILENAME")
+	private String overrideFilename;
+
     @ManyToOne(targetEntity = ProcessEntity.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
     @JoinColumn(name = "PROCESS_ID", referencedColumnName = "PROCESS_ID")
     private ProcessEntity process;
@@ -199,6 +202,14 @@ public class ProcessInputEntity implements Serializable {
         isReadOnly = readOnly;
     }
 
+	public String getOverrideFilename() {
+		return overrideFilename;
+	}
+
+	public void setOverrideFilename(String overrideFilename) {
+		this.overrideFilename = overrideFilename;
+	}
+
     public ProcessEntity getProcess() {
         return process;
     }
@@ -206,4 +217,4 @@ public class ProcessInputEntity implements Serializable {
     public void setProcess(ProcessEntity process) {
         this.process = process;
     }
-}
\ No newline at end of file
+}
diff --git a/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
index 4bb49a0..69470a7 100644
--- a/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/appcatalog-derby.sql
@@ -327,6 +327,7 @@ CREATE TABLE APPLICATION_INPUT
          REQUIRED_TO_COMMANDLINE SMALLINT,
          DATA_STAGED SMALLINT,
          IS_READ_ONLY SMALLINT,
+         OVERRIDE_FILENAME VARCHAR(255),
          PRIMARY KEY(INTERFACE_ID,INPUT_KEY),
          FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
 );
diff --git a/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
index b24c433..1de758b 100644
--- a/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/appcatalog-mysql.sql
@@ -320,6 +320,7 @@ CREATE TABLE APPLICATION_INPUT
          REQUIRED_TO_COMMANDLINE SMALLINT,
          DATA_STAGED SMALLINT,
          IS_READ_ONLY SMALLINT,
+         OVERRIDE_FILENAME VARCHAR(255),
          PRIMARY KEY(INTERFACE_ID,INPUT_KEY),
          FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
 )ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
index 64ab519..85f12f1 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -130,6 +130,7 @@ CREATE TABLE EXPERIMENT_INPUT
         DATA_STAGED SMALLINT,
         STORAGE_RESOURCE_ID varchar(255),
         IS_READ_ONLY SMALLINT,
+        OVERRIDE_FILENAME VARCHAR(255),
         PRIMARY KEY(EXPERIMENT_ID,INPUT_NAME),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -257,6 +258,7 @@ CREATE TABLE PROCESS_INPUT
         DATA_STAGED SMALLINT,
         STORAGE_RESOURCE_ID varchar(255),
         IS_READ_ONLY SMALLINT,
+        OVERRIDE_FILENAME VARCHAR(255),
         PRIMARY KEY(PROCESS_ID,INPUT_NAME),
         FOREIGN KEY (PROCESS_ID) REFERENCES PROCESS(PROCESS_ID) ON DELETE CASCADE
 );
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
index 598deeb..7e8bf7d 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -130,6 +130,7 @@ CREATE TABLE EXPERIMENT_INPUT
         DATA_STAGED tinyint(1),
         STORAGE_RESOURCE_ID varchar(255),
         IS_READ_ONLY tinyint(1),
+        OVERRIDE_FILENAME VARCHAR(255),
         PRIMARY KEY(EXPERIMENT_ID,INPUT_NAME),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 )ENGINE=InnoDB DEFAULT CHARSET=latin1;
@@ -259,6 +260,7 @@ CREATE TABLE PROCESS_INPUT
         DATA_STAGED tinyint(1),
         STORAGE_RESOURCE_ID varchar(255),
         IS_READ_ONLY tinyint(1),
+        OVERRIDE_FILENAME VARCHAR(255),
         PRIMARY KEY(PROCESS_ID,INPUT_NAME),
         FOREIGN KEY (PROCESS_ID) REFERENCES PROCESS(PROCESS_ID) ON DELETE CASCADE
 )ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepositoryTest.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepositoryTest.java
index 0f9b623..bca0ce0 100644
--- a/modules/registry/registry-core/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepositoryTest.java
+++ b/modules/registry/registry-core/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepositoryTest.java
@@ -176,6 +176,7 @@ public class ExperimentRepositoryTest extends TestBase {
         input1.setStorageResourceId("storageResourceId");
         input1.setUserFriendlyDescription("First argument");
         input1.setValue("value1");
+        input1.setOverrideFilename("gaussian.com");
         experimentModel.addToExperimentInputs(input1);
 
         String experimentId = experimentRepository.addExperiment(experimentModel);
@@ -197,6 +198,7 @@ public class ExperimentRepositoryTest extends TestBase {
         assertEquals("storageResourceId", retrievedInput1.getStorageResourceId());
         assertEquals("First argument", retrievedInput1.getUserFriendlyDescription());
         assertEquals("value1", retrievedInput1.getValue());
+        assertEquals("gaussian.com", retrievedInput1.getOverrideFilename());
 
         // Update values of the input
         retrievedInput1.setIsRequired(false);
@@ -211,6 +213,7 @@ public class ExperimentRepositoryTest extends TestBase {
         retrievedInput1.setStorageResourceId("storageResourceId2");
         retrievedInput1.setUserFriendlyDescription("First argument~");
         retrievedInput1.setValue("value1a");
+        retrievedInput1.setOverrideFilename("gaussian.com-updated");
 
         experimentRepository.updateExperiment(retrievedExperimentModel, experimentId);
 
@@ -229,6 +232,7 @@ public class ExperimentRepositoryTest extends TestBase {
         assertEquals("storageResourceId2", retrievedInput1.getStorageResourceId());
         assertEquals("First argument~", retrievedInput1.getUserFriendlyDescription());
         assertEquals("value1a", retrievedInput1.getValue());
+        assertEquals("gaussian.com-updated", retrievedInput1.getOverrideFilename());
 
         experimentRepository.removeExperiment(experimentId);
         assertFalse(experimentRepository.isExperimentExist(experimentId));
diff --git a/modules/registry/release-migration-scripts/0.18-0.19/DeltaScripts/appCatalog_schema_delta.sql b/modules/registry/release-migration-scripts/0.18-0.19/DeltaScripts/appCatalog_schema_delta.sql
index 438df23..dcbbe11 100644
--- a/modules/registry/release-migration-scripts/0.18-0.19/DeltaScripts/appCatalog_schema_delta.sql
+++ b/modules/registry/release-migration-scripts/0.18-0.19/DeltaScripts/appCatalog_schema_delta.sql
@@ -478,3 +478,6 @@ ALTER TABLE `UNICORE_DATAMOVEMENT` DROP IF EXISTS `SECURITY_PROTOCOL`;
 
 -- AIRAVATA-3029: Add METADATA to APPLICATION_OUTPUT
 ALTER TABLE `APPLICATION_OUTPUT` ADD COLUMN IF NOT EXISTS METADATA VARCHAR(4096);
+
+-- AIRAVATA-3268: add overrideFilename to APPLICATION_INPUT
+ALTER TABLE APPLICATION_INPUT ADD COLUMN IF NOT EXISTS OVERRIDE_FILENAME VARCHAR(255);
diff --git a/modules/registry/release-migration-scripts/0.18-0.19/DeltaScripts/experimentCatalog_schema_delta.sql b/modules/registry/release-migration-scripts/0.18-0.19/DeltaScripts/experimentCatalog_schema_delta.sql
index 5823d9c..7a97d50 100644
--- a/modules/registry/release-migration-scripts/0.18-0.19/DeltaScripts/experimentCatalog_schema_delta.sql
+++ b/modules/registry/release-migration-scripts/0.18-0.19/DeltaScripts/experimentCatalog_schema_delta.sql
@@ -114,3 +114,7 @@ set g.OAUTH_CLIENT_ID = pg.OAUTH_CLIENT_ID,
 where
     g.OAUTH_CLIENT_ID is null
     or g.OAUTH_CLIENT_SECRET is null;
+
+-- AIRAVATA-3268: add overrideFilename to EXPERIMENT_INPUT, PROCESS_INPUT
+ALTER TABLE EXPERIMENT_INPUT ADD COLUMN IF NOT EXISTS OVERRIDE_FILENAME VARCHAR(255);
+ALTER TABLE PROCESS_INPUT ADD COLUMN IF NOT EXISTS OVERRIDE_FILENAME VARCHAR(255);
diff --git a/thrift-interface-descriptions/data-models/app-catalog-models/application_io_models.thrift b/thrift-interface-descriptions/data-models/app-catalog-models/application_io_models.thrift
index f8537c7..3556e4b 100644
--- a/thrift-interface-descriptions/data-models/app-catalog-models/application_io_models.thrift
+++ b/thrift-interface-descriptions/data-models/app-catalog-models/application_io_models.thrift
@@ -64,6 +64,8 @@ enum DataType{
  * metaData:
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  *
+ * overrideFilename:
+ *   Rename input file to given value when staging to compute resource.
 */
 struct InputDataObjectType {
     1: required string name,
@@ -78,7 +80,8 @@ struct InputDataObjectType {
     10: optional bool requiredToAddedToCommandLine,
     11: optional bool dataStaged,
     12: optional string storageResourceId,
-    13: optional bool isReadOnly
+    13: optional bool isReadOnly,
+    14: optional string overrideFilename
 }
 
 /**