airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From samin...@apache.org
Subject [02/12] https://issues.apache.org/jira/browse/AIRAVATA-1203
Date Thu, 15 May 2014 15:09:17 GMT
http://git-wip-us.apache.org/repos/asf/airavata/blob/c1a1bad5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/JobSubmissionProtocols.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/JobSubmissionProtocols.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/JobSubmissionProtocols.java
new file mode 100644
index 0000000..9bd706f
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/JobSubmissionProtocols.java
@@ -0,0 +1,937 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Job Submission Protocols
+ * 
+ * resourceId:
+ * 
+ * hostName:
+ *   Fully Qualified Host Name.
+ * 
+ * ipAddress:
+ *   IP Addresse of the Hostname.
+ * 
+ * resourceDescription:
+ *  A user friendly description of the hostname.
+ * 
+ * preferedJobSubmissionProtocol:
+ *  HPC resources may have multiple options to interact with the resource. This flag identified a prefered mechanism.
+ * 
+ * preferedDataMovementProtocol:
+ *  Option to specify a prefered data movement mechanism of the available options.
+ * 
+ */
+@SuppressWarnings("all") public class JobSubmissionProtocols implements org.apache.thrift.TBase<JobSubmissionProtocols, JobSubmissionProtocols._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionProtocols> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionProtocols");
+
+  private static final org.apache.thrift.protocol.TField IS_EMPTY_FIELD_DESC = new org.apache.thrift.protocol.TField("isEmpty", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField PREFERED_JOB_SUBMISSION_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("preferedJobSubmissionProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField SSH_JOB_SUBMISSION_INFO_FIELD_DESC = new org.apache.thrift.protocol.TField("sshJobSubmissionInfo", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+  private static final org.apache.thrift.protocol.TField GLOBUS_GRAMHOST_FIELD_DESC = new org.apache.thrift.protocol.TField("globusGRAMHost", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField GLOBUS_GRAMPORT_FIELD_DESC = new org.apache.thrift.protocol.TField("globusGRAMPort", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField UNICORE_BESEND_POINT_FIELD_DESC = new org.apache.thrift.protocol.TField("unicoreBESEndPoint", org.apache.thrift.protocol.TType.STRING, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobSubmissionProtocolsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobSubmissionProtocolsTupleSchemeFactory());
+  }
+
+  private boolean isEmpty; // required
+  private JobSubmissionProtocol preferedJobSubmissionProtocol; // optional
+  private SSHJobSubmission sshJobSubmissionInfo; // optional
+  private String globusGRAMHost; // optional
+  private int globusGRAMPort; // optional
+  private String unicoreBESEndPoint; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    IS_EMPTY((short)1, "isEmpty"),
+    /**
+     * 
+     * @see JobSubmissionProtocol
+     */
+    PREFERED_JOB_SUBMISSION_PROTOCOL((short)2, "preferedJobSubmissionProtocol"),
+    SSH_JOB_SUBMISSION_INFO((short)3, "sshJobSubmissionInfo"),
+    GLOBUS_GRAMHOST((short)4, "globusGRAMHost"),
+    GLOBUS_GRAMPORT((short)5, "globusGRAMPort"),
+    UNICORE_BESEND_POINT((short)6, "unicoreBESEndPoint");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // IS_EMPTY
+          return IS_EMPTY;
+        case 2: // PREFERED_JOB_SUBMISSION_PROTOCOL
+          return PREFERED_JOB_SUBMISSION_PROTOCOL;
+        case 3: // SSH_JOB_SUBMISSION_INFO
+          return SSH_JOB_SUBMISSION_INFO;
+        case 4: // GLOBUS_GRAMHOST
+          return GLOBUS_GRAMHOST;
+        case 5: // GLOBUS_GRAMPORT
+          return GLOBUS_GRAMPORT;
+        case 6: // UNICORE_BESEND_POINT
+          return UNICORE_BESEND_POINT;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __ISEMPTY_ISSET_ID = 0;
+  private static final int __GLOBUSGRAMPORT_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.PREFERED_JOB_SUBMISSION_PROTOCOL,_Fields.SSH_JOB_SUBMISSION_INFO,_Fields.GLOBUS_GRAMHOST,_Fields.GLOBUS_GRAMPORT,_Fields.UNICORE_BESEND_POINT};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.IS_EMPTY, new org.apache.thrift.meta_data.FieldMetaData("isEmpty", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.PREFERED_JOB_SUBMISSION_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("preferedJobSubmissionProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, JobSubmissionProtocol.class)));
+    tmpMap.put(_Fields.SSH_JOB_SUBMISSION_INFO, new org.apache.thrift.meta_data.FieldMetaData("sshJobSubmissionInfo", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SSHJobSubmission.class)));
+    tmpMap.put(_Fields.GLOBUS_GRAMHOST, new org.apache.thrift.meta_data.FieldMetaData("globusGRAMHost", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GLOBUS_GRAMPORT, new org.apache.thrift.meta_data.FieldMetaData("globusGRAMPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.UNICORE_BESEND_POINT, new org.apache.thrift.meta_data.FieldMetaData("unicoreBESEndPoint", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobSubmissionProtocols.class, metaDataMap);
+  }
+
+  public JobSubmissionProtocols() {
+    this.isEmpty = false;
+
+    this.globusGRAMPort = 2119;
+
+  }
+
+  public JobSubmissionProtocols(
+    boolean isEmpty)
+  {
+    this();
+    this.isEmpty = isEmpty;
+    setIsEmptyIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobSubmissionProtocols(JobSubmissionProtocols other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.isEmpty = other.isEmpty;
+    if (other.isSetPreferedJobSubmissionProtocol()) {
+      this.preferedJobSubmissionProtocol = other.preferedJobSubmissionProtocol;
+    }
+    if (other.isSetSshJobSubmissionInfo()) {
+      this.sshJobSubmissionInfo = new SSHJobSubmission(other.sshJobSubmissionInfo);
+    }
+    if (other.isSetGlobusGRAMHost()) {
+      this.globusGRAMHost = other.globusGRAMHost;
+    }
+    this.globusGRAMPort = other.globusGRAMPort;
+    if (other.isSetUnicoreBESEndPoint()) {
+      this.unicoreBESEndPoint = other.unicoreBESEndPoint;
+    }
+  }
+
+  public JobSubmissionProtocols deepCopy() {
+    return new JobSubmissionProtocols(this);
+  }
+
+  @Override
+  public void clear() {
+    this.isEmpty = false;
+
+    this.preferedJobSubmissionProtocol = null;
+    this.sshJobSubmissionInfo = null;
+    this.globusGRAMHost = null;
+    this.globusGRAMPort = 2119;
+
+    this.unicoreBESEndPoint = null;
+  }
+
+  public boolean isIsEmpty() {
+    return this.isEmpty;
+  }
+
+  public void setIsEmpty(boolean isEmpty) {
+    this.isEmpty = isEmpty;
+    setIsEmptyIsSet(true);
+  }
+
+  public void unsetIsEmpty() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISEMPTY_ISSET_ID);
+  }
+
+  /** Returns true if field isEmpty is set (has been assigned a value) and false otherwise */
+  public boolean isSetIsEmpty() {
+    return EncodingUtils.testBit(__isset_bitfield, __ISEMPTY_ISSET_ID);
+  }
+
+  public void setIsEmptyIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISEMPTY_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see JobSubmissionProtocol
+   */
+  public JobSubmissionProtocol getPreferedJobSubmissionProtocol() {
+    return this.preferedJobSubmissionProtocol;
+  }
+
+  /**
+   * 
+   * @see JobSubmissionProtocol
+   */
+  public void setPreferedJobSubmissionProtocol(JobSubmissionProtocol preferedJobSubmissionProtocol) {
+    this.preferedJobSubmissionProtocol = preferedJobSubmissionProtocol;
+  }
+
+  public void unsetPreferedJobSubmissionProtocol() {
+    this.preferedJobSubmissionProtocol = null;
+  }
+
+  /** Returns true if field preferedJobSubmissionProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetPreferedJobSubmissionProtocol() {
+    return this.preferedJobSubmissionProtocol != null;
+  }
+
+  public void setPreferedJobSubmissionProtocolIsSet(boolean value) {
+    if (!value) {
+      this.preferedJobSubmissionProtocol = null;
+    }
+  }
+
+  public SSHJobSubmission getSshJobSubmissionInfo() {
+    return this.sshJobSubmissionInfo;
+  }
+
+  public void setSshJobSubmissionInfo(SSHJobSubmission sshJobSubmissionInfo) {
+    this.sshJobSubmissionInfo = sshJobSubmissionInfo;
+  }
+
+  public void unsetSshJobSubmissionInfo() {
+    this.sshJobSubmissionInfo = null;
+  }
+
+  /** Returns true if field sshJobSubmissionInfo is set (has been assigned a value) and false otherwise */
+  public boolean isSetSshJobSubmissionInfo() {
+    return this.sshJobSubmissionInfo != null;
+  }
+
+  public void setSshJobSubmissionInfoIsSet(boolean value) {
+    if (!value) {
+      this.sshJobSubmissionInfo = null;
+    }
+  }
+
+  public String getGlobusGRAMHost() {
+    return this.globusGRAMHost;
+  }
+
+  public void setGlobusGRAMHost(String globusGRAMHost) {
+    this.globusGRAMHost = globusGRAMHost;
+  }
+
+  public void unsetGlobusGRAMHost() {
+    this.globusGRAMHost = null;
+  }
+
+  /** Returns true if field globusGRAMHost is set (has been assigned a value) and false otherwise */
+  public boolean isSetGlobusGRAMHost() {
+    return this.globusGRAMHost != null;
+  }
+
+  public void setGlobusGRAMHostIsSet(boolean value) {
+    if (!value) {
+      this.globusGRAMHost = null;
+    }
+  }
+
+  public int getGlobusGRAMPort() {
+    return this.globusGRAMPort;
+  }
+
+  public void setGlobusGRAMPort(int globusGRAMPort) {
+    this.globusGRAMPort = globusGRAMPort;
+    setGlobusGRAMPortIsSet(true);
+  }
+
+  public void unsetGlobusGRAMPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __GLOBUSGRAMPORT_ISSET_ID);
+  }
+
+  /** Returns true if field globusGRAMPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetGlobusGRAMPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __GLOBUSGRAMPORT_ISSET_ID);
+  }
+
+  public void setGlobusGRAMPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __GLOBUSGRAMPORT_ISSET_ID, value);
+  }
+
+  public String getUnicoreBESEndPoint() {
+    return this.unicoreBESEndPoint;
+  }
+
+  public void setUnicoreBESEndPoint(String unicoreBESEndPoint) {
+    this.unicoreBESEndPoint = unicoreBESEndPoint;
+  }
+
+  public void unsetUnicoreBESEndPoint() {
+    this.unicoreBESEndPoint = null;
+  }
+
+  /** Returns true if field unicoreBESEndPoint is set (has been assigned a value) and false otherwise */
+  public boolean isSetUnicoreBESEndPoint() {
+    return this.unicoreBESEndPoint != null;
+  }
+
+  public void setUnicoreBESEndPointIsSet(boolean value) {
+    if (!value) {
+      this.unicoreBESEndPoint = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case IS_EMPTY:
+      if (value == null) {
+        unsetIsEmpty();
+      } else {
+        setIsEmpty((Boolean)value);
+      }
+      break;
+
+    case PREFERED_JOB_SUBMISSION_PROTOCOL:
+      if (value == null) {
+        unsetPreferedJobSubmissionProtocol();
+      } else {
+        setPreferedJobSubmissionProtocol((JobSubmissionProtocol)value);
+      }
+      break;
+
+    case SSH_JOB_SUBMISSION_INFO:
+      if (value == null) {
+        unsetSshJobSubmissionInfo();
+      } else {
+        setSshJobSubmissionInfo((SSHJobSubmission)value);
+      }
+      break;
+
+    case GLOBUS_GRAMHOST:
+      if (value == null) {
+        unsetGlobusGRAMHost();
+      } else {
+        setGlobusGRAMHost((String)value);
+      }
+      break;
+
+    case GLOBUS_GRAMPORT:
+      if (value == null) {
+        unsetGlobusGRAMPort();
+      } else {
+        setGlobusGRAMPort((Integer)value);
+      }
+      break;
+
+    case UNICORE_BESEND_POINT:
+      if (value == null) {
+        unsetUnicoreBESEndPoint();
+      } else {
+        setUnicoreBESEndPoint((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case IS_EMPTY:
+      return Boolean.valueOf(isIsEmpty());
+
+    case PREFERED_JOB_SUBMISSION_PROTOCOL:
+      return getPreferedJobSubmissionProtocol();
+
+    case SSH_JOB_SUBMISSION_INFO:
+      return getSshJobSubmissionInfo();
+
+    case GLOBUS_GRAMHOST:
+      return getGlobusGRAMHost();
+
+    case GLOBUS_GRAMPORT:
+      return Integer.valueOf(getGlobusGRAMPort());
+
+    case UNICORE_BESEND_POINT:
+      return getUnicoreBESEndPoint();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case IS_EMPTY:
+      return isSetIsEmpty();
+    case PREFERED_JOB_SUBMISSION_PROTOCOL:
+      return isSetPreferedJobSubmissionProtocol();
+    case SSH_JOB_SUBMISSION_INFO:
+      return isSetSshJobSubmissionInfo();
+    case GLOBUS_GRAMHOST:
+      return isSetGlobusGRAMHost();
+    case GLOBUS_GRAMPORT:
+      return isSetGlobusGRAMPort();
+    case UNICORE_BESEND_POINT:
+      return isSetUnicoreBESEndPoint();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobSubmissionProtocols)
+      return this.equals((JobSubmissionProtocols)that);
+    return false;
+  }
+
+  public boolean equals(JobSubmissionProtocols that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_isEmpty = true;
+    boolean that_present_isEmpty = true;
+    if (this_present_isEmpty || that_present_isEmpty) {
+      if (!(this_present_isEmpty && that_present_isEmpty))
+        return false;
+      if (this.isEmpty != that.isEmpty)
+        return false;
+    }
+
+    boolean this_present_preferedJobSubmissionProtocol = true && this.isSetPreferedJobSubmissionProtocol();
+    boolean that_present_preferedJobSubmissionProtocol = true && that.isSetPreferedJobSubmissionProtocol();
+    if (this_present_preferedJobSubmissionProtocol || that_present_preferedJobSubmissionProtocol) {
+      if (!(this_present_preferedJobSubmissionProtocol && that_present_preferedJobSubmissionProtocol))
+        return false;
+      if (!this.preferedJobSubmissionProtocol.equals(that.preferedJobSubmissionProtocol))
+        return false;
+    }
+
+    boolean this_present_sshJobSubmissionInfo = true && this.isSetSshJobSubmissionInfo();
+    boolean that_present_sshJobSubmissionInfo = true && that.isSetSshJobSubmissionInfo();
+    if (this_present_sshJobSubmissionInfo || that_present_sshJobSubmissionInfo) {
+      if (!(this_present_sshJobSubmissionInfo && that_present_sshJobSubmissionInfo))
+        return false;
+      if (!this.sshJobSubmissionInfo.equals(that.sshJobSubmissionInfo))
+        return false;
+    }
+
+    boolean this_present_globusGRAMHost = true && this.isSetGlobusGRAMHost();
+    boolean that_present_globusGRAMHost = true && that.isSetGlobusGRAMHost();
+    if (this_present_globusGRAMHost || that_present_globusGRAMHost) {
+      if (!(this_present_globusGRAMHost && that_present_globusGRAMHost))
+        return false;
+      if (!this.globusGRAMHost.equals(that.globusGRAMHost))
+        return false;
+    }
+
+    boolean this_present_globusGRAMPort = true && this.isSetGlobusGRAMPort();
+    boolean that_present_globusGRAMPort = true && that.isSetGlobusGRAMPort();
+    if (this_present_globusGRAMPort || that_present_globusGRAMPort) {
+      if (!(this_present_globusGRAMPort && that_present_globusGRAMPort))
+        return false;
+      if (this.globusGRAMPort != that.globusGRAMPort)
+        return false;
+    }
+
+    boolean this_present_unicoreBESEndPoint = true && this.isSetUnicoreBESEndPoint();
+    boolean that_present_unicoreBESEndPoint = true && that.isSetUnicoreBESEndPoint();
+    if (this_present_unicoreBESEndPoint || that_present_unicoreBESEndPoint) {
+      if (!(this_present_unicoreBESEndPoint && that_present_unicoreBESEndPoint))
+        return false;
+      if (!this.unicoreBESEndPoint.equals(that.unicoreBESEndPoint))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(JobSubmissionProtocols other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetIsEmpty()).compareTo(other.isSetIsEmpty());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIsEmpty()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isEmpty, other.isEmpty);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPreferedJobSubmissionProtocol()).compareTo(other.isSetPreferedJobSubmissionProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPreferedJobSubmissionProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferedJobSubmissionProtocol, other.preferedJobSubmissionProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSshJobSubmissionInfo()).compareTo(other.isSetSshJobSubmissionInfo());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSshJobSubmissionInfo()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshJobSubmissionInfo, other.sshJobSubmissionInfo);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGlobusGRAMHost()).compareTo(other.isSetGlobusGRAMHost());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGlobusGRAMHost()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.globusGRAMHost, other.globusGRAMHost);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGlobusGRAMPort()).compareTo(other.isSetGlobusGRAMPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGlobusGRAMPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.globusGRAMPort, other.globusGRAMPort);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUnicoreBESEndPoint()).compareTo(other.isSetUnicoreBESEndPoint());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUnicoreBESEndPoint()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unicoreBESEndPoint, other.unicoreBESEndPoint);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("JobSubmissionProtocols(");
+    boolean first = true;
+
+    sb.append("isEmpty:");
+    sb.append(this.isEmpty);
+    first = false;
+    if (isSetPreferedJobSubmissionProtocol()) {
+      if (!first) sb.append(", ");
+      sb.append("preferedJobSubmissionProtocol:");
+      if (this.preferedJobSubmissionProtocol == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.preferedJobSubmissionProtocol);
+      }
+      first = false;
+    }
+    if (isSetSshJobSubmissionInfo()) {
+      if (!first) sb.append(", ");
+      sb.append("sshJobSubmissionInfo:");
+      if (this.sshJobSubmissionInfo == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.sshJobSubmissionInfo);
+      }
+      first = false;
+    }
+    if (isSetGlobusGRAMHost()) {
+      if (!first) sb.append(", ");
+      sb.append("globusGRAMHost:");
+      if (this.globusGRAMHost == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.globusGRAMHost);
+      }
+      first = false;
+    }
+    if (isSetGlobusGRAMPort()) {
+      if (!first) sb.append(", ");
+      sb.append("globusGRAMPort:");
+      sb.append(this.globusGRAMPort);
+      first = false;
+    }
+    if (isSetUnicoreBESEndPoint()) {
+      if (!first) sb.append(", ");
+      sb.append("unicoreBESEndPoint:");
+      if (this.unicoreBESEndPoint == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.unicoreBESEndPoint);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetIsEmpty()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'isEmpty' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+    if (sshJobSubmissionInfo != null) {
+      sshJobSubmissionInfo.validate();
+    }
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class JobSubmissionProtocolsStandardSchemeFactory implements SchemeFactory {
+    public JobSubmissionProtocolsStandardScheme getScheme() {
+      return new JobSubmissionProtocolsStandardScheme();
+    }
+  }
+
+  private static class JobSubmissionProtocolsStandardScheme extends StandardScheme<JobSubmissionProtocols> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobSubmissionProtocols struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // IS_EMPTY
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.isEmpty = iprot.readBool();
+              struct.setIsEmptyIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PREFERED_JOB_SUBMISSION_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.preferedJobSubmissionProtocol = JobSubmissionProtocol.findByValue(iprot.readI32());
+              struct.setPreferedJobSubmissionProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // SSH_JOB_SUBMISSION_INFO
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.sshJobSubmissionInfo = new SSHJobSubmission();
+              struct.sshJobSubmissionInfo.read(iprot);
+              struct.setSshJobSubmissionInfoIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // GLOBUS_GRAMHOST
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.globusGRAMHost = iprot.readString();
+              struct.setGlobusGRAMHostIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // GLOBUS_GRAMPORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.globusGRAMPort = iprot.readI32();
+              struct.setGlobusGRAMPortIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // UNICORE_BESEND_POINT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.unicoreBESEndPoint = iprot.readString();
+              struct.setUnicoreBESEndPointIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, JobSubmissionProtocols struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(IS_EMPTY_FIELD_DESC);
+      oprot.writeBool(struct.isEmpty);
+      oprot.writeFieldEnd();
+      if (struct.preferedJobSubmissionProtocol != null) {
+        if (struct.isSetPreferedJobSubmissionProtocol()) {
+          oprot.writeFieldBegin(PREFERED_JOB_SUBMISSION_PROTOCOL_FIELD_DESC);
+          oprot.writeI32(struct.preferedJobSubmissionProtocol.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.sshJobSubmissionInfo != null) {
+        if (struct.isSetSshJobSubmissionInfo()) {
+          oprot.writeFieldBegin(SSH_JOB_SUBMISSION_INFO_FIELD_DESC);
+          struct.sshJobSubmissionInfo.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.globusGRAMHost != null) {
+        if (struct.isSetGlobusGRAMHost()) {
+          oprot.writeFieldBegin(GLOBUS_GRAMHOST_FIELD_DESC);
+          oprot.writeString(struct.globusGRAMHost);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetGlobusGRAMPort()) {
+        oprot.writeFieldBegin(GLOBUS_GRAMPORT_FIELD_DESC);
+        oprot.writeI32(struct.globusGRAMPort);
+        oprot.writeFieldEnd();
+      }
+      if (struct.unicoreBESEndPoint != null) {
+        if (struct.isSetUnicoreBESEndPoint()) {
+          oprot.writeFieldBegin(UNICORE_BESEND_POINT_FIELD_DESC);
+          oprot.writeString(struct.unicoreBESEndPoint);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobSubmissionProtocolsTupleSchemeFactory implements SchemeFactory {
+    public JobSubmissionProtocolsTupleScheme getScheme() {
+      return new JobSubmissionProtocolsTupleScheme();
+    }
+  }
+
+  private static class JobSubmissionProtocolsTupleScheme extends TupleScheme<JobSubmissionProtocols> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobSubmissionProtocols struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.isEmpty);
+      BitSet optionals = new BitSet();
+      if (struct.isSetPreferedJobSubmissionProtocol()) {
+        optionals.set(0);
+      }
+      if (struct.isSetSshJobSubmissionInfo()) {
+        optionals.set(1);
+      }
+      if (struct.isSetGlobusGRAMHost()) {
+        optionals.set(2);
+      }
+      if (struct.isSetGlobusGRAMPort()) {
+        optionals.set(3);
+      }
+      if (struct.isSetUnicoreBESEndPoint()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetPreferedJobSubmissionProtocol()) {
+        oprot.writeI32(struct.preferedJobSubmissionProtocol.getValue());
+      }
+      if (struct.isSetSshJobSubmissionInfo()) {
+        struct.sshJobSubmissionInfo.write(oprot);
+      }
+      if (struct.isSetGlobusGRAMHost()) {
+        oprot.writeString(struct.globusGRAMHost);
+      }
+      if (struct.isSetGlobusGRAMPort()) {
+        oprot.writeI32(struct.globusGRAMPort);
+      }
+      if (struct.isSetUnicoreBESEndPoint()) {
+        oprot.writeString(struct.unicoreBESEndPoint);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobSubmissionProtocols struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.isEmpty = iprot.readBool();
+      struct.setIsEmptyIsSet(true);
+      BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        struct.preferedJobSubmissionProtocol = JobSubmissionProtocol.findByValue(iprot.readI32());
+        struct.setPreferedJobSubmissionProtocolIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.sshJobSubmissionInfo = new SSHJobSubmission();
+        struct.sshJobSubmissionInfo.read(iprot);
+        struct.setSshJobSubmissionInfoIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.globusGRAMHost = iprot.readString();
+        struct.setGlobusGRAMHostIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.globusGRAMPort = iprot.readI32();
+        struct.setGlobusGRAMPortIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.unicoreBESEndPoint = iprot.readString();
+        struct.setUnicoreBESEndPointIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/c1a1bad5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ResourceJobManager.java
new file mode 100644
index 0000000..120602c
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/ResourceJobManager.java
@@ -0,0 +1,83 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of local resource job managers supported by Airavata
+ * 
+ * FORK:
+ *  Forking of commands without any job manager
+ * 
+ * PBS:
+ *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
+ * 
+ * UGE:
+ *  Univa Grid Engine, a variation of PBS implementation.
+ * 
+ * SLURM:
+ *  The Simple Linux Utility for Resource Management is a open source workload manager.
+ * 
+ */
+@SuppressWarnings("all") public enum ResourceJobManager implements org.apache.thrift.TEnum {
+  FORK(0),
+  PBS(1),
+  UGE(2),
+  SLURM(3);
+
+  private final int value;
+
+  private ResourceJobManager(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static ResourceJobManager findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return FORK;
+      case 1:
+        return PBS;
+      case 2:
+        return UGE;
+      case 3:
+        return SLURM;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/c1a1bad5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SCPDataMovement.java
new file mode 100644
index 0000000..17aa791
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SCPDataMovement.java
@@ -0,0 +1,511 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
+
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SCPDataMovementStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SCPDataMovementTupleSchemeFactory());
+  }
+
+  private SecurityProtocol securityProtocol; // required
+  private int sshPort; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)1, "securityProtocol"),
+    SSH_PORT((short)2, "sshPort");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 2: // SSH_PORT
+          return SSH_PORT;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __SSHPORT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.SSH_PORT};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
+    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SCPDataMovement.class, metaDataMap);
+  }
+
+  public SCPDataMovement() {
+    this.sshPort = 22;
+
+  }
+
+  public SCPDataMovement(
+    SecurityProtocol securityProtocol)
+  {
+    this();
+    this.securityProtocol = securityProtocol;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SCPDataMovement(SCPDataMovement other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    this.sshPort = other.sshPort;
+  }
+
+  public SCPDataMovement deepCopy() {
+    return new SCPDataMovement(this);
+  }
+
+  @Override
+  public void clear() {
+    this.securityProtocol = null;
+    this.sshPort = 22;
+
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public int getSshPort() {
+    return this.sshPort;
+  }
+
+  public void setSshPort(int sshPort) {
+    this.sshPort = sshPort;
+    setSshPortIsSet(true);
+  }
+
+  public void unsetSshPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetSshPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  public void setSshPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case SSH_PORT:
+      if (value == null) {
+        unsetSshPort();
+      } else {
+        setSshPort((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case SSH_PORT:
+      return Integer.valueOf(getSshPort());
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case SSH_PORT:
+      return isSetSshPort();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SCPDataMovement)
+      return this.equals((SCPDataMovement)that);
+    return false;
+  }
+
+  public boolean equals(SCPDataMovement that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_sshPort = true && this.isSetSshPort();
+    boolean that_present_sshPort = true && that.isSetSshPort();
+    if (this_present_sshPort || that_present_sshPort) {
+      if (!(this_present_sshPort && that_present_sshPort))
+        return false;
+      if (this.sshPort != that.sshPort)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(SCPDataMovement other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSshPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("SCPDataMovement(");
+    boolean first = true;
+
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (isSetSshPort()) {
+      if (!first) sb.append(", ");
+      sb.append("sshPort:");
+      sb.append(this.sshPort);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetSecurityProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class SCPDataMovementStandardSchemeFactory implements SchemeFactory {
+    public SCPDataMovementStandardScheme getScheme() {
+      return new SCPDataMovementStandardScheme();
+    }
+  }
+
+  private static class SCPDataMovementStandardScheme extends StandardScheme<SCPDataMovement> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SSH_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.sshPort = iprot.readI32();
+              struct.setSshPortIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
+        oprot.writeI32(struct.sshPort);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SCPDataMovementTupleSchemeFactory implements SchemeFactory {
+    public SCPDataMovementTupleScheme getScheme() {
+      return new SCPDataMovementTupleScheme();
+    }
+  }
+
+  private static class SCPDataMovementTupleScheme extends TupleScheme<SCPDataMovement> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.securityProtocol.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetSshPort()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetSshPort()) {
+        oprot.writeI32(struct.sshPort);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.sshPort = iprot.readI32();
+        struct.setSshPortIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/c1a1bad5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SSHJobSubmission.java
new file mode 100644
index 0000000..01658bb
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SSHJobSubmission.java
@@ -0,0 +1,511 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SSHJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SSHJobSubmissionTupleSchemeFactory());
+  }
+
+  private ResourceJobManager resourceJobManager; // required
+  private int sshPort; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see ResourceJobManager
+     */
+    RESOURCE_JOB_MANAGER((short)2, "resourceJobManager"),
+    SSH_PORT((short)3, "sshPort");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 2: // RESOURCE_JOB_MANAGER
+          return RESOURCE_JOB_MANAGER;
+        case 3: // SSH_PORT
+          return SSH_PORT;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __SSHPORT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.SSH_PORT};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManager.class)));
+    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SSHJobSubmission.class, metaDataMap);
+  }
+
+  public SSHJobSubmission() {
+    this.sshPort = 22;
+
+  }
+
+  public SSHJobSubmission(
+    ResourceJobManager resourceJobManager)
+  {
+    this();
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SSHJobSubmission(SSHJobSubmission other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetResourceJobManager()) {
+      this.resourceJobManager = other.resourceJobManager;
+    }
+    this.sshPort = other.sshPort;
+  }
+
+  public SSHJobSubmission deepCopy() {
+    return new SSHJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.resourceJobManager = null;
+    this.sshPort = 22;
+
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public ResourceJobManager getResourceJobManager() {
+    return this.resourceJobManager;
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public void setResourceJobManager(ResourceJobManager resourceJobManager) {
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  public void unsetResourceJobManager() {
+    this.resourceJobManager = null;
+  }
+
+  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManager() {
+    return this.resourceJobManager != null;
+  }
+
+  public void setResourceJobManagerIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManager = null;
+    }
+  }
+
+  public int getSshPort() {
+    return this.sshPort;
+  }
+
+  public void setSshPort(int sshPort) {
+    this.sshPort = sshPort;
+    setSshPortIsSet(true);
+  }
+
+  public void unsetSshPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetSshPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  public void setSshPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RESOURCE_JOB_MANAGER:
+      if (value == null) {
+        unsetResourceJobManager();
+      } else {
+        setResourceJobManager((ResourceJobManager)value);
+      }
+      break;
+
+    case SSH_PORT:
+      if (value == null) {
+        unsetSshPort();
+      } else {
+        setSshPort((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RESOURCE_JOB_MANAGER:
+      return getResourceJobManager();
+
+    case SSH_PORT:
+      return Integer.valueOf(getSshPort());
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case RESOURCE_JOB_MANAGER:
+      return isSetResourceJobManager();
+    case SSH_PORT:
+      return isSetSshPort();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SSHJobSubmission)
+      return this.equals((SSHJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(SSHJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
+    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
+    if (this_present_resourceJobManager || that_present_resourceJobManager) {
+      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
+        return false;
+      if (!this.resourceJobManager.equals(that.resourceJobManager))
+        return false;
+    }
+
+    boolean this_present_sshPort = true && this.isSetSshPort();
+    boolean that_present_sshPort = true && that.isSetSshPort();
+    if (this_present_sshPort || that_present_sshPort) {
+      if (!(this_present_sshPort && that_present_sshPort))
+        return false;
+      if (this.sshPort != that.sshPort)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(SSHJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManager()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSshPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("SSHJobSubmission(");
+    boolean first = true;
+
+    sb.append("resourceJobManager:");
+    if (this.resourceJobManager == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManager);
+    }
+    first = false;
+    if (isSetSshPort()) {
+      if (!first) sb.append(", ");
+      sb.append("sshPort:");
+      sb.append(this.sshPort);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetResourceJobManager()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class SSHJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public SSHJobSubmissionStandardScheme getScheme() {
+      return new SSHJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class SSHJobSubmissionStandardScheme extends StandardScheme<SSHJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 2: // RESOURCE_JOB_MANAGER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+              struct.setResourceJobManagerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // SSH_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.sshPort = iprot.readI32();
+              struct.setSshPortIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.resourceJobManager != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
+        oprot.writeI32(struct.resourceJobManager.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
+        oprot.writeI32(struct.sshPort);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SSHJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public SSHJobSubmissionTupleScheme getScheme() {
+      return new SSHJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class SSHJobSubmissionTupleScheme extends TupleScheme<SSHJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.resourceJobManager.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetSshPort()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetSshPort()) {
+        oprot.writeI32(struct.sshPort);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+      struct.setResourceJobManagerIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.sshPort = iprot.readI32();
+        struct.setSshPortIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/c1a1bad5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SecurityProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SecurityProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SecurityProtocol.java
new file mode 100644
index 0000000..fcf549d
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/SecurityProtocol.java
@@ -0,0 +1,82 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of security authentication and authorization mechanisms supported by Airavata. This enumeration just
+ *  describes the supported mechanism. The corresponding security credentials are registered with Airavata Credential
+ *  store.
+ * 
+ * USERNAME_PASSWORD:
+ *  A User Name.
+ * 
+ * SSH_KEYS:
+ *  SSH Keys
+ * 
+ */
+@SuppressWarnings("all") public enum SecurityProtocol implements org.apache.thrift.TEnum {
+  USERNAME_PASSWORD(0),
+  SSH_KEYS(1),
+  GSI(2),
+  KERBEROS(3),
+  OAUTH(4);
+
+  private final int value;
+
+  private SecurityProtocol(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static SecurityProtocol findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return USERNAME_PASSWORD;
+      case 1:
+        return SSH_KEYS;
+      case 2:
+        return GSI;
+      case 3:
+        return KERBEROS;
+      case 4:
+        return OAUTH;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/c1a1bad5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/applicationCatalogDataModelConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/applicationCatalogDataModelConstants.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/applicationCatalogDataModelConstants.java
new file mode 100644
index 0000000..14070bb
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/applicationCatalogDataModelConstants.java
@@ -0,0 +1,55 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class applicationCatalogDataModelConstants {
+
+  public static final String DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/c1a1bad5/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
index b534adb..d5fb922 100644
--- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
@@ -28,6 +28,7 @@ include "airavataErrors.thrift"
 include "airavataDataModel.thrift"
 include "experimentModel.thrift"
 include "workspaceModel.thrift"
+include "applicationCatalogAPI.thrift"
 
 namespace java org.apache.airavata.api
 namespace php Airavata.API


Mime
View raw message