You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/07/24 20:44:56 UTC

[2/3] git commit: fixing monitoring to monitor with job name too

fixing monitoring to monitor with job name too


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/5a22a355
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/5a22a355
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/5a22a355

Branch: refs/heads/master
Commit: 5a22a3557396959d7a8c94f5658dcf158d9fbf38
Parents: dd7e6c7
Author: lahiru <la...@apache.org>
Authored: Thu Jul 24 14:43:47 2014 -0400
Committer: lahiru <la...@apache.org>
Committed: Thu Jul 24 14:43:47 2014 -0400

----------------------------------------------------------------------
 .../lib/airavata/experimentModel_types.cpp      |  30 +-
 .../lib/airavata/experimentModel_types.h        |  31 +-
 .../resources/conf/app-catalog-identifiers.ini  |  24 +-
 .../Model/Workspace/Experiment/Types.php        |  20 +
 .../computeresource/UnicoreDataMovement.java    | 609 +++++++++++++++++++
 .../computeresource/UnicoreJobSubmission.java   | 609 +++++++++++++++++++
 .../main/resources/airavata-server.properties   |  90 ---
 .../airavata/gfac/core/monitor/MonitorID.java   |  14 +-
 .../src/test/resources/PBSTemplate.xslt         |  10 +-
 .../gsissh/provider/impl/GSISSHProvider.java    |   3 +-
 .../gfac/gsissh/util/GFACGSISSHUtils.java       |   2 +-
 .../gfac/local/provider/impl/LocalProvider.java |   2 +-
 .../airavata/gfac/monitor/HPCMonitorID.java     |   5 +-
 .../monitor/impl/pull/qstat/HPCPullMonitor.java |   4 +-
 .../impl/pull/qstat/ResourceConnection.java     |   2 +-
 .../monitor/impl/push/amqp/BasicConsumer.java   |   2 +-
 .../job/QstatMonitorTestWithMyProxyAuth.java    |   2 +-
 .../airavata/gfac/ssh/util/GFACSSHUtils.java    |   2 +-
 .../gfac/services/impl/CredentialStoreTest.java |  18 +-
 .../src/test/resources/PBSTemplate.xslt         |  10 +-
 .../gsi/ssh/api/job/PBSOutputParser.java        |  34 +-
 .../gsi/ssh/api/job/SGEOutputParser.java        |   2 +-
 .../gsi/ssh/api/job/SlurmOutputParser.java      |  45 +-
 23 files changed, 1382 insertions(+), 188 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
index b6c23d7..a6a6855 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
@@ -1658,8 +1658,8 @@ void swap(ErrorDetails &a, ErrorDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* JobDetails::ascii_fingerprint = "5946807521C11BC65075D497F8568057";
-const uint8_t JobDetails::binary_fingerprint[16] = {0x59,0x46,0x80,0x75,0x21,0xC1,0x1B,0xC6,0x50,0x75,0xD4,0x97,0xF8,0x56,0x80,0x57};
+const char* JobDetails::ascii_fingerprint = "827E1049FA5B4D33C335B59DE49B8F88";
+const uint8_t JobDetails::binary_fingerprint[16] = {0x82,0x7E,0x10,0x49,0xFA,0x5B,0x4D,0x33,0xC3,0x35,0xB5,0x9D,0xE4,0x9B,0x8F,0x88};
 
 uint32_t JobDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -1751,6 +1751,14 @@ uint32_t JobDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->jobName);
+          this->__isset.jobName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -1812,6 +1820,11 @@ uint32_t JobDetails::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeString(this->computeResourceConsumed);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.jobName) {
+    xfer += oprot->writeFieldBegin("jobName", ::apache::thrift::protocol::T_STRING, 8);
+    xfer += oprot->writeString(this->jobName);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -1826,6 +1839,7 @@ void swap(JobDetails &a, JobDetails &b) {
   swap(a.applicationStatus, b.applicationStatus);
   swap(a.errors, b.errors);
   swap(a.computeResourceConsumed, b.computeResourceConsumed);
+  swap(a.jobName, b.jobName);
   swap(a.__isset, b.__isset);
 }
 
@@ -1938,8 +1952,8 @@ void swap(DataTransferDetails &a, DataTransferDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* TaskDetails::ascii_fingerprint = "482C560A67EC84E3BEB13AFC5FEDA02C";
-const uint8_t TaskDetails::binary_fingerprint[16] = {0x48,0x2C,0x56,0x0A,0x67,0xEC,0x84,0xE3,0xBE,0xB1,0x3A,0xFC,0x5F,0xED,0xA0,0x2C};
+const char* TaskDetails::ascii_fingerprint = "5329C387E7633AF234038F8461F51097";
+const uint8_t TaskDetails::binary_fingerprint[16] = {0x53,0x29,0xC3,0x87,0xE7,0x63,0x3A,0xF2,0x34,0x03,0x8F,0x84,0x61,0xF5,0x10,0x97};
 
 uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2285,8 +2299,8 @@ void swap(TaskDetails &a, TaskDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* WorkflowNodeDetails::ascii_fingerprint = "95130A9D83D5C73D70BAEBDF11F2FFE7";
-const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0x95,0x13,0x0A,0x9D,0x83,0xD5,0xC7,0x3D,0x70,0xBA,0xEB,0xDF,0x11,0xF2,0xFF,0xE7};
+const char* WorkflowNodeDetails::ascii_fingerprint = "6ABC52FB94DCEC8D6AA3F1F3188E2691";
+const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0x6A,0xBC,0x52,0xFB,0x94,0xDC,0xEC,0x8D,0x6A,0xA3,0xF1,0xF3,0x18,0x8E,0x26,0x91};
 
 uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2741,8 +2755,8 @@ void swap(ValidationResults &a, ValidationResults &b) {
   swap(a.validationResultList, b.validationResultList);
 }
 
-const char* Experiment::ascii_fingerprint = "6B1FF2298EF5AE2B9EA8F76C2DFA9E8C";
-const uint8_t Experiment::binary_fingerprint[16] = {0x6B,0x1F,0xF2,0x29,0x8E,0xF5,0xAE,0x2B,0x9E,0xA8,0xF7,0x6C,0x2D,0xFA,0x9E,0x8C};
+const char* Experiment::ascii_fingerprint = "F814FB4A54E4B2B2B1BFB58C022A39D4";
+const uint8_t Experiment::binary_fingerprint[16] = {0xF8,0x14,0xFB,0x4A,0x54,0xE4,0xB2,0xB2,0xB1,0xBF,0xB5,0x8C,0x02,0x2A,0x39,0xD4};
 
 uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
index ea59445..aae3707 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
@@ -1163,21 +1163,22 @@ class ErrorDetails {
 void swap(ErrorDetails &a, ErrorDetails &b);
 
 typedef struct _JobDetails__isset {
-  _JobDetails__isset() : creationTime(false), jobStatus(false), applicationStatus(false), errors(false), computeResourceConsumed(false) {}
+  _JobDetails__isset() : creationTime(false), jobStatus(false), applicationStatus(false), errors(false), computeResourceConsumed(false), jobName(false) {}
   bool creationTime;
   bool jobStatus;
   bool applicationStatus;
   bool errors;
   bool computeResourceConsumed;
+  bool jobName;
 } _JobDetails__isset;
 
 class JobDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "5946807521C11BC65075D497F8568057";
-  static const uint8_t binary_fingerprint[16]; // = {0x59,0x46,0x80,0x75,0x21,0xC1,0x1B,0xC6,0x50,0x75,0xD4,0x97,0xF8,0x56,0x80,0x57};
+  static const char* ascii_fingerprint; // = "827E1049FA5B4D33C335B59DE49B8F88";
+  static const uint8_t binary_fingerprint[16]; // = {0x82,0x7E,0x10,0x49,0xFA,0x5B,0x4D,0x33,0xC3,0x35,0xB5,0x9D,0xE4,0x9B,0x8F,0x88};
 
-  JobDetails() : jobID("DO_NOT_SET_AT_CLIENTS"), jobDescription(), creationTime(0), computeResourceConsumed() {
+  JobDetails() : jobID("DO_NOT_SET_AT_CLIENTS"), jobDescription(), creationTime(0), computeResourceConsumed(), jobName() {
   }
 
   virtual ~JobDetails() throw() {}
@@ -1189,6 +1190,7 @@ class JobDetails {
   ApplicationStatus applicationStatus;
   std::vector<ErrorDetails>  errors;
   std::string computeResourceConsumed;
+  std::string jobName;
 
   _JobDetails__isset __isset;
 
@@ -1225,6 +1227,11 @@ class JobDetails {
     __isset.computeResourceConsumed = true;
   }
 
+  void __set_jobName(const std::string& val) {
+    jobName = val;
+    __isset.jobName = true;
+  }
+
   bool operator == (const JobDetails & rhs) const
   {
     if (!(jobID == rhs.jobID))
@@ -1251,6 +1258,10 @@ class JobDetails {
       return false;
     else if (__isset.computeResourceConsumed && !(computeResourceConsumed == rhs.computeResourceConsumed))
       return false;
+    if (__isset.jobName != rhs.__isset.jobName)
+      return false;
+    else if (__isset.jobName && !(jobName == rhs.jobName))
+      return false;
     return true;
   }
   bool operator != (const JobDetails &rhs) const {
@@ -1357,8 +1368,8 @@ typedef struct _TaskDetails__isset {
 class TaskDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "482C560A67EC84E3BEB13AFC5FEDA02C";
-  static const uint8_t binary_fingerprint[16]; // = {0x48,0x2C,0x56,0x0A,0x67,0xEC,0x84,0xE3,0xBE,0xB1,0x3A,0xFC,0x5F,0xED,0xA0,0x2C};
+  static const char* ascii_fingerprint; // = "5329C387E7633AF234038F8461F51097";
+  static const uint8_t binary_fingerprint[16]; // = {0x53,0x29,0xC3,0x87,0xE7,0x63,0x3A,0xF2,0x34,0x03,0x8F,0x84,0x61,0xF5,0x10,0x97};
 
   TaskDetails() : taskID("DO_NOT_SET_AT_CLIENTS"), creationTime(0), applicationId(), applicationVersion(), applicationDeploymentId() {
   }
@@ -1536,8 +1547,8 @@ typedef struct _WorkflowNodeDetails__isset {
 class WorkflowNodeDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "95130A9D83D5C73D70BAEBDF11F2FFE7";
-  static const uint8_t binary_fingerprint[16]; // = {0x95,0x13,0x0A,0x9D,0x83,0xD5,0xC7,0x3D,0x70,0xBA,0xEB,0xDF,0x11,0xF2,0xFF,0xE7};
+  static const char* ascii_fingerprint; // = "6ABC52FB94DCEC8D6AA3F1F3188E2691";
+  static const uint8_t binary_fingerprint[16]; // = {0x6A,0xBC,0x52,0xFB,0x94,0xDC,0xEC,0x8D,0x6A,0xA3,0xF1,0xF3,0x18,0x8E,0x26,0x91};
 
   WorkflowNodeDetails() : nodeInstanceId("DO_NOT_SET_AT_CLIENTS"), creationTime(0), nodeName("SINGLE_APP_NODE"), executionUnit((ExecutionUnit::type)1), executionUnitData() {
     executionUnit = (ExecutionUnit::type)1;
@@ -1775,8 +1786,8 @@ typedef struct _Experiment__isset {
 class Experiment {
  public:
 
-  static const char* ascii_fingerprint; // = "6B1FF2298EF5AE2B9EA8F76C2DFA9E8C";
-  static const uint8_t binary_fingerprint[16]; // = {0x6B,0x1F,0xF2,0x29,0x8E,0xF5,0xAE,0x2B,0x9E,0xA8,0xF7,0x6C,0x2D,0xFA,0x9E,0x8C};
+  static const char* ascii_fingerprint; // = "F814FB4A54E4B2B2B1BFB58C022A39D4";
+  static const uint8_t binary_fingerprint[16]; // = {0xF8,0x14,0xFB,0x4A,0x54,0xE4,0xB2,0xB2,0xB1,0xBF,0xB5,0x8C,0x02,0x2A,0x39,0xD4};
 
   Experiment() : experimentID("DO_NOT_SET_AT_CLIENTS"), projectID("DEFAULT"), creationTime(0), userName(), name(), description(), applicationId(), applicationVersion(), workflowTemplateId(), workflowTemplateVersion(), workflowExecutionInstanceId() {
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/conf/app-catalog-identifiers.ini
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/conf/app-catalog-identifiers.ini b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/conf/app-catalog-identifiers.ini
index 672a566..7380248 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/conf/app-catalog-identifiers.ini
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/conf/app-catalog-identifiers.ini
@@ -1,14 +1,14 @@
 #Apache Airavata Gateway to Airavata Deployment Identifiers
-#Sun Jul 13 09:56:36 EDT 2014
-espressoInterfaceId=ESPRESSO_e13adcc6-5e6f-4660-a206-8ff0dada929f
-amberInterfaceId=Amber_7a99cdde-5cc1-423a-8ec9-47eddc809a9a
-gromacsInterfaceId=GROMACS_91ce8f05-c895-486e-8fc1-c1480d642754
-trinityInterfaceId=Trinity_9ae8f626-f263-44e1-8106-f18101337aa0
-stampedeResourceId=stampede.tacc.xsede.org_0a91c584-6814-48db-a7e2-723596a66d9f
-bigredResourceId=bigred2.uits.iu.edu_815a893b-d0a9-4798-a35f-27ea185a49fb
-trestlesResourceId=trestles.sdsc.xsede.org_b39751f9-1d02-4123-a797-41cfc2f050ad
-wrfInterfaceId=WRF_2957c31f-bd36-430a-8403-97f87f34958f
+#Wed Jul 23 10:48:34 EDT 2014
+espressoInterfaceId=ESPRESSO_fcc4ab64-94f8-40f1-9811-f919b7ee4cd9
+amberInterfaceId=Amber_0489ef37-1184-4f5d-93c8-5f42fdd559ad
+gromacsInterfaceId=GROMACS_9a9dd63b-598b-45d7-8277-b66e76032b95
+trinityInterfaceId=Trinity_7b826c4e-5b24-4db3-9fd9-8eb17e4deb04
+stampedeResourceId=stampede.tacc.xsede.org_a795bf30-b847-422d-b933-f9b55edc57d1
+bigredResourceId=bigred2.uits.iu.edu_c85e621d-86ad-4ff1-94a1-3fefb08f73bc
+trestlesResourceId=trestles.sdsc.xsede.org_dfba9778-8213-4f69-823c-d669725b9578
+wrfInterfaceId=WRF_a390e041-cae3-4b85-9bb9-e03df666deb9
 autoDockInterfaceId=
-nwChemInterfaceId=NWChem_3aa63bba-d86d-4c4b-b3d6-588da6519752
-lammpsInterfaceId=LAMMPS_0646b241-2a94-4de7-8518-1fbfd01b1c83
-echoInterfaceId=Echo_c6e6aaac-7d9d-44fc-aba2-63b5100528e8
+nwChemInterfaceId=NWChem_bdc7b97a-dd39-49cb-b203-6d779781d5c8
+lammpsInterfaceId=LAMMPS_f43520e2-b77a-4f11-b3b7-98693349fcd0
+echoInterfaceId=Echo_271e6d47-a5db-434e-8453-e27985b7ea59

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
index b5aa1ee..7a38eca 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
@@ -1981,6 +1981,7 @@ class JobDetails {
   public $applicationStatus = null;
   public $errors = null;
   public $computeResourceConsumed = null;
+  public $jobName = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -2020,6 +2021,10 @@ class JobDetails {
           'var' => 'computeResourceConsumed',
           'type' => TType::STRING,
           ),
+        8 => array(
+          'var' => 'jobName',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -2044,6 +2049,9 @@ class JobDetails {
       if (isset($vals['computeResourceConsumed'])) {
         $this->computeResourceConsumed = $vals['computeResourceConsumed'];
       }
+      if (isset($vals['jobName'])) {
+        $this->jobName = $vals['jobName'];
+      }
     }
   }
 
@@ -2128,6 +2136,13 @@ class JobDetails {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 8:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->jobName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -2194,6 +2209,11 @@ class JobDetails {
       $xfer += $output->writeString($this->computeResourceConsumed);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->jobName !== null) {
+      $xfer += $output->writeFieldBegin('jobName', TType::STRING, 8);
+      $xfer += $output->writeString($this->jobName);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
new file mode 100644
index 0000000..4bac5a0
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreDataMovement.java
@@ -0,0 +1,609 @@
+/**
+ * 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.computeresource;
+
+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;
+
+/**
+ * Data Movement through UnicoreStorage
+ * 
+ * unicoreEndPointURL:
+ *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
+ */
+@SuppressWarnings("all") public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  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)2);
+  private static final org.apache.thrift.protocol.TField UNICORE_END_POINT_URL_FIELD_DESC = new org.apache.thrift.protocol.TField("unicoreEndPointURL", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UnicoreDataMovementStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UnicoreDataMovementTupleSchemeFactory());
+  }
+
+  private String dataMovementInterfaceId; // required
+  private SecurityProtocol securityProtocol; // required
+  private String unicoreEndPointURL; // required
+
+  /** 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 {
+    DATA_MOVEMENT_INTERFACE_ID((short)1, "dataMovementInterfaceId"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    UNICORE_END_POINT_URL((short)3, "unicoreEndPointURL");
+
+    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: // DATA_MOVEMENT_INTERFACE_ID
+          return DATA_MOVEMENT_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // UNICORE_END_POINT_URL
+          return UNICORE_END_POINT_URL;
+        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
+  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.DATA_MOVEMENT_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    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.UNICORE_END_POINT_URL, new org.apache.thrift.meta_data.FieldMetaData("unicoreEndPointURL", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UnicoreDataMovement.class, metaDataMap);
+  }
+
+  public UnicoreDataMovement() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public UnicoreDataMovement(
+    String dataMovementInterfaceId,
+    SecurityProtocol securityProtocol,
+    String unicoreEndPointURL)
+  {
+    this();
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.unicoreEndPointURL = unicoreEndPointURL;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UnicoreDataMovement(UnicoreDataMovement other) {
+    if (other.isSetDataMovementInterfaceId()) {
+      this.dataMovementInterfaceId = other.dataMovementInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetUnicoreEndPointURL()) {
+      this.unicoreEndPointURL = other.unicoreEndPointURL;
+    }
+  }
+
+  public UnicoreDataMovement deepCopy() {
+    return new UnicoreDataMovement(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.unicoreEndPointURL = null;
+  }
+
+  public String getDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId;
+  }
+
+  public void setDataMovementInterfaceId(String dataMovementInterfaceId) {
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+  }
+
+  public void unsetDataMovementInterfaceId() {
+    this.dataMovementInterfaceId = null;
+  }
+
+  /** Returns true if field dataMovementInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId != null;
+  }
+
+  public void setDataMovementInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @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 String getUnicoreEndPointURL() {
+    return this.unicoreEndPointURL;
+  }
+
+  public void setUnicoreEndPointURL(String unicoreEndPointURL) {
+    this.unicoreEndPointURL = unicoreEndPointURL;
+  }
+
+  public void unsetUnicoreEndPointURL() {
+    this.unicoreEndPointURL = null;
+  }
+
+  /** Returns true if field unicoreEndPointURL is set (has been assigned a value) and false otherwise */
+  public boolean isSetUnicoreEndPointURL() {
+    return this.unicoreEndPointURL != null;
+  }
+
+  public void setUnicoreEndPointURLIsSet(boolean value) {
+    if (!value) {
+      this.unicoreEndPointURL = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      if (value == null) {
+        unsetDataMovementInterfaceId();
+      } else {
+        setDataMovementInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case UNICORE_END_POINT_URL:
+      if (value == null) {
+        unsetUnicoreEndPointURL();
+      } else {
+        setUnicoreEndPointURL((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      return getDataMovementInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case UNICORE_END_POINT_URL:
+      return getUnicoreEndPointURL();
+
+    }
+    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 DATA_MOVEMENT_INTERFACE_ID:
+      return isSetDataMovementInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case UNICORE_END_POINT_URL:
+      return isSetUnicoreEndPointURL();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UnicoreDataMovement)
+      return this.equals((UnicoreDataMovement)that);
+    return false;
+  }
+
+  public boolean equals(UnicoreDataMovement that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovementInterfaceId = true && this.isSetDataMovementInterfaceId();
+    boolean that_present_dataMovementInterfaceId = true && that.isSetDataMovementInterfaceId();
+    if (this_present_dataMovementInterfaceId || that_present_dataMovementInterfaceId) {
+      if (!(this_present_dataMovementInterfaceId && that_present_dataMovementInterfaceId))
+        return false;
+      if (!this.dataMovementInterfaceId.equals(that.dataMovementInterfaceId))
+        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_unicoreEndPointURL = true && this.isSetUnicoreEndPointURL();
+    boolean that_present_unicoreEndPointURL = true && that.isSetUnicoreEndPointURL();
+    if (this_present_unicoreEndPointURL || that_present_unicoreEndPointURL) {
+      if (!(this_present_unicoreEndPointURL && that_present_unicoreEndPointURL))
+        return false;
+      if (!this.unicoreEndPointURL.equals(that.unicoreEndPointURL))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(UnicoreDataMovement other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovementInterfaceId()).compareTo(other.isSetDataMovementInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementInterfaceId, other.dataMovementInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    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(isSetUnicoreEndPointURL()).compareTo(other.isSetUnicoreEndPointURL());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUnicoreEndPointURL()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unicoreEndPointURL, other.unicoreEndPointURL);
+      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("UnicoreDataMovement(");
+    boolean first = true;
+
+    sb.append("dataMovementInterfaceId:");
+    if (this.dataMovementInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("unicoreEndPointURL:");
+    if (this.unicoreEndPointURL == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.unicoreEndPointURL);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetDataMovementInterfaceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementInterfaceId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetSecurityProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
+    }
+
+    if (!isSetUnicoreEndPointURL()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'unicoreEndPointURL' 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 {
+      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 UnicoreDataMovementStandardSchemeFactory implements SchemeFactory {
+    public UnicoreDataMovementStandardScheme getScheme() {
+      return new UnicoreDataMovementStandardScheme();
+    }
+  }
+
+  private static class UnicoreDataMovementStandardScheme extends StandardScheme<UnicoreDataMovement> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UnicoreDataMovement 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: // DATA_MOVEMENT_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovementInterfaceId = iprot.readString();
+              struct.setDataMovementInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // 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 3: // UNICORE_END_POINT_URL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.unicoreEndPointURL = iprot.readString();
+              struct.setUnicoreEndPointURLIsSet(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, UnicoreDataMovement struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovementInterfaceId != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovementInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.unicoreEndPointURL != null) {
+        oprot.writeFieldBegin(UNICORE_END_POINT_URL_FIELD_DESC);
+        oprot.writeString(struct.unicoreEndPointURL);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UnicoreDataMovementTupleSchemeFactory implements SchemeFactory {
+    public UnicoreDataMovementTupleScheme getScheme() {
+      return new UnicoreDataMovementTupleScheme();
+    }
+  }
+
+  private static class UnicoreDataMovementTupleScheme extends TupleScheme<UnicoreDataMovement> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UnicoreDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovementInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      oprot.writeString(struct.unicoreEndPointURL);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UnicoreDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovementInterfaceId = iprot.readString();
+      struct.setDataMovementInterfaceIdIsSet(true);
+      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.unicoreEndPointURL = iprot.readString();
+      struct.setUnicoreEndPointURLIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
new file mode 100644
index 0000000..9a3ed90
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -0,0 +1,609 @@
+/**
+ * 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.computeresource;
+
+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;
+
+/**
+ * Unicore Job Submission
+ * 
+ * unicoreEndPointURL:
+ *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
+ */
+@SuppressWarnings("all") public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  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)2);
+  private static final org.apache.thrift.protocol.TField UNICORE_END_POINT_URL_FIELD_DESC = new org.apache.thrift.protocol.TField("unicoreEndPointURL", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UnicoreJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UnicoreJobSubmissionTupleSchemeFactory());
+  }
+
+  private String jobSubmissionInterfaceId; // required
+  private SecurityProtocol securityProtocol; // required
+  private String unicoreEndPointURL; // required
+
+  /** 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 {
+    JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    UNICORE_END_POINT_URL((short)3, "unicoreEndPointURL");
+
+    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: // JOB_SUBMISSION_INTERFACE_ID
+          return JOB_SUBMISSION_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // UNICORE_END_POINT_URL
+          return UNICORE_END_POINT_URL;
+        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
+  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.JOB_SUBMISSION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    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.UNICORE_END_POINT_URL, new org.apache.thrift.meta_data.FieldMetaData("unicoreEndPointURL", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UnicoreJobSubmission.class, metaDataMap);
+  }
+
+  public UnicoreJobSubmission() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public UnicoreJobSubmission(
+    String jobSubmissionInterfaceId,
+    SecurityProtocol securityProtocol,
+    String unicoreEndPointURL)
+  {
+    this();
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.unicoreEndPointURL = unicoreEndPointURL;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UnicoreJobSubmission(UnicoreJobSubmission other) {
+    if (other.isSetJobSubmissionInterfaceId()) {
+      this.jobSubmissionInterfaceId = other.jobSubmissionInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetUnicoreEndPointURL()) {
+      this.unicoreEndPointURL = other.unicoreEndPointURL;
+    }
+  }
+
+  public UnicoreJobSubmission deepCopy() {
+    return new UnicoreJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.unicoreEndPointURL = null;
+  }
+
+  public String getJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId;
+  }
+
+  public void setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+  }
+
+  public void unsetJobSubmissionInterfaceId() {
+    this.jobSubmissionInterfaceId = null;
+  }
+
+  /** Returns true if field jobSubmissionInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId != null;
+  }
+
+  public void setJobSubmissionInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @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 String getUnicoreEndPointURL() {
+    return this.unicoreEndPointURL;
+  }
+
+  public void setUnicoreEndPointURL(String unicoreEndPointURL) {
+    this.unicoreEndPointURL = unicoreEndPointURL;
+  }
+
+  public void unsetUnicoreEndPointURL() {
+    this.unicoreEndPointURL = null;
+  }
+
+  /** Returns true if field unicoreEndPointURL is set (has been assigned a value) and false otherwise */
+  public boolean isSetUnicoreEndPointURL() {
+    return this.unicoreEndPointURL != null;
+  }
+
+  public void setUnicoreEndPointURLIsSet(boolean value) {
+    if (!value) {
+      this.unicoreEndPointURL = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      if (value == null) {
+        unsetJobSubmissionInterfaceId();
+      } else {
+        setJobSubmissionInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case UNICORE_END_POINT_URL:
+      if (value == null) {
+        unsetUnicoreEndPointURL();
+      } else {
+        setUnicoreEndPointURL((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      return getJobSubmissionInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case UNICORE_END_POINT_URL:
+      return getUnicoreEndPointURL();
+
+    }
+    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 JOB_SUBMISSION_INTERFACE_ID:
+      return isSetJobSubmissionInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case UNICORE_END_POINT_URL:
+      return isSetUnicoreEndPointURL();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UnicoreJobSubmission)
+      return this.equals((UnicoreJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(UnicoreJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionInterfaceId = true && this.isSetJobSubmissionInterfaceId();
+    boolean that_present_jobSubmissionInterfaceId = true && that.isSetJobSubmissionInterfaceId();
+    if (this_present_jobSubmissionInterfaceId || that_present_jobSubmissionInterfaceId) {
+      if (!(this_present_jobSubmissionInterfaceId && that_present_jobSubmissionInterfaceId))
+        return false;
+      if (!this.jobSubmissionInterfaceId.equals(that.jobSubmissionInterfaceId))
+        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_unicoreEndPointURL = true && this.isSetUnicoreEndPointURL();
+    boolean that_present_unicoreEndPointURL = true && that.isSetUnicoreEndPointURL();
+    if (this_present_unicoreEndPointURL || that_present_unicoreEndPointURL) {
+      if (!(this_present_unicoreEndPointURL && that_present_unicoreEndPointURL))
+        return false;
+      if (!this.unicoreEndPointURL.equals(that.unicoreEndPointURL))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(UnicoreJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionInterfaceId()).compareTo(other.isSetJobSubmissionInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionInterfaceId, other.jobSubmissionInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    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(isSetUnicoreEndPointURL()).compareTo(other.isSetUnicoreEndPointURL());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUnicoreEndPointURL()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unicoreEndPointURL, other.unicoreEndPointURL);
+      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("UnicoreJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionInterfaceId:");
+    if (this.jobSubmissionInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("unicoreEndPointURL:");
+    if (this.unicoreEndPointURL == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.unicoreEndPointURL);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetJobSubmissionInterfaceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetSecurityProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
+    }
+
+    if (!isSetUnicoreEndPointURL()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'unicoreEndPointURL' 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 {
+      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 UnicoreJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public UnicoreJobSubmissionStandardScheme getScheme() {
+      return new UnicoreJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class UnicoreJobSubmissionStandardScheme extends StandardScheme<UnicoreJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UnicoreJobSubmission 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: // JOB_SUBMISSION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionInterfaceId = iprot.readString();
+              struct.setJobSubmissionInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // 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 3: // UNICORE_END_POINT_URL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.unicoreEndPointURL = iprot.readString();
+              struct.setUnicoreEndPointURLIsSet(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, UnicoreJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionInterfaceId != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.unicoreEndPointURL != null) {
+        oprot.writeFieldBegin(UNICORE_END_POINT_URL_FIELD_DESC);
+        oprot.writeString(struct.unicoreEndPointURL);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UnicoreJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public UnicoreJobSubmissionTupleScheme getScheme() {
+      return new UnicoreJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class UnicoreJobSubmissionTupleScheme extends TupleScheme<UnicoreJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UnicoreJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      oprot.writeString(struct.unicoreEndPointURL);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UnicoreJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionInterfaceId = iprot.readString();
+      struct.setJobSubmissionInterfaceIdIsSet(true);
+      struct.securityProtocol = SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.unicoreEndPointURL = iprot.readString();
+      struct.setUnicoreEndPointURLIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/airavata-server.properties b/modules/configuration/server/src/main/resources/airavata-server.properties
index 166741f..fbde207 100644
--- a/modules/configuration/server/src/main/resources/airavata-server.properties
+++ b/modules/configuration/server/src/main/resources/airavata-server.properties
@@ -134,33 +134,6 @@ trusted.cert.location=/Users/lahirugunathilake/Downloads/certificates
 
 
 
-###########################################################################
-# Airavata Message Broker Basic Configurations.
-#  the Advanced section provides detailed custom configuration properties.
-###########################################################################
-
-# Default derby database configuration
-broker.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
-broker.jdbc.url=jdbc:derby:wsmg;create=true;user=airavata;password=airavata
-
-# Note: This database will only be used  if 'broker.storage.type=persistent'
-#       is set in advanced properties below.
-# MySql database configuration
-#broker.jdbc.driver=com.mysql.jdbc.Driver
-#broker.jdbc.url=jdbc:mysql://localhost:3306/wsmg?user=airavata&password=airavata
-
-###########################################################################
-# Airavata Message Box Basic Configurations,
-#  the Advanced section provides detailed custom configuration properties.
-###########################################################################
-
-# Default derby database
-msgBox.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
-msgBox.jdbc.url=jdbc:derby:wsmg;create=true;user=airavata;password=airavata
-
-# MySql database configuration
-#msgBox.jdbc.driver=com.mysql.jdbc.Driver
-#msgBox.jdbc.url=jdbc:mysql://localhost:3306/wsmg?user=airavata&password=airavata
 
 ###########################################################################
 # Advance configuration to change service implementations
@@ -174,69 +147,6 @@ server.context-root=airavata-server
 #
 host.scheduler=org.apache.airavata.gfac.core.scheduler.impl.SimpleHostScheduler
 
-#
-# Data Service Plugins classes
-#
-datachain.classes= org.apache.airavata.core.gfac.extension.data.RegistryDataService
-
-#
-# Pre execution Plugins classes. For example, GridFTP Input Staging
-#
-prechain.classes= org.apache.airavata.core.gfac.extension.pre.GridFtpInputStaging
-prechain.classes= org.apache.airavata.core.gfac.extension.pre.HttpInputStaging
-
-#
-# Post execution Plugins classes. For example, GridFTP Output Staging
-#
-postchain.classes= org.apache.airavata.core.gfac.extension.post.GridFtpOutputStaging
-postchain.classes= org.apache.airavata.core.gfac.extension.post.OutputRegister
-
-#
-# Advanced Message Broker Configurations
-#
-
-#socket time out in milliseconds for sending messages. (defaults is 20000)
-broker.socket.timeout=60000
-
-broker.storage.type=persistent
-#broker.storage.type=memory
-
-#specifies wether delivery component should be started or not.
-broker.start.delivery.thread=true
-
-#fixed thread pool based delivery
-#broker.delivery.method=pcrew
-
-#dynamic thread pool based delivery
-#broker.delivery.method=parallel
-
-#single thread delivery
-broker.delivery.method=serial
-
-#number of message delivery failures before a url become black listed (default is 2)
-#broker.msg.delivery.retries=2
-
-#time period (in seconds) a url will be kept blacklisted (default is 5 seconds)
-#consumer.expiration.time.gap=5
-
-#maximum number of messages to be send to a one consumer/url at time.
-#applicable if 'broker.delivery.method' is 'pcrew' . (default is 10)
-
-#sending.batch.size=10
-
-#size of the thread pool. only applicable if 'broker.delivery.method' is 'pcrew'. (default is 4)
-#sending.thread.pool.size=4
-
-#
-# Advanced Message Box Configurations
-#
-msgBox.usedatabase=true
-messagePreservationDays=2
-messagePreservationHours=0
-messagePreservationMinutes=0
-messagePerservationIntervalDays=0
-messagePerservationIntervalHours=1
-messagePerservationIntervalMinutes=0
 
 ###---------------------------REGISTRY API IMPLEMENTATION---------------------------###
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
index a6477ba..f36a188 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
@@ -55,6 +55,8 @@ public class MonitorID {
 
     private String jobID;
 
+    private String jobName;
+
     private int failedCount = 0;
 
     private JobState state;
@@ -64,7 +66,7 @@ public class MonitorID {
     public MonitorID() {
     }
 
-    public MonitorID(HostDescription host, String jobID, String taskID, String workflowNodeID, String experimentID, String userName) {
+    public MonitorID(HostDescription host, String jobID, String taskID, String workflowNodeID, String experimentID, String userName,String jobName) {
         this.host = host;
         this.jobStartedTime = new Timestamp((new Date()).getTime());
         this.userName = userName;
@@ -72,6 +74,7 @@ public class MonitorID {
         this.taskID = taskID;
         this.experimentID = experimentID;
         this.workflowNodeID = workflowNodeID;
+        this.jobName = jobName;
     }
 
     public MonitorID(JobExecutionContext jobExecutionContext) {
@@ -83,6 +86,7 @@ public class MonitorID {
         workflowNodeID = jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId();// at this point we only have one node todo: fix this
         try {
             jobID = jobExecutionContext.getJobDetails().getJobID();
+            jobName = jobExecutionContext.getJobDetails().getJobName();
         }catch(NullPointerException e){
             logger.error("There is not job created at this point");
         }
@@ -233,4 +237,12 @@ public class MonitorID {
     public void setJobExecutionContext(JobExecutionContext jobExecutionContext) {
         this.jobExecutionContext = jobExecutionContext;
     }
+
+    public String getJobName() {
+        return jobName;
+    }
+
+    public void setJobName(String jobName) {
+        this.jobName = jobName;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-core/src/test/resources/PBSTemplate.xslt
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/resources/PBSTemplate.xslt b/modules/gfac/gfac-core/src/test/resources/PBSTemplate.xslt
index e749e9c..cf8dfb6 100644
--- a/modules/gfac/gfac-core/src/test/resources/PBSTemplate.xslt
+++ b/modules/gfac/gfac-core/src/test/resources/PBSTemplate.xslt
@@ -5,11 +5,11 @@
 	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. -->
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://airavata.apache.org/gsi/ssh/2012/12">
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:ns="http://airavata.apache.org/gsi/ssh/2012/12">
 <xsl:output method="text" />
 <xsl:template match="/ns:JobDescriptor">
 #! /bin/sh
-# PBS batch job script built by Globus job manager
+# PBS batch job submission script generated by Apache Airavata
 #   <xsl:choose>
     <xsl:when test="ns:shellName">
 ##PBS -S <xsl:value-of select="ns:shellName"/>
@@ -59,8 +59,10 @@ export<xsl:text>   </xsl:text><xsl:value-of select="."/>
       <xsl:value-of select="."/><xsl:text>   </xsl:text>
     </xsl:for-each>
 cd <xsl:text>   </xsl:text><xsl:value-of select="ns:workingDirectory"/><xsl:text>&#xa;</xsl:text>
-    <xsl:choose><xsl:when test="ns:jobSubmitterCommand">
-<xsl:value-of select="ns:jobSubmitterCommand"/><xsl:text>   </xsl:text></xsl:when></xsl:choose><xsl:value-of select="ns:executablePath"/><xsl:text>   </xsl:text>
+    <xsl:choose><xsl:when test="ns:jobSubmitterCommand != ''">
+<xsl:value-of select="ns:jobSubmitterCommand"/><xsl:text>   </xsl:text>
+<xsl:value-of select="ns:cpuCount"/><xsl:text>   </xsl:text>
+    </xsl:when></xsl:choose><xsl:value-of select="ns:executablePath"/><xsl:text>   </xsl:text>
 <xsl:for-each select="ns:inputs/ns:input">
       <xsl:value-of select="."/><xsl:text>   </xsl:text>
     </xsl:for-each>

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
index 6b39819..9ea284b 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
@@ -86,6 +86,7 @@ public class GSISSHProvider extends AbstractRecoverableProvider {
             }
             // This installed path is a mandetory field, because this could change based on the computing resource
             JobDescriptor jobDescriptor = GFACGSISSHUtils.createJobDescriptor(jobExecutionContext, app, cluster);
+            jobDetails.setJobName(jobDescriptor.getJobName());
 
             log.info(jobDescriptor.toXML());
             data.append("jobDesc=").append(jobDescriptor.toXML());
@@ -134,7 +135,7 @@ public class GSISSHProvider extends AbstractRecoverableProvider {
         }
         ThreadedHandler pullMonitorHandler = null;
         ThreadedHandler pushMonitorHandler = null;
-        String monitorMode = ((GsisshHostType) host).getMonitorMode();
+        String monitorMode = host.getMonitorMode();
         for (ThreadedHandler threadedHandler : daemonHandlers) {
             if ("org.apache.airavata.gfac.monitor.handlers.GridPullMonitorHandler".equals(threadedHandler.getClass().getName())) {
                 pullMonitorHandler = threadedHandler;

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
index 61149a9..6ce84d2 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
@@ -113,7 +113,7 @@ public class GFACGSISSHUtils {
         jobDescriptor.setStandardErrorFile(app.getStandardError());
         Random random = new Random();
         int i = random.nextInt();
-        jobDescriptor.setJobName(app.getApplicationName().getStringValue() + String.valueOf(i));
+        jobDescriptor.setJobName(String.valueOf(i));
         jobDescriptor.setWorkingDirectory(app.getStaticWorkingDirectory());
 
         List<String> inputValues = new ArrayList<String>();

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
index d1ffa9d..204a99e 100644
--- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
+++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
@@ -172,7 +172,7 @@ public class LocalProvider extends AbstractProvider {
             MonitorID monitorID = new MonitorID(jobExecutionContext.getApplicationContext().getHostDescription(), jobId,
                     jobExecutionContext.getTaskData().getTaskID(),
                     jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId(), jobExecutionContext.getExperimentID(),
-                    jobExecutionContext.getExperiment().getUserName());
+                    jobExecutionContext.getExperiment().getUserName(),jobId);
             JobStatusChangeRequest jobStatusChangeRequest = new JobStatusChangeRequest(monitorID);
             jobStatusChangeRequest.setState(JobState.COMPLETE);
             this.getMonitorPublisher().publish(jobStatusChangeRequest);

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java
index 96c46f8..0ced88a 100644
--- a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java
+++ b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java
@@ -38,8 +38,9 @@ public class HPCMonitorID extends MonitorID {
 
     private AuthenticationInfo authenticationInfo = null;
 
-    public HPCMonitorID(HostDescription host, String jobID, String taskID, String workflowNodeID, String experimentID, String userName) {
-        super(host, jobID, taskID, workflowNodeID, experimentID, userName);
+    public HPCMonitorID(HostDescription host, String jobID, String taskID, String workflowNodeID,
+                        String experimentID, String userName,String jobName) {
+        super(host, jobID, taskID, workflowNodeID, experimentID, userName,jobName);
         setHost(host);
         setJobStartedTime(new Timestamp((new Date()).getTime()));
         setUserName(userName);

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java
index 731f88b..2fea154 100644
--- a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java
+++ b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java
@@ -163,7 +163,7 @@ public class HPCPullMonitor extends PullMonitor {
                     Map<String, JobState> jobStatuses = connection.getJobStatuses(monitorID);
                     for (MonitorID iMonitorID : monitorID) {
                         currentMonitorID = iMonitorID;
-                        iMonitorID.setStatus(jobStatuses.get(iMonitorID.getJobID()));    //IMPORTANT this is not a simple setter we have a logic
+                        iMonitorID.setStatus(jobStatuses.get(iMonitorID.getJobID()+","+iMonitorID.getJobName()));    //IMPORTANT this is not a simple setter we have a logic
                         jobStatus = new JobStatusChangeRequest(iMonitorID);
                         // we have this JobStatus class to handle amqp monitoring
 
@@ -171,7 +171,7 @@ public class HPCPullMonitor extends PullMonitor {
                         // if the job is completed we do not have to put the job to the queue again
                         iMonitorID.setLastMonitored(new Timestamp((new Date()).getTime()));
 
-                        // After successful monitoring perform following actions to cleanup the queue, if necessary
+                        // After successful monitoring perform follow   ing actions to cleanup the queue, if necessary
                         if (jobStatus.getState().equals(JobState.COMPLETE)) {
                             completedJobs.add(iMonitorID);
                             try {

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/ResourceConnection.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/ResourceConnection.java b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/ResourceConnection.java
index c177b1f..ac5feb8 100644
--- a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/ResourceConnection.java
+++ b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/ResourceConnection.java
@@ -92,7 +92,7 @@ public class ResourceConnection {
         // creating a sorted map with all the jobIds and with the predefined
         // status as UNKNOWN
         for (MonitorID monitorID : monitorIDs) {
-            treeMap.put(monitorID.getJobID(), JobStatus.U);
+            treeMap.put(monitorID.getJobID()+","+monitorID.getJobName(), JobStatus.U);
         }
         String userName = cluster.getServerInfo().getUserName();
         //todo so currently we execute the qstat for each job but we can use user based monitoring

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/push/amqp/BasicConsumer.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/push/amqp/BasicConsumer.java b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/push/amqp/BasicConsumer.java
index b992f85..3f903ed 100644
--- a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/push/amqp/BasicConsumer.java
+++ b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/push/amqp/BasicConsumer.java
@@ -70,7 +70,7 @@ public class BasicConsumer implements Consumer {
         logger.debug("************************************************************");
         try {
             String jobID = envelope.getRoutingKey().split("\\.")[0];
-            MonitorID monitorID = new MonitorID(null, jobID, null, null, null, null);
+            MonitorID monitorID = new MonitorID(null, jobID, null, null, null, null,null);
             monitorID.setStatus(parser.parseMessage(message));
             publisher.publish(monitorID);
         } catch (AiravataMonitorException e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/QstatMonitorTestWithMyProxyAuth.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/QstatMonitorTestWithMyProxyAuth.java b/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/QstatMonitorTestWithMyProxyAuth.java
index 6dd4d68..5488652 100644
--- a/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/QstatMonitorTestWithMyProxyAuth.java
+++ b/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/QstatMonitorTestWithMyProxyAuth.java
@@ -148,7 +148,7 @@ public class QstatMonitorTestWithMyProxyAuth {
         for (int i = 0; i < 1; i++) {
             String jobID = pbsCluster.submitBatchJob(jobDescriptor);
             System.out.println("Job submitted successfully, Job ID: " +  jobID);
-            MonitorID monitorID = new HPCMonitorID(hostDescription, jobID,null,null,null, "ogce");
+            MonitorID monitorID = new HPCMonitorID(hostDescription, jobID,null,null,null, "ogce","");
             ((HPCMonitorID)monitorID).setAuthenticationInfo(authenticationInfo);
             try {
                 org.apache.airavata.gfac.monitor.util.CommonUtils.addMonitortoQueue(pullQueue, monitorID);

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java
index e74c619..4776de7 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java
@@ -101,7 +101,7 @@ public class GFACSSHUtils {
         jobDescriptor.setStandardErrorFile(app.getStandardError());
         Random random = new Random();
         int i = random.nextInt();
-        jobDescriptor.setJobName(app.getApplicationName().getStringValue() + String.valueOf(i));
+        jobDescriptor.setJobName(String.valueOf(i));
         jobDescriptor.setWorkingDirectory(app.getStaticWorkingDirectory());
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a22a355/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java b/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java
index 1732412..5398885 100644
--- a/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java
+++ b/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java
@@ -65,7 +65,7 @@ public class CredentialStoreTest {
         System.setProperty("myproxy.username", "ogce");
         System.setProperty("myproxy.password", "OpenGwy14");
         System.setProperty("trusted.cert.location", "/Users/lahirugunathilake/Downloads/certificates");
-        System.setProperty("credential.store.jdbc.url","jdbc:mysql://gw111.iu.xsede.org:3306/airavata_pga_prod");
+        System.setProperty("credential.store.jdbc.url","jdbc:mysql://gw85.iu.xsede.org:3306/airavata_pga_prod");
         System.setProperty("credential.store.jdbc.user","pgaAiravataUser");
         System.setProperty("credential.store.jdbc.password","pgaAiravataPWD");
         System.setProperty("credential.store.jdbc.driver","com.mysql.jdbc.Driver");
@@ -75,23 +75,23 @@ public class CredentialStoreTest {
             AiravataRegistry2 registry = AiravataRegistryFactory.getRegistry(new Gateway("default"),
                     new AiravataUser("admin"));
             UUID uuid = UUID.randomUUID();
-            System.out.println(uuid.toString());
-            String publicKey = registry.createCredential("default",uuid.toString(),"cgateway" );
-            System.out.println(publicKey);
-//            String tokenId = uuid.toString();
-            String tokenId = "2c308fa9-99f8-4baa-92e4-d062e311483c";
-            CredentialReader credentialReader = new CredentialReaderImpl(new DBUtil("jdbc:mysql://gw111.iu.xsede.org:3306/airavata_pga_prod",
+            System.out.println("TokenId: " + uuid.toString());
+            String publicKey = registry.createCredential("default",uuid.toString(),"lginnali" );
+            System.out.println("Public-Key: " +publicKey);
+            String tokenId = uuid.toString();
+//            String tokenId = "2c308fa9-99f8-4baa-92e4-d062e311483c";
+            CredentialReader credentialReader = new CredentialReaderImpl(new DBUtil("jdbc:mysql://gw85.iu.xsede.org:3306/airavata_pga_prod",
                     "pgaAiravataUser", "pgaAiravataPWD", "com.mysql.jdbc.Driver"));
 
 
             RequestData requestData = new RequestData();
-            requestData.setMyProxyUserName("cgateway");
+            requestData.setMyProxyUserName("lginnali");
             requestData.setTokenId(tokenId);
             requestData.setGatewayId("default");
             TokenizedSSHAuthInfo tokenizedSSHAuthInfo = new TokenizedSSHAuthInfo(credentialReader, requestData);
 
             SSHCredential credentials = tokenizedSSHAuthInfo.getCredentials();
-            ServerInfo serverInfo = new ServerInfo("cgateway", "bigred2.uits.iu.edu");
+            ServerInfo serverInfo = new ServerInfo("lginnali", "bigred2.uits.iu.edu");
 
             PBSCluster pbsCluster = new PBSCluster(serverInfo, tokenizedSSHAuthInfo, CommonUtils.getPBSJobManager("/opt/torque/bin/"));
             Assert.assertNotNull(pbsCluster);