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 <[email protected]> Authored: Thu Jul 24 14:43:47 2014 -0400 Committer: lahiru <[email protected]> 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>
</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);
